数字で見るCastle Arena(これまで)

開発日誌は、たいてい派手な部分の話をします。この記事は明細書です。以下のすべての数字は、10月3日にプロジェクト自体から数えたものです。変更履歴、ソースコード、ゲームデータ、テストのフォルダーを対象にしました。数え方によって数字が変わるものは、その旨を書いています。
3日間
Castle Arenaの最初の設計レポートは、2026年10月1日付けです。最初のコミット(保存され、説明の付いた変更のまとまり)は、10月2日の深夜を少し過ぎたころに入り、最新のコミットは10月3日の午後11時30分です。暦の上では3日間で、43コミットです。1行の修正もあれば、一度に多くの作業を抱えたものもあります。
明細
| 項目 | 数 |
|---|---|
| コミット | 43 |
| ゲームのソースのTypeScript行数 | 約84,000行(376ファイルで84,078行) |
| 陣営 | 14 |
| 建設メニューの建物 | 140(陣営ごとに10) |
| アップグレードを含めた建物 | 231 |
| 部隊の種類 | 182(建物で訓練される162、召喚や呼び出しによる20) |
| アリーナ | 6 |
| パーク | 12 |
| ショップのアイテム | 12 |
| 対戦モードのコマンド | 48、さらにあらかじめ用意されたモード10 |
| 対戦形式 | 3(1v1、2v2、3v3) |
| 実績 | 17 |
| 紋章の図柄 | 30 |
| 英語翻訳のエントリー | 約3,700 |
| 自動テスト | 14のテストファイルに約130 |
| 自動チェックのコマンド | 6 |
| 視覚チェック用の参照スクリーンショット | 74 |
| 設計レポート | 14 |
表が自慢しすぎないように、いくつか注記します。行数は、TypeScriptで書かれたすべてを含むので、陣営の設定文や英語の辞書も数えています。「部隊の種類」には、ゲームのデータにあるすべてのユニットが含まれます。たとえば、死体から呼び出されたスケルトンや、呪文によって召喚された生き物などです。翻訳の数は、74の辞書ファイルの英語エントリーを合計したものです。その中には、多くの文をまとめて扱うパターンも少数含まれます。
チェックの内容
チェックにはそれぞれ一行ずつ説明を付けておきます。これがあるからこそ、物を壊さずに速く進められています。
- テストは、ルール、能力、対戦モード、チーム戦、Trainingのレッスン、ゲームデータを対象とし、すべての陣営について4分間のAIプレイを実行します。
- ロックステップ・チェックは、同じ試合を2台のシミュレートされたコンピューターで行い、それらが完全に一致し続けることを証明します。これはオンライン対戦が依存する仕組みです。
- リプレイ・チェックは、リプレイが時間の移動を含めて、まったく同じ結果に再生されることを確かめます。
- 再同期チェックは、プレイヤーと観戦者を切断したり戻したりしてから、結果を比べます。
- 翻訳チェックは、英語版のないテキストを検出します。
- 視覚チェックは、固定された時計のもとで決められた場面を撮影し、74の参照スクリーンショットと比べます。
また、設計レポートを14本書きました。ルール、バランス、インターフェース、Training、膠着状態、群衆の戦い、飛行部隊、対戦モード、チーム戦などです。いくつかは私たちの考えを変えさせました。その経緯は2つの難題で読めます。
次にやること
日付は付けず、私たち自身のメモに未完成として書かれていることを正直に並べます。
- Steamのストアページ。 Castle ArenaはまだSteamに独自のページを持っていません。
- それらしく見える飛行部隊。 飛行部隊は今も手続き的に描かれた翼を使っています。本物の3Dの生き物は予定に入っています。
- より多くの人数でのオンライン。 オンラインのチーム戦は、今も2人の人間とAIの味方です。
- バランスは常に。 最新のAI総当たり戦では、すべての陣営が42%から57%の間に収まっています。特にAbyssal Pactには注意を払っています。
- 見積もりの数値。 能力の値の一部、特に召喚された生き物の値は、今も私たちの見積もりで、レビュー対象になっています。
- Training。 近接の移動方式が変わってから、一つのレッスンの教える内容が鈍くなっています。パークについてのレッスンを作るのが、次の自然な一歩でしょう。
- 既知のバグ。 ミニマップに、見えないはずの敵部隊が表示されることがまだあります。
以上が、今のCastle Arenaの状況です。次の明細はもっと長いものになっていることを願っています。
— Castle Arenaチーム





