Game Server Services のコンセプト
Game Server Services はサーバーソリューションではない
サービスの名称を否定するようなお話をします。
私たちが Game Server Services を開発する際に最も大切にしているのは ゲーム開発者の開発体験を最高のものにする ことです。
ゲーム開発者から ネットワーク機能 はどう見えているでしょうか?
- あることでゲームを楽しくできる
- 今時のゲームならあって当然
- ゲームで長期間のビジネスをするには必要
一方で、ゲーム開発者から サーバー開発 はどう見えているでしょうか?
- めんどくさい
- 大変そう
- 近づきたくない
このギャップを埋めるためのソリューションが Game Server Services です。
サーバーを使うのって大変!
ネットワーク機能を実装するにはサーバーは必要です。 しかし、サーバー開発者は API を作ってくれても、SDK は作ってくれません。
では、サーバーのAPIとの通信処理は誰がプログラムするのでしょうか? ゲーム開発者 です。
Game Server Services はできるだけゲーム開発者にフレンドリーなSDKを提供して、通信処理を めんどくさい ものから、一般的なライブラリのように扱える ものにしようとしています。
代表的な取り組みとして以下のようなものがあります
- サーバーとの通信回数や通信時間を思考の外に出せるキャッシュ機構を搭載したSDK
- Unity / Unreal Engine との統合で、ノーコード開発が可能なSDK
データ分析とかカスタマーサポートって大変!
Game as a Service を実践すると、プレイヤーがどのようにゲームを遊んでいるのかデータ分析が必要になります。 サーバーを新しく作ると、データ分析の仕組みもあわせて作らなければなりません。
カスタマーサポートもそうです。長期運営型ゲームでは、カスタマーサポートが対応することも増えます。 カスタマーが言っていることが真実とは限りません。行動ログを確認し、カスタマーが言っていることが正しいのか判断して開発部門にエスカレーションする必要があるでしょう。 この仕組みが貧弱だと全ての問い合わせがゲーム開発者に届いてしまい、ゲーム開発どころではなくなってしまいます。
Game Server Services はデータ分析や、カスタマーサポートツールも提供することで、このような事態を避けられるようにしています。
サーバーレスとマイクロサービス
ゲーム開発者がサーバーを運用する場合、サーバーの死活監視やスケールアップ、OSのアップデートなど、ゲームの本質とは関係のない作業に追われがちです。
GS2 はサーバーレスなアーキテクチャを採用しており、開発者がサーバーの管理を意識する必要はありません。また、機能ごとに独立したマイクロサービスとして提供されているため、必要な機能だけを選んで組み合わせることが可能です。
ネットワーク機能の総合開発運用環境
Game Server Services は単なる「APIの集まり」ではなく、開発から運用までを支える総合的な環境を提供しています。
graph LR
subgraph "Game Server Services (GS2)"
SDK[GS2 SDK]
API[GS2 Microservices]
Console[Management Console]
Analytics[Analytics / Logs]
end
Developer[Game Developer] --> SDK
Developer --> Console
Developer --> Analytics
GameClient[Game Client] --> SDK
SDK --> API
API --> Analyticsつまり
Game Server Services はゲームサーバーを主軸として、ゲーム開発者がネットワーク対応を簡単に行え、 その後のデータ分析・カスタマーサポートの仕組みも提供する ネットワーク機能の総合開発運用環境 を提供しています。