出典と検証方法 — 数字はどこから来たか
このサイトの数字には 2 つの出所があります。配信ページと、ゲーム本体のビルドです。どちらも読めば同じ手順を再現できるので、手順と限界を書いておきます。
012 つの出所
1 つ目は CrazyGames の配信ページです。ページには JSON-LD(VideoGame の構造化データ)と、フレームワークの埋め込みデータが入っています。公開日、最終更新、評価、対応端末、操作説明、本文はここから取りました。
2 つ目はゲーム本体のビルドです。Unity の WebGL ビルドは、データファイル(61,649,725 バイト)の中に data.unity3d(43,670,500 バイト)を持っています。その中の TextAsset に、画面文言の一覧が CSV として入っています。
02ビルドの読み方
データファイルは UnityWebData1.0 形式で、ヘッダの後にファイルの目録(名前・位置・長さ)が並びます。目録から data.unity3d を取り出し、そこから TextAsset を個別に開きます。
画面の文言は、その TextAsset の 1 つ(名前は Localization)に全部入っていました。70,720 バイトの CSV で、525 行、列は KEY / English / Italian / French / German / Spanish / Brazilian の 7 列です。ここからミス通知 15 種、教習 14 項目、レベル 5 段階、環境 4 種といった文言を直接取り出しています。
- ミスの文言: Localization の違反・通知キー(15 種)
- 教習の文言: learn0 〜 learn13(14 行)
- チュートリアル: Tutorial0 〜 Tutorial6(7 行)
- ミス上限: examdisclaimer の 1 行
- レベルアップ: LevelUp の 1 行(10.000 XP)
- 環境: center / countryside / industrial / suburban
- パーツの段階: chipTier1-3 などの Tier キー
03この方法の限界
ビルドから読めるのは「文言」と「設定値」であって「プレイ中の挙動」ではありません。ミス 3 回という数字は文言として確認できましたが、3 回目で失敗するのか 4 回目で失敗するのかは、文言だけでは決まりません。
このビルドは IL2CPP なので、MonoBehaviour の型情報がありません。フィールドの名前はメタデータから読めますが、値がどこにあるか、何を意味するかは名前から判断するしかありません。車両の最高速度のようにコード側で計算される値は、取り出せませんでした。
シーン(data.unity3d)には 34,531 の GameObject と 18,712 の MonoBehaviour がありますが、レベルごとの制限速度や課題数を平文で持つ設定オブジェクトは見つかりませんでした。LevelButton は 8 個ありますが、名前も値も空の参照だけです。
04外部ファイル
このゲームは実行時に、開発元サイトの XML(carhandling.xml)を取得します。アクセルとステアの平滑化の値が入っており、387 バイトです。このファイルは HTTP 200 で取得できることを確認しました。
外部リンクは、実際に開いて 200 が返ることを確認したものだけを載せています。確認できなかったもの(Google Play の商品ページ、SNS のアカウント)は、存在するかどうかにかかわらず載せていません。
05種別の意味
- 公式
- 配信ページ(CrazyGames)に書かれている内容。開発元の見解に近い。
- 確認
- ビルド内で値を直接見たもの。意味の解釈が入る余地はある。
- 推測
- 値から判断したもの。このサイトの解釈であることを明示している。
- 不明
- 値はあるが意味が分からない、または値自体が見つからない。
06誤りの指摘
数値の取り違えや、更新で変わった箇所を見つけたら、このサイトの運営者アドレス([email protected])まで連絡してください。確認できたものは修正し、確認できないものは「不明」に戻します。
指摘を受けて直した場合も、更新日を書き換えるだけで、古い値を黙って消すことはしません。