ランキング・セーブ・課金
スコアは暗号化して送信され、進行は端末とクラウドの両方に保存されます。
01ランキングの仕組み
ビルド内には submitScore、post_leaderboard、retrieve_leaderboard、GetHighScore、SetHighScore という処理があり、スコアの送信と取得を行っています。
送信の直前にスコアを暗号化する処理(ScoreEncryption / EncryptScore)があり、内部文字列にも「Submitted encrypted score: 」というログが残っています。つまり、送信されたスコアはそのままの数値ではなく、暗号化された状態で送られます。
配信ページのタグには Leaderboards が含まれています。ランキングは配信元の基盤(CrazySDK)を通じて提供されているとみられます。
02セーブデータの置き場所
「GameStateSynchronizing game state...」「GameState: Game state merged」というログがあることから、起動時に端末内のデータとクラウドのデータを突き合わせて統合する処理が動いています。
同じブラウザで遊ぶ限り記録は残ります。ブラウザのデータを消すと端末内の記録は失われ、クラウド側に残っていれば復元される、という動作になります。
| 保存先 | 内部の仕組み | 保存される内容 | 確度 |
|---|---|---|---|
| 端末内 | PlayerPrefs | 進行、コイン、帽子、最高スコア | 確認 |
| クラウド | eppz! Cloud(com.fliptrickster.game.state) | 進行状況の同期用データ | 確認 |
| クラウド | eppz! Cloud(com.fliptrickster.hats) | 帽子の所持情報 | 確認 |
| 端末内 | (保存キー)com.fliptrickster.coin.added / .coin.removed | コインの増減イベント | 確認 |
03有料パック(FlippyBundle)
ビルド内の課金処理は1種類だけで、FlippyBundle という名前のパックです(FlippyBundlep / FlippyBundlepPurchase)。
パックの内容と価格は、文字列からは分かりません。アプリ版のストアで表示される価格が正で、ブラウザ版で購入画面が出るかどうかも環境次第です(不明)。
無料で遊ぶ範囲では、コインとスピンだけで帽子を集められます。課金は見た目の入手を早めるためのもの、という位置づけです。
04記録を消さないために
- ブラウザの「閲覧データを消去」でサイトデータを消すと、端末内の進行は失われます。
- シークレットウィンドウ(プライベートモード)では、閉じた時点で記録が消えます。
- 広告ブロッカーやトラッキング防止が、クラウド同期の通信を止めている場合があります。同期できないときは設定を確認してください。
- 機種変更やブラウザ変更では、同じ保存キーが使えないと記録は移りません。
05分かっていないこと
ランキングの順位表示、参加人数、上位のスコアの目安は、こちらの環境からは確認できませんでした(不明)。配信ページには Leaderboards タグがありますが、順位表そのものは公開されていません。
クラウド同期のアカウント連携方法も不明です。ログイン画面があるという情報は得られていません。