今まで仮組みしていた RPG・ADV・SLG の機能を nao1215/gozen として公開した。ebitengine の薄いラッパーである。ebitengine がエビ天から命名されているので、エビ天を拡張するものとして御膳とした。エビ天で御膳というと、蕎麦がついてくる印象がある。エビ天を最後に食べたのはいつだろうか。
| RPG「Go Zen」 | ノベルゲーム「After the Pass」 |
|---|---|
![]() | ![]() |
| SLG「Five Banners」 | |
![]() |
gozen は、ゲームエンジンというより、YAML で定義する RPG ツクールに近い。最近は、YAML で定義するのがマイブームだ(N 度目の主張)。LLM フレンドリーであり、デバッグ機能が豊富だ。例えば、自動プレイや戦闘シミュレーションの機能があり、勝率やフロア突破率をデータとしてチェックできる。プレイ中に「ここ、微妙だな」と感じた場面にメモを残せる。LLM にメモを監視させて、LLM が修正した YAML をホットリロードしてプレイを続けられる。現代的だ。
自分用のツールであるため、静止画でやりきれる範囲の機能だけ提供する。3D モデルだなんてとんでもない。ゲームエディタのような GUI を提供しておらず、エンジニアが LLM を介してゲーム開発しやすいように設計している。ユーザーが増えたら、GUI 提供を考え始めるだろう。避けたいのは、gozen の開発に夢中になることだ。完全に偏見だが、エンジニアはゲーム開発よりも、ゲームエンジン開発に熱心になってしまうケースが多いのではなかろうか。
基本的には、gozen はウィザードリィスタイルのダンジョン、戦闘(ドラクエ式、SLG 式)、会話イベントが作れるだけだ。上手に設計すれば、RPG・ADV・SLG の要素をブレンドしたゲームも作れる。サンプルのRPG、ADV、SLG は、ブラウザプレイできるように公開されている。WASM 万歳。モバイル対応もやれば出来る筈だが、そこまで試していない。
| 会話 | 広場 |
|---|---|
![]() | ![]() |
| マップ | 一人称視点のダンジョン |
![]() | ![]() |
| 戦闘 | カットイン |
![]() | ![]() |
| ショップ | スキルツリー |
![]() | ![]() |
| タイトル画面 | |
![]() |
| 巻き戻し(Q、マウスホイール) | 未読箇所までスキップ(N) |
|---|---|
![]() | ![]() |
| 多言語対応 | 立ち絵の演出(stand、effect) |
![]() | ![]() |
| 台詞付きイベント画像 | |
![]() |
| 戦争マップ | 軍勢の衝突 |
|---|---|
![]() | ![]() |
| 地域の配置と支配状況を一枚の地図に表示 | 部隊の兵士数に応じて、戦闘中に兵士の群れが縮小 |
| F5:YAMLの変更を同じ場所に反映 | F9:画面と状態をメモに保存 |
|---|---|
![]() | ![]() |
| F7:戦闘の勝率 | F8:状態(フラグ・数値) |
![]() | ![]() |
| F8:各イベントのフラグ | F8:シーン移動 |
![]() | ![]() |
| F8:YAMLコマンド実行 | F8:フレーム計測 |
![]() | ![]() |
| F6:キャラクター図鑑(プロフィール、表情、関係) | |
![]() |
サンプルゲームに登場するキャラの一部は、公開を考えていた RPG のために作った画像から借用している。この RPG は、2〜3週間作り込んだが、面白くならなかった。私が普段作る OSS よりも開発期間をかけたので、元を取るためにゲームエンジンとして切り出した。v0.1.0 が出来上がる直前まで RPG のキャラをサンプルに使うか迷ったが、有効活用することにした(半分ぐらいは、非公開になっている)。ポシャった RPG は ADV としての機能が半分ぐらい実装されていたので、あと付けで ADV も作れる形に gozen を改変した。SLG は、適当に追加したので完成度がまだ低い。
お試しで作ったゲームの機能が部分的に生き残っている。例えば、「VTuber にチャットして読み上げてもらうゲーム」を思いつき、その名残でチャット機能、単語の検閲機能、キャラが Live2D のように表情を変えながら動く機能がある。他にも、町を擬似 3D 空間で歩くために、マインクラフトじみた空間を作ったりした。安っぽかったので、今は奥行きのある一枚絵上をローポリで歩くに留まっている。開発者的には「ブロックの空間だけど、町を歩けてる〜」と感動するのだが、ユーザー視点ではショボいと判断した。
今後は gozen を育てていくというよりは、ゲーム開発で得た知識・経験を gozen に反映していく形になる。gozen を本格的に宣伝するのは、gozen を利用したゲーム1本が完成したタイミングとなる予定。完全に余談だが、LLM に絵の評価を任せると、高解像度の絵を読み込む時にやたらトークンを消費する。
Claude Max 20x を一日中動かしていたら、3日で Weekly Limit に達した。また、v0.1.0公開前にパブリック API が1200個以上あり、なんて酷い設計をするんだと少々驚いた。ゲーム系の場合は、Claude の生成がやや劣る可能性がある。なお、パブリック API は、150個程度まで減らした。正直、50個ぐらいでも成立するのではないかと疑っている。



























