これまで当社が培ってきたゲームタイトルの運営やゲームサーバーコンポーネントの開発・運用のノウハウを活かして、現在DeNAではどのゲームサーバでも共通で必要になる機能をWebサーバーフレームワークとして提供する、ゲームサーバ共通基盤を開発しており、こちらの開発・運用を担当いただきます。
具体的には、Webサーバフレームワークや運営/システム管理に必要となるGUI/CLIツールの開発、ゲームタイトルへの導入支援や技術支援、課題の解決に携わっていただきます。
◆具体的な業務内容
・Webサーバフレームワークの開発・運用
・運営/システム管理に必要となるGUI/CLIツールの開発・運用
・自社開発のBaaSやクライアントSDKとのブリッジ部の設計・実装
・ゲームタイトルへの導入支援・技術的サポート
最新の技術も用いたシステム開発や、非常に多くのトラフィックが流入する大規模なシステムの開発に携わることができます。
◆プロダクトでの採用技術・特徴
- ゲームエンジン
- Unity
- インフラストラクチャー
- GCP (Google Kubernetes Engine, Cloud Load Balancer, ...)
- 言語
- C# (Unity, .NET)
- C++
- Go
- その他LL (bash, Ruby, ...)
- データベース
- Google Cloud Spanner
- その他
- CI/CD (CircleCI, ArgoCD, ...)
- バイナリフォーマット (Protocol Buffers, FlatBuffers, ...)
- マルチプラットフォーム (iOS, Android, Linux, Windows, macOS)
- モニタリング (Prometheus, Grafana, Google Cloud Monitoring, ...)
- ツール (Git LFS, Terraform, Docker, ...)
当社のゲーム開発における技術的に難易度の高い案件に携わるシニアエンジニアのチームに参画し、新たな価値提供をしていただけるエンジニアを募集しています。
対応範囲は多岐にわたりますが、主にはゲームクライアントおよびクライアント基盤(ツール・ライブラリ等)の開発をご担当いただきます。
以下、当社のゲームクライアントエンジニアが対応してきた事例です。同種の案件に携わっていただく想定です。
・ゲーム設計・実装
・ゲームコアシステム設計・実装
・UIシステム設計・実装
・ゲームライブラリやフレームワークの設計・実装
・キャラクタ制御(PC・NPC・AI)
・イベントロジック設計・実装
・マルチプレイシステムの設計・実装
・ゲームシステムにおけるリソース管理
・パフォーマンス・チューニング
機械学習を開発現場において実用化するために、機械学習エンジニアとコミュニケーションを取り、研究開発環境の整備、構築をしたり、
実際のゲームに対して、機械学習技術を効率的に提供するための課題を解決できる環境を設計・提案・構築するお仕事となります。
また、AI部におけるサーバーやサービスの選定、管理運用なども担当していただきます。
<主な業務内容>
■サーバーなどの整備
・機械学習エンジニアのAI学習・実験用環境整備
・最適な性能・サービスの選定
■CI/CD環境構築
・機械学習技術の成果をゲーム開発に円滑に連携させるための自動ビルド、テスト、
デプロイ環境設計、構築
・機械学習エンジニアの課題、要望を踏まえた、MLOpsの開発環境の設計、構築
■AI部全体で利用するサービスの選定・管理運用
・AI部が利用するサーバーやCVS、タスク管理ツールなどの選定・管理運用
今回募集するMLエンジニアは、ソフトウェアエンジニアとして「cluster」の開発・運営も行いつつ、メタバース研究所の研究員と協業し、MLプロジェクトのエンジニアリングを担当していただきます。
・機械学習ライブラリを使用して、既存手法を利用したり独自の手法を実装したりできる (Jax, PyTorch, TensorFlow, scikit-learn, pandas)
・データウェアハウスを使用して、大規模なデータを検索し、加工できる (BigQuery, SQLite)
・バージョン管理ツールを使用して、標準化されたブランチ戦略で共同開発できる (Git, GitHub)
・コンテナやパッケージマネージャー等を使用して、再現性のある仮想環境を構築し、他人に配布できる (Docker, Singularity, Pipenv, Pyenv, Conda)
・実験管理ツールを使用して、標準化された方法で実験結果をシェアできる (Tensorboard, MLflow, Wandb)
【技術領域一覧】
①2Dフロントエンド:ユーザーが最初にclusterに触れる部分であり、コンテンツやフレンドの発見- 管理を担う部分です。Android (Kotlin) / iOS (Swift) / Web (TypeScript+React) から構成され、グローバル展開を志すUGCサービスとして必要なあらゆるものが内包されます。
A/Bテストを通じたメトリクス向上施策、spam/abuse対策、コンテンツの検索やレコメンデーションなど、単にアプリケーションの記述にとどまらず、ユーザー数のフェーズに応じた、幅広い課題解決の提案が歓迎されます。
②3Dフロントエンド:clusterのバーチャル空間のUXそのものをUnity + C#で記述し、Android/iOSアプリに埋め込み、もしくはPC (VR) で単体で実行される部分です。
マルチプレイ3Dゲームの技術領域を内包しますが、クリエーターの自由なコンテンツ作成を可能とするため、汎用的に書かれているのが特徴的です。同期機構を隠蔽しビジュアルスクリプティングを提供する Creator Kit や、スマートフォンからVRまで端末の特性を考慮しつつUIやアバター制御を共通化するためのクロスプラットフォーム設計などが面白い点になります。
③バックエンド:AWS上にGolangで書かれています。(一部分析系はGCPを使用しています。)DBはRDS (Aurora) +DynamoDB構成で、スケーラビリティ向上が現状の課題です。
通常のAPI serverに加えて、リアルタイム通信系を担うMQTT serverがあり、両者の相互接続- リアルタイム通信の高fan-outを実現するための独自スケジューラーなどが特徴的です。
バーチャルSNSとしてのあらゆる機能(e.g. ソーシャル要素、コンテンツのレコメンド、同期システム)の設計・実装と、それらを安全に効率的に開発するCI・モニタリングの整備などSRE的な部分も含めた、バックエンド全般の開発を担うポジションです。
〇業務内容
・サーバーのアプリケーション開発
・インフラの運用・監視など、サーバー・インフラに関わる開発業務
❏開発環境
■2Dフロントエンド
・Android:Kotlin
・iOS :Swift
・Web:React/TypeScript
■3Dフロントエンド
・Unity/C#
■バックエンド:Go
■フレームワーク: goa, sqlx
■クラウドメイン:AWS
データ分析系:GCP
■CI/CD:GitHub Actions, CircleCI, Docker, Terraform