JSON で盤面ゲームを定義すると、共通 UI、ルールエンジン、局面分析、Arena、そして Minimax / MCTS / Genome AI までそのまま立ち上がるフレームワークです。
この版では、単なる「グリッドに駒を置く小さな DSL」から一段広げて、masked board・named zone・接続勝利・目標到達・エリア占有まで扱えるようにしました。派生 repo を量産しやすい母体として、どこまで一般化し、どこをまだ切っているかが説明しやすい構成を狙っています。
board.disabledCellsで欠けた盤面を表現できるboard.zonesで named zone を持てるplaceにzone制約を付けられるreach-zone/occupy-zone/connect-zonesを終局条件に追加したrepetitiondraw を追加し、循環局面を明示的に打ち切れるようにした- 評価関数に
zonePressure/connectionPressureを追加した - UI 上で blocked cell と zone cell を可視化した
- Studio テンプレートと scaffold CLI から zone / connection 系ゲームを始められる
- JSON 定義を差し替えても共通の盤面 UI を使える
- Human / Minimax / MCTS / Genome AI / Random を切り替えられる
- タイムラインで過去局面へ戻り、Undo / Redo できる
- Minimax の候補手と principal variation を見られる
- MCTS の候補手、visit 数、coverage、confidence gap を見られる
- Learned 候補表で、学習済みブックがどの手を持っているか確認できる
- JSON を直接編集できる
- 構文エラーと定義エラーを分けて表示できる
- Definition Health Check で完成度の弱点を確認できる
- プレビュー適用、ローカル保存、スナップショット保存 / 復元ができる
- JSON import / export、共有リンク作成ができる
connection/zone-objectiveを含むスターターテンプレートから派生ゲームを作り始められる
- 現在の定義で AI 同士をまとめて対戦させられる
- 先後入れ替えを自動で回せる
- 勝敗、引き分け、平均手数、決着率、先手勝率、処理時間を集計できる
- 結果を CSV に書き出せる
- 自己対戦で生成した学習済みブックを同梱している
Genome AIは book hit が十分強い局面では学習済み手を使い、足りない局面では探索に戻る- zone / connection 系の新サンプルは book 未同梱だが、その場合も
Genome AIは探索へフォールバックする
width,heightdisabledCellszones
placeemptygravityrow-zonecolumn-zonecell-whitelistzone
move-piece
steprayorientation: forwardmode: move / capture / move-or-capture
linecapture-allreach-rowreach-zoneoccupy-zoneconnect-zonesopponent-has-no-legal-movesboard-fullmove-limitno-legal-movesrepetition
最小の配置ゲームです。place と line だけで成立する最小構成です。
gravity 制約の例です。列クリックだけで着地するので、配置ゲーム系の派生を作るときの入口に向いています。
前進、斜め捕獲、到達勝利を持つ突破ゲームです。将棋系やレース系の派生を考える前段として使えます。
ナイト移動だけで戦うジャンプ駒ゲームです。step だけで飛び越し系の動きを表せるサンプルです。
King / Rook / Bishop を持つ小型対局です。step と ray の混在例として入れています。
配置と移動を毎手で選ぶ混成ルールです。inventory、row-zone、line、reach-row、capture-all を同時に確認できます。
欠けた盤面と named zone を使う接続ゲームです。connect-zones と connectionPressure の実例です。
四隅を欠いた盤面で中央の sanctum を奪い合う小型対局です。reach-zone と repetition の実例です。
中央リングの支配を競うエリア制圧ゲームです。occupy-zone と zonePressure の実例です。
現在は次の 6 ゲームに自己対戦ブックを付けています。
tic-tac-toeconnect-fourlane-breakthroughknight-skirmishroyal-duelrelay-outpost
詳細は docs/training-report.md を参照してください。
game-genome/
├── .github/
├── artifacts/
│ └── learning/
├── assets/
├── docs/
├── games/
├── schema/
├── scripts/
├── src/
│ ├── ai/
│ ├── arena/
│ ├── core/
│ ├── learning/
│ ├── studio/
│ └── ui/
├── tests/
├── index.html
├── package.json
└── README.md
npm install
npm start起動後に http://localhost:4173 を開いてください。
npm testnpm run validate:gamesnpm run validate:learningnpm run checknpm run scaffold:game -- --id my-game --name "My Game" --template connection --registerテンプレートは placement, movement, duel, connection, zone-objective の 5 種類です。
disabledCells と zones を導入したことで、「矩形の中でただ置く / 動かす」だけでなく、地形を持つ盤面と意味のある目標エリアを定義で扱えるようにしています。
新しい勝利条件を足しても、共通 UI、局面分析、Arena、Studio の導線はそのまま維持しています。JSON を差し替えたときの再利用性を優先しています。
Genome AI は book hit がある局面では学習済み手を使い、ない局面では探索に戻ります。学習成果物を配布物として切り出しているので、派生 repo にも持ち出しやすいです。
編集、検証、プレビュー、比較、保存、共有、再学習までを 1 本の repo で回せます。デモではなく、派生作品を増やすための母艦として使う前提です。
- 2 人完全情報・決定論ゲーム向け
- 盤面は「任意グラフ」ではなく masked rectangular grid 前提
- 持ち駒、ドロップ、昇格、多段行動、同一ターン中の連続手は未対応
- 強制捕獲、チェック判定、反則負けなどの高度な裁定は未対応
- Web Worker 化は未対応なので、重い探索はメインスレッドで走る
- 学習済みアセットは統計ブック方式であり、ニューラルネット評価器ではない
- 任意グラフ盤面への一般化
- 移動パターンの条件分岐と multi-step action
- 強制捕獲や特殊ルールの action filter
- 対称局面圧縮を含む学習アセット最適化
- Web Worker 化と large-board 用の探索分離