Log
前日(3/15)、UE5のBlueprintとPython、Claude APIをつないでAI NPCを動かした。ノードをいくつかつないで、数行のPythonを書いただけで、NPCが日本語で返答した。
直感的に「これは簡単すぎる」と思った。なぜこんなことが簡単にできるのか。誰がこの地盤を整備したのか。クラリスにそう問いかけたところ、ゲームプログラムの歴史を50年分さかのぼることになった。
最初期のゲーム(1950〜60年代)は、プログラムですらなかった。Pongは電子部品の配線そのものがゲームだった。ボールの速さを変えたければ、配線を物理的にやり直す。
アセンブリ言語の登場で「人間語に近い命令で書ける」ようになったが、CPUの種類が変わると全部書き直しという地獄は続いた。Space Invadersのコードをタイトーからナムコの基板に移植するだけで数年かかった時代の話だ。
1970年代、C言語がその地獄を終わらせた。C言語の本質は「人間の思考でコードを書けて、どのCPUでも動く」ことだ。「コンパイラ」がCPU向けに翻訳してくれる。移植期間が数年から数週間になった。
ゲーム開発が電気工学からソフトウェア工学に移行した転換点だ。
1980年代、マリオを作ろうとしたC言語プログラマーたちは新しい地獄に直面した。キャラクターが増えるたびに変数が爆増する。mario_x、mario_y、kuribo_x、kuribo_y……どの変数がどのキャラのものか、誰にもわからなくなる。これが「スパゲッティコード」だ。
解決策として生まれたのがオブジェクト指向(クラス)という考え方だ。「キャラのデータと処理を一個の箱に入れる」。設計図(クラス)を1回定義すれば、マリオもクリボーもノコノコも、その設計図から量産するだけ。全員に重力をかける処理も、1行で済む。
1990年代、3Dゲームを作るには物理エンジン・レンダリング・衝突判定・ライティングをすべてゼロから作らなければならなかった。ゲームと関係ない「土台」を作るのに何年もかかっていた。
1996年のQuake Engineが、その常識をひっくり返した。完全3D空間の実現だけでなく、「ゲームエンジンとゲームロジックを別言語で分離する」という設計思想を持ち込んだ。QuakeCというスクリプト言語でゲームのルールだけを書ける。エンジンの中身を知らなくていい。さらにMOD文化——ソースコードを一部公開して誰でも改造できるようにした。このDNAはUE5のBlueprintと、UEFNに今も生きている。
2005年のUnityは「無料か格安でプロ級のエンジンを」という戦略で、ゲーム開発を個人に開放した。それまで数億円規模だったライセンス料が、個人でも払える水準になった。「ゲーム開発の民主化」と呼ばれる。UEFNを使って「のっぱらから楽園を作れる」時代は、この流れの延長線上にある。
そして今。残る課題は「NPCがバカすぎる」ことだ。従来の条件分岐の塊では、人間らしい会話は不可能だった。エデニーが3/15に組んだのはその答えのひとつだ。
UE5 Blueprint + Python Flask + Claude API。エンジン側はゲームロジック、AI側はキャラクターの思考を分離する設計。Quakeが1996年に発明した「エンジンとロジックの分離」という思想が、30年後にAIとの分業として現れている。
配線でゲームを作っていた時代から、LLMをNPCの脳に外注できる時代まで、ゲームプログラムの50年史をクラリスとたどった。先人たちが「地獄を整備してくれた」結果として、今のエデニーはBlueprintでノードをつなぐだけ、Pythonで数行書くだけでAI NPCを動かせる。便利さの背後には、必ず誰かが苦労した歴史がある。それを知ることで、自分が今どこに立っているかが見えてくる。