post
AIに作らせたゲームを2本、サイトに公開した
AIに作らせたゲームを2本、サイトに公開した
最近、各社の生成AIにゲームを作らせて遊んでいる。せっかくなので出来の良かった2本をこのサイトで公開した。
- 星屑シグナル — 近未来の沖縄とMABUI衛星群を巡る長編ノベルゲーム。ルート7本・エンディング19種。
- CYBER BREAK 3D — Three.js製のド派手な3Dブロック崩し。物理破片とネオンエフェクトが飛び散る。
どちらもブラウザだけで動く。スマホでも遊べるはず。
持ち出しが一番大変だった
意外なことに、いちばん苦労したのはゲームの中身ではなく「AIプラットフォームの外に持ち出す」工程だった。
Google AI Studioはzipダウンロードが何度やってもバグって取得できず(なぜかクッキー承認画面のHTMLが降ってくる)、結局GitHub連携経由で救出。さらにGitHubからダウンロードしたzipは、今度はチャットに添付しようとすると不可視化されて選択できない。最終的に「プライベートリポジトリを作らせて、使い捨てトークンでcloneする」という経路に落ち着いた。
ChatGPT側もGemini側も、生成されるのはフルスタックの雛形(サーバー、DB、認証ヘルパー入り)で、静的サイトにそのまま置ける形にはなっていない。プラットフォームに住み続ける前提の構造になっているというか、外に出す動線が細い。
公開前にやったこと
公開作業はClaudeに委任した。やったことは大体こんな感じ。
- コード監査(外部通信ゼロの確認、認証・DB等の未使用残骸の切り分け)
- ゲーム本体だけを抽出して静的ビルドに再構成
- Google Fonts等の外部リソースをローカル同梱に置き換え
- ヘッドレスブラウザで実プレイテスト
このプレイテストが効いた。CYBER BREAK 3Dは、ゲームオーバー後にリトライすると残機0のまま・スコアも持ち越しという壊れた状態のバグを抱えていて、実際にプレイさせて初めて発覚した。AIが書いたコードは一見動くが、状態遷移の隅は普通にバグっている。生成→即公開ではなく、監査と手直しの工程が本体だと思う。
余談だが、Chakra Petchというフォントに800ウェイトを指定しているコードがあって、調べたらこの書体に800は存在しなかった。ブラウザが黙って合成太字にしていただけ。AIの書くコードはこういう「エラーにならない嘘」を含むので油断ならない。
ところで、サイトはTsuzuriに移行した
このサイト自体の話。長年使ってきた自作ブログツール nikki.pl から、新しく作った静的サイトエンジン Tsuzuri に移行した。Pure Perlの依存ゼロ・単一ファイル配布で、masterにpushするとGitHub Actionsがビルドしてそのまま配信される仕組み。旧記事156本も旧URLからのリダイレクト付きで引っ越し済みなので、昔のリンクも生きている。
今回のゲーム公開も、Tsuzuriのスタンドアロン作品機能をそのまま使っている。自作・監査済みの作品は独立ページとして配信し、未監査のものはsandbox付きiframeに隔離する、という二段構えにしてあるので、こういう「AI製の得体の知れないもの」を載せるのにちょうどいい。
まあ何にせよ、遊んでみてください。