ゲームのデータと処理の流れ
各章で使うデータの考え方を、まとめて確認したいときの資料です。手順に必要な説明は、各章にも載せています。
ゲームの設定とプレイヤーのデータ
ゲームを作るときには、「ルールとして決めておくこと」と「遊ぶうちに変わっていくこと」があります。
たとえば「森の探索をクリアすると 10 コインもらえる」はゲームの設定です。一方、「このプレイヤーは 30 コイン持っている」は、プレイヤーごとのデータです。GS2 では、この二つを分けて管理します。
| 用語 | このゲームでの例 | 更新するタイミング |
|---|---|---|
| マスターデータ | 森の探索の報酬は 10 コイン | 開発者が設定を変更して反映する |
| ユーザーデータ | このプレイヤーは 30 コイン持っている | プレイヤーの操作やサーバーの処理 |
たとえば、30 コイン持っているプレイヤーが森の探索をクリアすると、GS2 は報酬の設定を見て 10 コインを加えます。保存されている残高は、これで 40 コインになります。
画面や演出、ボタン操作は、Unity で作るゲームクライアントが担当します。「冒険を開始する」ボタンが押されたら、Unity から GS2 に開始をリクエストします。GS2 が設定とプレイヤーのデータを調べて処理したあと、Unity がその結果を受け取り、画面に表示する流れです。
開発者が設定を反映する
flowchart LR
A[報酬や消費量を設定する] --> B[GS2へデプロイ]
A --> C[Unityで使う表示データ]
B --> D[GS2が処理に使う設定]
C --> E[一覧と画面の表示]まず、報酬の枚数や冒険に必要なスタミナを設定し、GS2 にデプロイします。Unity 側に商品名や価格を表示するためのアセットがあるときは、そちらも更新しておきます。
たとえば商品の価格を変えるなら、実際に支払うコインだけでなく、画面に出る価格も変える必要があります。両方が同じ金額になっているか、購入するときに確かめてみましょう。
プレイヤーが操作する
sequenceDiagram
participant P as プレイヤー
participant U as Unity
participant G as GS2
P->>U: 冒険を開始
U->>G: プレイヤーと冒険を指定
G->>G: 開始条件を確認して冒険を開始
G-->>U: 処理結果
U-->>P: 進行状況とスタミナを表示
P->>U: 冒険を完了
U->>G: 冒険のクリアを報告
G->>G: 報酬を付与して冒険を終了
G-->>U: 処理結果
U-->>P: コインと進行状況を表示このゲームで使うサービス
| サービス | このチュートリアルでの役割 |
|---|---|
| GS2-Account と認証機能 | プレイヤーを識別し、ログインする |
| GS2-Quest | 冒険の設定と、進行中の冒険を管理する |
| GS2-Money2 | 報酬として得た無償コインを管理する |
| GS2-Stamina | 冒険で消費するスタミナを管理する |
| GS2-Exchange | コインの消費とスタミナの回復を一つの操作として処理する |
GS2-Exchange は、コインを支払ってスタミナを回復するショップに使います。コインの支払いとスタミナの回復をまとめて処理できるよう、TransactionSettingV2(別タブ) を設定します。
少し考えてみましょう
「森の探索の報酬を 15 に変更する」「自分のコインが 15 増える」「一覧の報酬表示を 15 に更新する」は、それぞれマスターデータ、ユーザーデータ、画面表示のどれを変える操作でしょうか。この違いを知っておくと、「設定を変えたのに画面が変わらない」といったときにも、どこを調べればよいか見当を付けやすくなります。