プロジェクトとその方法

Boss Fight Atlas について

Boss Fight Atlas は、ゲームデザイナーがボスのメカニクスを読みやすく、調整しやすく、検証可能なシステムへ変えるためのインタラクティブなパターンライブラリです。

プロジェクトの始まり

Boss Fight Atlas は、私が初期のゲーム作品の一つを作っていたときに始まりました。当時のゲーム開発歴は約1か月で、プロジェクトの大部分を vibe coding で形にしていました。プロトタイプはまとまりつつありましたが、ボス設計では同じ方法が通用しませんでした。求めるメカニクス、戦闘のリズム、制約をまだ自分で言語化できず、エージェントに有用な指示を渡せなかったのです。

必要だったのは、優れたゲームですでに機能してきた定番のボスメカニクスを集め、戦闘の意図を正確に説明するための実用的なシソーラスでした。まずモデルに図解付きの一覧を作らせ、それを自分が迷わず使えるカタログへ整えました。そこから、この公開アトラスが生まれました。現在のカタログには 124 個のメカニクスがあり、各項目の検討に合わせて詳細な資料を追加しています。

ほかの開発者やゲームデザイナーが利用し、コントリビューターがコード、デザイン資料、翻訳を改善できるよう、プロジェクトは早い段階で公開しました。現在は 8 言語で利用できます。自分自身がゲーム開発を学ぶ過程で始めたプロジェクトなので、内容を最終的な権威として扱うべきではありません。専門家のレビューは特に価値があり、pull request を伴わないフィードバックも役立ちます。

編集に参加 フィードバックを送る
ボスビルダー

曖昧な依頼からエージェント向けの仕様へ

アトラスを作るうちに、メカニクスを買い物かごのように選び、構造化した仕様を出力して、その JSON をエージェントに渡してボスを試作したいと思うようになりました。その流れが Boss Builder になりました。

以前
複数フェーズを持つ印象的な門番ボスを作って。難しくても、公平な戦いにしてほしい。
その後
{
  "name": "Gatekeeper",
  "phases": [
    {
      "goal": "teach-sideways-escape",
      "mechanics": [
        "charge",
        "ground-slam"
      ]
    },
    {
      "goal": "combine-space-and-timing",
      "mechanics": [
        "arc-sweep",
        "gap-volley"
      ]
    }
  ]
}

これは短くした例です。Builder は、ローカライズ済みのメカニクス概要、出典 URL、フェーズ、体力範囲、デザイン目標を含むバージョン付き JSON を出力します。

ボスビルダー
さらに学ぶ

先に見つけたもの

アトラスを作る前に既存のリソースを探しました。Game Mechanics と SteamMaho はゲーム全般を扱う広いデータベースで、Jenova は専用の AI ボス戦ジェネレーターを提供しています。しかし、私が欲しかった焦点の絞られた、内容を確認できる作業手順とは一致しませんでした。これらの存在は、この課題が実在し、探る価値があることも示しています。

Boss Fight Atlas

アトラスの作り方

分類より先に調査する

カタログは、観察できるメカニクスと出典を明記した資料から始まります。カテゴリは実用的な案内であり、すべてのゲームが一つの普遍的な分類に従うという主張ではありません。

触れて確かめられるルール

アニメーションとボスビルダーは、文章のアイデアを、観察し、組み合わせ、テストできる挙動へ変換します。

翻訳とレビュー

8 言語の各バージョンは同じコンテンツ契約を共有します。自動チェックは構造を守りますが、事実、デザイン、言語の正確さには独立した人によるレビューが必要です。

原則としてオープン

オリジナルの文章とイラストは CC BY 4.0、実装コードは MIT で公開し、学習、引用、改善に利用できるようにしています。

Cloudflare Web Analytics を使ってページ閲覧数とサイトのパフォーマンスを測定しています。Cookie は使用せず、個々の訪問者のプロフィールも作成しません。

Igor Polyakov

作者について

私は Igor Polyakov、ソフトウェアエンジニアリングマネージャーであり、プロダクト志向のエンジニアです。調査、プロダクト判断、規律あるデリバリーを結ぶ仕組みを作っています。