Tisaki Apps

Data DragonとCommunityDragonからゲーム用単語データを作る方法

チャンピオン、サモナースペル、ルーンの名称と画像パスを静的生成する仕組みを解説します。

ゲーム画面を開くたびに外部APIから全データを取得すると、表示速度と外部サービスへの依存が大きくなります。そこで、名称一覧はデプロイ前にPythonで生成し、実行時は軽量なテキストファイルを読む方式にしました。

TSV形式を選んだ理由

画像付きカテゴリは「日本語名、タブ、画像パス」の1行1件で保存しています。JSONより人が直接確認しやすく、画像を使わない独自カテゴリは従来どおり1行1単語で扱えます。単純な形式なので、管理画面を作らなくてもテキストエディタで修正できます。

データ源を分ける

チャンピオンとサモナースペルはRiot Data Dragonの日本語データを使い、ルーンはCommunityDragonの日本語perksデータを使っています。提供される画像パスの形式が異なるため、生成スクリプトも分け、最後に一括実行用スクリプトから呼び出しています。

実行時の画像取得

ブラウザが外部URLへ直接アクセスするのではなく、Workerの画像APIを経由させています。これにより、許可するパスを限定し、キャッシュ方針を一か所で管理できます。名称データは静的、画像は必要になった時だけ取得する構成が、更新のしやすさと初期容量のバランスに合っていました。

関連する記事