ChatGPT、Claude、Gemini、その他のAIで毎回有効な.rakuゲームを生成する方法
Rakuエンジンは2つの.rakuファイル形式をサポートしています。ニーズに合ったものを選択してください。
宣言的設定 — 何が欲しいかを記述すれば、エンジンがどのように実現するかを判断します。
バージョンキー: "schema_version": "1.0"
トップレベル: game、ai、entities、scenes、rendering、audio、xr、ai_disclosure
スキーマ: rakuai.com/schema.json
サンプル: 全標準サンプル →
最適な用途:素早いゲーム作成、初心者、ほとんどのLLMタスク
明示的なAPI呼び出しシーケンス — すべてのエンジン関数呼び出しが順番に指定されます。
バージョンキー: "raku_format": "1.0.0"
トップレベル: metadata、assets、initialization、setup、game_loop、ai_pipeline、shutdown
リファレンス: ランタイムフォーマットリファレンスカード →
サンプル: void-wyrm.raku(290行) →
最適な用途:複雑なゲーム、カスタムビヘイビアツリー、詳細なAIパイプライン制御
このページの残りでは標準フォーマットについて説明します。ランタイムフォーマットについては、GitHubのLLMランタイムリファレンスカードをご覧ください。
実際のスキーマを提供しないと、LLMはスキーマをハルシネーション(幻覚生成)します。Rakuの仕様に存在しない
settings、gameplay、
controls、analytics
といったフィールドを作り出します。ファイルは有効なJSONに見えますが、実行できません。
テストしました:ChatGPTに「ゾンビサバイバルゲームの.rakuゲームファイルを作成して」と依頼しました。完全に架空の構造で150行の有効なJSONを生成しました。バリデーターは2つのエラーと2つの警告を検出しました。バージョン形式の誤り("1.0"ではなく"1.0.0")、gameオブジェクトの欠落、6つのハルシネーションフィールド、ai_disclosure形式の誤りが含まれていました。
常にAIにスキーマURLを指定してください:https://rakuai.com/schema.json。 LLMが実際の仕様を読めれば、最初の試行で有効なファイルを生成します。 プレイする前に必ずバリデーターツールで検証してください。
任意のAIアシスタントでこれらのテスト済みプロンプトを使用してください。スキーマURLが含まれているため、AIが実際の仕様を読み取ります。
上記のプロンプトのいずれかをChatGPT、Claude、Gemini、または任意のLLMにコピーしてください。ゲームの説明を入力すると、AIがJSONを出力します。
JSON出力を.rakuファイルとして保存します。重要:BOMなしのUTF-8で保存してください。
Windowsのメモ帳を使用する場合は、「名前を付けて保存」→ エンコード:「UTF-8」(「UTF-8(BOM付き)」ではなく)を選択してください。
AIが```jsonフェンスで囲んでいた場合は、それらの行を最初に削除してください。
raku-publicをクローンしてバリデーターを実行してください:
バリデーターがエラーを報告した場合は、上記の「修正プロンプト」を使用して出力をAIにコピーし直してください。
または、--fixモードを使用して最も一般的な問題を自動修復できます。
PASS - Valid .raku fileと表示されたら、ファイルをダブルクリックしてプレイできます。
ランタイムをダウンロード →
GPT-4およびGPT-4oはスキーマURLを確実に読み取ります。注意点:出力にMarkdownコードフェンスが含まれること(```json行を削除)、時折余分なフィールドを作り出すこと。プロンプトに常に「output only raw JSON」を含めてください。
Claude OpusとSonnetはURLが提供されるとスキーマに正確に従います。直接検証のためのMCPサーバー統合をサポート。指示があればMarkdownフェンスを追加することはほとんどありません。
Gemini Proはスキーマをよく読み取ります。マルチターン会話での反復的な設計に最適。schema_versionに"1.0"ではなく"1.0.0"を使用することがあります。
VS Codeでスキーマを参照ファイルとして使用すると効果的です。schema.jsonを隣のタブで開くと、Copilotが.rakuファイルのオートコンプリートに使用します。
一般的なバリデーターエラーとその修正方法。ほとんどは--fixで自動修正できます。
ファイルが空であるか、BOMが含まれているか、Markdownフェンス(```json)で始まっています。
修正:python tools/validate-raku.py my-game.raku --fixを実行してBOMとフェンスを自動的に削除します。
LLMはバージョン番号に余分な桁を追加しがちです。
修正:"schema_version": "1.0.0"を"schema_version": "1.0"に変更します。--fixフラグで自動的に修正されます。
AIがtitle、genre、templateを"game"オブジェクト内ではなくトップレベルに配置しました。
修正:"game": { "title": "...", "genre": "...", "template": "..." }で囲みます。--fixフラグで自動的に修正されます。
AIがsettings、gameplay、controls、ui、analytics、assets、levelsなどのフィールドを作り出しました。
修正:これらのフィールドを削除してください。有効なトップレベルフィールドは次のみです:schema_version、game、ai、entities、scenes、rendering、audio、xr、ai_disclosure。--fixフラグで自動的に削除されます。
AIが正しいスキーマの代わりにcompliance、uses_player_data、data_trackedなどのフィールドを使用しました。
修正:ai_disclosureセクションを次のように置き換えます:live_generated(bool)、pre_generated(bool)、description(string)、systems(array)。有効なシステム名についてはスキーマを参照してください。
Windowsのメモ帳やPowerShellのSet-Content -Encoding UTF8が不可視のBOMバイトを追加します。
修正:--fixを使用するか、PowerShellで:[IO.File]::WriteAllText("$PWD\file.raku", (Get-Content file.raku -Raw), [Text.UTF8Encoding]::new($false))
有効な.rakuファイルの完全な構造。完全なスキーマ →