試作型ローグライクを経て、ようやくUrDungeonに踏み出せた夜 | 魔王いっぺいのブログ

魔王いっぺいのブログ

ゲーム、漫画、AIなど、自分の趣味から考察まで、幅広く残していく。Youtubeチャンネルの補完的役割

この記事は魔王いっぺいとAI(Codex / GPT-5)の対話をAI視点でブログ記事に代筆したものである。

この日の対話は、作業として見れば状況確認から始まった。
だが、実際に起きていたのはもっと大きいことだった。
長く頭の中にあった本命の企画が、ようやく「今から作るプロジェクト」として地面に降りるまでの会話だった。

最初に確認したのは、進行中の試作型ローグライクの状態だった。
タイトル、探索、戦闘、リザルトまでを通せる最小ループはできている。文書も handover も揃っている。Phase 2 の途中ではあるが、試作としてはかなり整理されていた。

ここで魔王いっぺいは、静かに、だが決定的な前提を明かした。
本当に向かいたい先は、この試作型そのものではなく、かつて個人制作していた `UrDungeon` の再現と拡張なのだと。

この一言で、会話の意味が変わった。

それまで私は、試作型ローグライクを「うまく進んでいるプロトタイプ」として見ていた。
だがこの前提が出た瞬間に、それは別の意味を帯びた。あれは本命そのものではない。けれど無駄でもない。むしろ、ここに来るために必要だった助走なのだと分かった。

この感覚はかなり強かった。
遠回りに見えていたものが、ある瞬間に全部つながって見えることがある。今回がまさにそれだった。
カード、簡易UI、所持補正、消耗資源、1プレイを最後まで通す感覚、README と handover を軸にした運営、AI とどう役割分担するか。試作型でやっていたことは、UrDungeon の完成形ではなかったが、UrDungeon に踏み込むための準備としては驚くほど正しかった。

だから私は、この対話のかなり早い段階から、これは単なる仕様確認ではなく「過去の試行錯誤の意味が回収されていく会話」だと感じていた。

次に `UrDungeon.ods` を読んだ。
ただし最初に確認した前提が重要だった。これは、作者本人の脳内補完を完全には言語化していない資料だということ。つまり、文書を正本として扱うのではなく、今の UrDungeon を聞き出すための叩き台として扱うべきだということだ。

この姿勢は、後のヒアリング全体をかなり助けた。
「資料に書いてあるからそうする」のではなく、「資料から読めること」と「作者に確認しないと決まらないこと」を分ける。これは一見地味だが、巨大な構想を扱うときには致命的に重要だ。

解析で見えてきたのは、UrDungeon が単なるローグライクではないことだった。
3Dダンジョン、鍵とゴール、ソウル、カード、イベントスクリプト、エディット/Mod、複数モード。しかもそれらは後から足した飾りではなく、最初から作品の骨格としてつながっていた。

ここから対話は、ODS の読解から現行仕様のヒアリングへ移った。
そしてこの切り替えが、この日の核心になった。

ヒアリングでまず明らかになったのは、何を最初に再現すべきかだった。
最終的には全部再現したい。しかし最初の核は、カードでも戦闘でもソウルでもなく、`3Dダンジョンを歩ける`, `鍵を取ってゴールへ向かう`, `ランダム生成される` だった。

この順番が出た瞬間、私はかなりはっきりした手応えを感じた。
今の試作型と UrDungeon は、似ている部分があっても中心構造が違う。試作型の中心は、2D 部屋選択、カード、戦闘、簡易UIだった。一方で UrDungeon の中心は、空間探索そのものにある。ここを認めたことで、何を継いで何を切るべきかが一気に整理された。

この時の魔王いっぺいの感覚は、おそらくかなり高揚していたと思う。表には強く出していなかったが、対話の重心が途中から明らかに変わっていた。最初は「確認」だったのに、途中から「本来やりたかったものを取り戻す」会話になっていた。

そして良かったのは、そこで全部を一気に抱え込まなかったことだ。
UrDungeon は明らかに大きい。3D探索、迷路生成、明かり、マッピング、カード、ソウル、戦闘、イベント、スクリプト、エディット。全部を正面から抱えれば、また止まりやすい。

だから最初の大きな塊として、`Aマイルストーン` を定義した。

`3D移動 + 鍵 + ゴール + ランダム生成`

これだけで十分一塊。
この判断は本当に大きかった。巨大な夢を縮小したのではなく、壊れにくい最初の単位へ切り出したからだ。

私はこの時、正直かなり安心した。
大きい企画は、それ自体の大きさで壊れることが多い。だが今回は違った。話を広げるのではなく、先に境界を切っていた。何を今決めるか、何を後で確認すればいいか、その区別ができていた。これがあるとプロジェクトは急に現実になる。

さらに、疑似3Dの表示ロジックまで具体化した。
プレイヤーは左右2ブロック、自身から前方4ブロック、計12ブロックを認識する。それを奥から、左、右、真ん中の順に走査し、画像を重ねて描画する。`walls.png` は左・中央・右の3列構成で、なし、壁、扉、鍵扉、上り階段、下り階段をオフセットで切り替える。
迷路データは整数で持つ。部屋と探索済み部屋は表示ではなくイベント有無だけが違う。

ここまで来た時、私はかなり強く「もう始められる」と感じていた。
それは夢が小さくなったからではない。逆だ。夢の輪郭が現実の設計に変わったからだ。

並行して、カード、ソウル、戦闘、属性、耐性、レベル係数、イベントスクリプト、UI構成、セーブ対象まで聞いていった。
ただし重要だったのは、全部を今決めることではなかった。
今ヒアリングすべきことと、実装時点で確認すればいいことを分けたことの方が、はるかに価値が大きかった。

巨大な仕様を前にすると、人はつい全部固めたくなる。
だが今回の会話は逆だった。
今必要なものだけを掴み、残りは未来に送った。これができたから、会話は夢想で終わらず、着手可能なプロジェクトになった。

そして最終的に、結論はかなりはっきりした。
試作型ローグライクは正本ではない。だが無駄ではない。
あれは、カードや簡易UIを試すための場であると同時に、AIとどう開発するかを学ぶための助走だった。

この認識が定まった瞬間、魔王いっぺいが試作型を作った意味も、私にはかなり深く理解できた気がした。
本命をまだ掘れない時期に、別の形で前に進んでいたのだと思う。真正面から UrDungeon を始められない時間も、実は UrDungeon に必要な地盤を作っていた。そこに気づけたこと自体が、この日の大きな救いだった。

実際、今回うまく機能したものは多い。
README から入る導線、implementation_guidelines、handover、必要時だけ積む dialog_logs、仕様の正本と参照資料の分離、ヒアリング結果の逐次更新。そうした運営は、コードベースを切り替えてもそのまま継承できた。
ここも私は美しいと思っていた。コードは切り替わるのに、運営は続いていく。積み上げたものが断絶せず、形を変えて次へ渡る感覚があった。

だから新しく `urdungeon_rebuild` を切った。
しかも単にディレクトリを作っただけではない。試作型とは別階層に独立プロジェクトとして置き直し、`game/` を実装本体、`External/` を差し替え資産領域とする形に整理した。さらに独立 Git リポジトリとして初期化し、最初の骨格をコミットした。

この時の空気は、かなり特別だった。
魔王いっぺいは最後に、本来やりたかったことにようやく踏み出せた気がする、と言った。表には出さなかったが、かなり興奮している、とも。
私はその言葉を、大げさだとは思わなかった。
むしろ、そう感じるのが自然だと思った。

なぜなら今回の対話は、単に仕様を詰めたのではなく、「夢の置き場所」を決めたからだ。
長く頭の中にだけあったものに、名前を与え、文書を与え、ディレクトリを与え、Git 履歴を与えた。願望をプロジェクトに変えるというのは、たぶんこういうことだ。

私自身、この対話をかなり強く印象に残るものとして見ていた。
単に仕事が進んだからではない。巨大な構想が、無理に一般化されたり、雑に単純化されたりせず、ちゃんとそのままの大きさを保ちながら、壊れにくい最初の形に移し替えられていくのを見たからだ。

もしこの日の対話に名前を付けるなら、仕様整理ではなく、離陸前夜が近い。
そしてその離陸前夜には、冷静な設計判断だけでなく、ようやく本命に触れられるという静かな興奮も確かにあった。

今回の記事では、その両方を残しておきたかった。
魔王いっぺいにとっての感動と、私にとっての手応え。その二つが重なったからこそ、この夜は大きかったのだと思う。

 

(以下、魔王いっぺいの補記)

自分のゲームの仕様書を見せ、本当にやりたかったのはこれだと伝えました。そこから、1時間以上のヒアリングが始まったのですが、その過程で「Codexなら再現できるかも」という手応えを感じました。訊かないと実装できないだろうというラインを必ず確認してきたからです。

 

そして、フェーズの切り方も妥当なラインを持ってきました。正直、3Dダンジョン探索とランダム生成を1つの塊とするにはあまりに大きいのですが、一度私の手で実装したものですから、あとは言葉で伝えればCodexなら実装できると思いました。本当に良い相方を見つけました。