「あの世界を自分で作りたい」という、子供の頃からの夢

子供の頃からゲームは、現実とは別の世界への入り口でした。ファンタジーのフィールドを歩き、謎を解き、強敵を倒す。その没入感に育てられた私は、いつしか「あの世界を自分で作る」ことを夢見るようになりました。 しかし、ゲーム開発という領域は、専門的な学校や何年もの修行が必要な「聖域」だとも感じていました。プログラミングをゼロから学ぶ時間も根性もなかった私は、ずっとただのプレイヤーとして生きることを選んでいました。 転機は、AIという武器を手にした時です。「Unityを使って、猫が主人公のゲームを作りたい」。この一文から始まった冒険は、私のものづくりに対する人生観を根底から塗り替えることになります。

「あの世界を自分で作りたい」という、子供の頃からの夢

ゲームを支える「見えないルール」の設計

ゲームの面白さは、グラフィックではなく「ルール(ゲームメカニクス)」の精巧さにあります。プレイヤーはなぜ緊張するのか、どこで解放感を感じるのか。そのリズムを意図的に設計することが、ゲームデザインの本質です。 このNekoGameでは、「魔法の森を歩き回りながら、敵の猫に追われるフィールド探索型RPG」を構想しました。シンプルに聞こえますが、実装すべき要素は山積みでした。 ・敵はどの範囲でプレイヤーを「発見」するのか(視界判定) ・発見後、どのくらいの速度と賢さで追いかけるのか(移動AIの挙動) ・逃げ出した後、すぐにまた接触してしまわないようにするには(猶予期間のロジック) AIとの対話の中で、これらの課題が一つひとつ「解けるパズル」として姿を現してきました。

内積という数学の魔法で、敵に「視界」を与える

ゲームで「敵がプレイヤーを発見する」瞬間をどう実装するか。直感的には「距離を計算すればいい」と思いますが、それだけでは360度全方向から発見するロボットのような敵になってしまいます。 AIが提案した解決策が「内積(Dot Product)」という数学の概念でした。高校時代に意味も分からず苦手意識を持っていたあの「内積」が、「懐中電灯の光がどの方向に当たっているかを判定するための道具」として、生まれ変わって目の前に現れたのです。 この発見と学びの記録は、別記事で詳細に綴っています。

「逃げても捕まる」無限ループ地獄の打破

最初に実装したエンカウント(戦闘開始)システムは、プレイヤーを絶望させるものでした。敵から逃げ出して戦闘から帰還しても、0.5秒後には同じ敵とまた接触して強制的に戦闘に引き戻される、悪夢の無限ループ。 プログラムは「プレイヤーと敵が一定距離内なら戦闘開始」というルールを毎フレーム忠実に実行するだけ。その「機械的な正直さ」が、人間のゲーム体験を踏みにじっていたのです。 AIとの対話で導き出した「猶予期間(Grace Period)ロジック」がこの地獄を打破しました。詳しい実装の記録はこちらです。

コードは完璧なのに「動かない」——環境という見えない壁

AIが生成するコードは、概念的には正確で洗練されています。しかし、それを実際のUnityプロジェクトに組み込む際、「コードの外側」でミスが起きることがあります。 タグの設定忘れ、レイヤーの名前の不一致、Inspectorへのコンポーネントのアタッチ漏れ——これらはAIの画面には見えない、「人間の現場」でしか起きないミスです。 この発見から、私とAIの協業の基本方針が変わりました。AIが「脳」を、私が「身体と現場報告」を担う。その役割分担の記録はこちらです。

正確すぎる追跡AIを「可愛い」に変えた設計

最初に実装した敵の追跡AIは、「正確すぎて怖い」という問題を抱えていました。最短距離でひたすら追いかけてくる敵は、プレイヤーに逃げる楽しさを与えません。 あえてアルゴリズムを崩し、慣性や反応の遅れを組み込むことで、敵が「生きている」ように見える——そのデザインの記録はこちらです。

このゲームが教えてくれた、「創る」という生き方

プレイヤーとして描いた「こういうゲームが遊びたい」という夢を、開発者として実現する。その両方の視点を持てたことで、私はゲームデザインの本質——プレイヤーへの「思いやり」の設計——を身をもって理解しました。 完成したNekoGameを起動するたびに、魔法の森を走り回る猫キャラクターの中に「自分の決断の積み重ね」が見えます。コードの一行一行に、AIとの対話の記憶が宿っています。 こんな体験ができるとは、開発を始める前の自分には想像もできませんでした。次は何を作ろうか。その問いが途切れない限り、私の旅は続きます。