この職種では、任天堂プラットフォーム向けの汎用ゲームサーバーの開発を支えるサーバーアプリケーションフレームワークやテスト基盤の整備を担当して頂ける方を募集します。 汎用ゲームサーバーを構成する内製のサービスは全て Go 言語による gRPC サーバーとして実装されています。 それらの開発を支える共通基盤や開発ツール群を整備し、全体の品質・生産性・再利用性を高めるのがこのポジションのミッションです。 ▼募集背景 昨今のゲーム開発はインターネットとは切り離せないものとなっています。ニンテンドーシステムズでは、より多くのお客様に質の高い体験を提供するために、ユーザー認証やマッチメイク、メッセージングなどの共通機能を提供する基盤として汎用ゲームサーバーの開発と運用を行っており、インディーズからAAA級の大規模なタイトルまで数多くのタイトルで利用いただいております。 弊社汎用ゲームサーバーではゲームのネットワーク機能の実装における課題を幅広くカバーすることを重視しています。機能の汎用性を保ちながらもタイトルごとの要件に対応し、多数のタイトルで利用いただいても保守性を損なわない設計を追求しています。また、ゲーム開発者にとって優れた開発者体験を提供することで、ネットワーク機能の導入障壁を下げることにも注力しています。このような取り組みを通してゲームそのものの価値向上に貢献することを目指しています。 今後も安定したサービス提供を継続しながら、ゲームの魅力を引き出す新機能の開発や、効率的なゲーム開発を支援するための機能の拡充を進めていきます。 ▼具体的な業務内容 ・Go 言語による共通フレームワーク、SDK の設計・実装 ・サービス横断で利用される機能群(ロギング、設定値管理、認証基盤など)の開発 ・サービスごとのリソースACLを実現するための独自DSLとその評価器/デバッガ/Language Server の開発および WASM によるダッシュボード連携環境の実装 ・proto 定義からサービス開発のための定型的なコードを生成するプラグインや、プロジェクト固有の作法(エラーハンドリングなど)を検証するのためのLinter の整備 ・テストランナーやテストフレームワークの開発、および Cloud Build 等での実行基盤設計 ・ランタイムやライブラリのバージョンアップに伴うコードのマイグレーション ・隣接領域(デプロイや GKE 構成管理など)を担当する SRE との協調開発 ※業務内容の変更の範囲:会社の定める業務 ▼利用技術 ・開発言語: Go, TypeScript(+React) ・クラウド: Google Cloud, Google Kubernetes Engine ・サービスメッシュ: Istio/Cloud Service Mesh ・DB: Spanner, MySQL, Redis Cluster, Valkey ・CI/CD: Jenkins ・構成管理: Terraform ・モニタリング、ロギング: Datadog, Prometheus, Sentry, Cloud Logging, BigQuery, PagerDuty ・コミュニケーション: Slack, Zoom, Confluence, Jira ・開発環境: Mac/Windows/Linux, GoLand ・その他: WASM, Language Server Protocol(LSP) ▼参考URL 「Google Cloud Day: Digital ’22」任天堂プラットフォーム向け汎用ゲームサーバー https://services.google.com/fh/files/events/gcd22-d3-appdev-02.pdf Google Cloud 顧客事例:新しい汎用ゲームサーバーを Google Kubernetes Engine、Cloud Spanner などを駆使して構築 https://cloud.google.com/blog/ja/topics/customers/nintendo-new-game-servers-built-with-gke-cloud-spanner