はじめに
OpenAIが開発者向けブログで、Codexの「ModRetro Chromatic」プラグインを紹介しました。プロンプトでゲームボーイカラー向けのゲームを作り、携帯ゲーム機ModRetro Chromaticで遊べるようにする仕組みです。インストールから実機への書き込みまで、操作の順に整理します。
参考記事
- タイトル: Build a retro handheld game with Codex and ModRetro Chromatic
- 著者: Kevin Whinnery
- 発行元: OpenAI Developers
- URL: https://developers.openai.com/blog/build-a-game-with-modretro-chromatic
要点
- CodexのModRetro Chromaticプラグインにより、作りたいゲームを文章で伝えてゲームボーイカラー向けゲームを作れる。
- ChatGPTデスクトップアプリのCodexとローカルのプロジェクトフォルダがあれば、PC上でビルドと試遊ができる。
- プレビューでの試遊、画面を指しての修正指示、ボタン操作の自動テストをCodex内で行える。
- 作成されるのはGB Studioのプロジェクトであり、GB Studioで直接編集することもできる。
- 実機で遊ぶにはChromatic本体、書き換え可能なホームブリュー用カートリッジ、USBデータケーブルが必要である。
詳細解説
できること
OpenAIによると、ModRetro Chromaticプラグインには、Codexが利用者の代わりに使う開発ツールがまとめられています。作りたいゲームを文章で伝えると、Codexがゲームボーイカラー向けのゲームを組み立てます。完成したゲームはPC上で遊べるほか、ModRetro Chromaticに書き込んで遊べます。
ModRetro Chromaticは、ゲームボーイカラー向けのゲームを動かせる携帯ゲーム機です。発表では特別版のChromaticも案内されており、OpenAIのショップから注文できます。
プラグインで使える主な機能は次のとおりです。
- スプライトシートの作成:キャラクターの各コマ(フレーム)を並べて確認し、修正を頼める
- 衝突判定マップの編集:背景と、移動を妨げるタイルを示すマップを並べて確認し、通れる場所を調整できる
- ROMの試遊:Codexの内蔵ブラウザでゲームのプレビューを開き、キーボードで遊べる
- 注釈による修正指示:プレビュー画面を止め、直したい箇所を選んで変更内容を伝えられる
- 操作の自動テスト:Codexにボタン操作を順に送らせ、各ステップの画面を記録させられる
- 実機への書き込み:プレビューから、接続したChromaticのカートリッジへROMをインストールできる
スプライトは、キャラクターなど画面上を動く小さな画像です。スプライトシートは、その各コマを1枚にまとめた画像を指します。ROMは、ゲームのプログラムとデータをまとめたファイルです。
Codexが作るのはGB Studioのプロジェクトです。GB Studioは、ゲームボーイ向けのゲームをビジュアル操作で作れるエディターです。プロジェクトフォルダには、主に次のファイルが含まれます。
- `.gbsproj`ファイル:GB Studioで開き、シーン、アクター(登場キャラクターや物体)、イベントを編集する
- `assets/`フォルダ:プロジェクトで使うスプライトシート、背景、音声が入っている
- コンパイル済みの`.gbc`ファイル:エミュレーターで実行するか、カートリッジに書き込む
エミュレーターは、ゲーム機の動作をPC上で再現するソフトです。PCで試遊し、仕上がったら実機に書き込むという流れが基本になります。
GB Studioの範囲を超えた開発にも対応しています。ほかの開発方法として、次の3つが挙げられています。
- GB Studioのゲームを拡張する:標準のイベントで足りない仕組みは、カスタムイベントで補う。GB Studioの仮想マシン言語「GBVM」で書くか、C言語でエンジンを拡張する。詳しくはGB Studioのプラグインガイドを参照する
- GBDK-2020を使ってC言語で書く:プラグインは、GBDKの`lcc`コンパイラで単体のCプログラムをコンパイルできる。GBDKのGame Boy APIで、ボタン、スプライト、タイル、パレットを扱える。最初は、十字キーを読み取って1つのスプライトを動かすゲームループから始めるよう、Codexに頼む方法が勧められている
- 独自のエンジンを書く:ゲームループ、スクロール、衝突判定をCodexにゼロから実装させることもできる。アセンブリ言語のプロジェクトでは、RGBDSなど別途インストールしたツールチェーンでROMをビルドする。できた`.gb`または`.gbc`ファイルをプラグインに渡せば、内容の確認や試遊ができる
GBDK-2020は、C言語でゲームボーイ向けソフトを作るための開発キットです。ゲームループは、入力の読み取り、状態の更新、画面の描画を繰り返すゲームの基本構造を指します。まずGB Studioで形にし、足りない部分だけをGBVMやC言語で補う進め方が取り組みやすいとみられます。
始める前に
PC上でゲームを作って遊ぶだけなら、次の2つがあれば始められます。
- ChatGPTデスクトップアプリ(Codexを使う)
- ゲームを保存するローカルのプロジェクトフォルダ
ビルドに必要なツールは、プラグインのセットアップ時にCodexに確認させます。不足しているツールがあれば、その段階で洗い出せます。
実機で遊ぶ場合は、さらに次のものが必要です。
- ModRetro Chromatic本体
- 対応する書き換え可能なホームブリュー用カートリッジ
- USBデータケーブル
ホームブリューとは、個人や有志が自作するゲームやソフトのことです。書き込みの前に、ModRetroのクイックスタートガイドに沿って準備を済ませます。ファームウェアを更新し、開発者モード(Developer Mode)を有効にしておきます。この作業は、Chromaticを接続するPCで行います。
必要なChatGPTのプランやChromaticの価格、日本への発送可否は、この発表では示されていません。利用前に、OpenAIの案内や販売ページで確認してください。
手順
1. プラグインをインストールする
ChatGPTデスクトップアプリで、次の順に操作します。
- 「ChatGPT」のドロップダウンから「Codex」を選びます。
- 「Plugins」を開きます。
- 「ModRetro Chromatic」を検索します。
- ModRetro提供の「ModRetro Chromatic Plugin」を選びます。
- 「Install」をクリックします。
- ローカルのプロジェクトフォルダを開き、チャットを始めます。
- 「@」を入力し、プラグインを選びます。これでCodexが、どのツールを使えばよいかを判断できます。
- プラグインのセットアップと、不足しているビルドツールの確認をCodexに頼みます。
ここまで終われば、PC上で最初のゲームをビルドして遊べる状態になります。
2. 最初のゲームをプロンプトで作る
プラグインを選んだチャットで、作りたいゲームを説明します。OpenAIの例と同じゲームを作る場合は、次のプロンプトを使います。
Build a top-down adventure game called Lodge Podge where a pixel beaver must chew down small trees to gather sticks to build a lodge in the center of the level.
内容は「Lodge Podge」という見下ろし型のアドベンチャーゲームです。ドット絵のビーバーが小さな木をかじって枝を集め、ステージ中央に巣(ロッジ)を作ります。
続けて、次の順に進めます。
- ゲームのビルドとプレビューの表示をCodexに頼みます。
- 必要に応じて、GB Studioのプロジェクトフォルダ内のファイルの場所を案内してもらいます。
- 何回か遊び、どうすればもっと楽しくなるかをCodexに伝えます。
作者のKevin Whinnery氏は、ビーバーをもっと丸々とした姿にするよう頼んでいます。あわせて、巣作りに枝だけでなく泥と葉も必要にするよう指示しています。遊んで気づいた点を具体的に伝え、調整を重ねていく流れです。
3. キャラクターをアニメーションさせる
- スプライトシートを作り、各コマを横に並べて表示するようCodexに頼みます。
- 直したいポーズや向き(正面、背面、横向きなど)を特定し、修正内容を伝えます。
- プレビューの再ビルドをCodexに頼みます。
4. 歩き回れるマップを作る
衝突判定マップ(コリジョンマップ)は、どのタイルが移動を妨げるかを示すマップです。タイルは、背景を構成する小さな正方形の区画です。
- シーンの背景と衝突判定マップを並べて表示するようCodexに頼みます。
- 背景を見て、変更したい場所を特定します。
- どのタイルを通れないようにし、どのタイルを通れるようにするかをCodexに伝えます。
5. Codex内でROMを遊ぶ
ゲームのプレビューを、Codexの内蔵ブラウザで開くよう頼みます。操作はキーボードで行い、割り当ては次のとおりです。
- 矢印キー:十字キー
- 「Z」キー:「A」ボタン
- 「X」キー:「B」ボタン
- 「Enter」キー:「Start」ボタン
一時停止と再開は、エミュレーターの上にあるツールバーで行います。
6. 直したい箇所を指して伝える
言葉だけでは場所を伝えにくい修正は、プレビュー上で直接指定できます。
- プレビューのツールバーで「Annotate game」(ゲームに注釈を付ける)を選びます。
- ゲーム画面をクリックします。その時点のフレームで画面が止まります。
- 変更したいスプライト、タイル、範囲を選び、変更内容を説明します。
- 「Resume game」(ゲームを再開)を選び、エミュレーターに戻ります。
- Codexが変更を終えたら、ROMの再ビルドとプレビューの再表示を頼みます。
7. ボタン操作の流れをCodexにテストさせる
エミュレーターは、チャットからも操作できます。
- ROMを実行するようCodexに頼みます。
- 一連のボタン操作を送り、各ステップの後に画面(フレーム)を記録するよう頼みます。
- 記録したフレームを横に並べて表示してもらい、まとめて確認します。
特定の場面までの操作を、手で何度も繰り返さずに済みます。同じ操作列で修正の前後を比べれば、変更による影響も見つけやすいと言えます。
8. GB Studioで直接編集する
細かな配置は、GB Studioで直接直すこともできます。
- プロジェクトの`.gbsproj`ファイルをGB Studioで開きます。
- 「Game World」を選びます。
- ナビゲーターでシーンを選びます。サイドバーに、そのシーンのプロパティが表示されます。
- アクターを新しいタイルへドラッグするか、シーン上で衝突判定を直接編集します。
- プロジェクトを保存します。
- Codexのチャットに戻り、再ビルドとプレビューの表示を頼みます。
背景、アクター、トリガーの関係は、GB Studioのシーンに関するガイドで解説されています。トリガーは、プレイヤーが特定の場所に入ったときにイベントを起こす仕組みです。位置の微調整のような作業は、Codexに頼むよりGB Studioで直す方が早い場面もありそうです。
9. Chromatic実機に書き込む
「始める前に」の準備(ファームウェア更新と開発者モードの有効化)を済ませてから進めます。
- カートリッジをChromaticに挿します。
- ChromaticをPCに接続します。
- ローカルのCodexチャットで、ゲームのプレビューを開きます。
- 「Install on Chromatic」(Chromaticにインストール)を選びます。
- 接続したデバイスを選びます。
- 「Install」をクリックします。確認内容が表示されるので、よく読みます。
- 準備ができたら「Confirm Install」(インストールを確定)を選びます。
- プラグインが成功を知らせるまで、ケーブルを接続したままにします。
- Chromaticでゲームを起動します。
使うときの注意
- 新しいROMを書き込むと、カートリッジ内のゲームは消えます。セーブデータも消える場合があります。
- インストーラーは、カートリッジのバックアップを取りません。残したいデータが入ったカートリッジは使わない方が安全です。
- 書き込み中はケーブルを抜かず、プラグインが成功を知らせるまで待ちます。
- 開発者モードの有効化は、Chromaticを接続するPCで行います。
- アセンブリ言語で書く場合、ROMのビルドにはRGBDSなどのツールチェーンを別途用意します。
OpenAIは、このプラグインをオリジナルのゲームを作るためのものとして紹介しています。既存作品のキャラクターや画像、音楽を使うと権利の問題につながるため、自作の素材で作るのが安心です。
エミュレーターで動いても、実機では見え方や操作感が異なる可能性があります。完成したら、実機に書き込んで最終的な動作を確かめておくと確実です。
まとめ
ModRetro Chromaticプラグインを使うと、作りたいゲームを文章で伝えるだけで、試作から実機での動作まで進められます。GB StudioやGBDK-2020など、既存のホームブリュー用ツールともつながります。まずはPC上のプレビューで、小さなゲームから作ってみるのが良さそうです。
