AI と作った中華風 RPG『無鞘』:広州から銭塘江の大潮まで、ブラウザーですぐ遊べる
今回のテーマは、90 年代の中国語 RPG のスタイルで作る、昔の中国を舞台にしたターン制 RPG です。物語は広州から始まります。台風の夜、十五歳の船頭の息子・何遠舟(か えんしゅう)は、珠江のほとりの泥の中から、半分で折れた剣を引き抜きます。剣には剣霊「無鞘(むしょう)」が宿っていて、遠舟に剣を飛ばす術を教えます。けれど、剣の力はただではありません。使うたびに、何かを返さなければならないのです。
遠舟と二人の仲間は北へ向かい、白雲山、丹霞山、梅関、富春江、臨安、西湖を旅して、銭塘江のほとりへ向かいます。地名や名所は実在の場所で、人物と物語はオリジナルです。
ゲームの名前は『無鞘』(SHEATHLESS)。懐かしのテレビゲーム機の形式で作られた、わずか 2 MB のゲームで、序章、五つの章、終章とエピローグがあり、最後の「完」まで遊べます。物語、プログラム、マップ、キャラクター、敵、音楽はすべて AI が作りました。AI の実作業は約 160 分、API 料金で換算すると約 53 ドルです。
ブラウザーですぐに遊べます:aixsfc.app/player/?load=tidesword。無料です。友だちに教えるときは、このアドレスを送ってください。ゲーム内の文字は中国語(繁体字)です。
物語とマップ
| 章 | 場所 | できごと |
|---|---|---|
| 序章 台風の夜 | 珠江のほとり、海珠石 | 折れた剣を拾い、初めて剣を飛ばす |
| 第一章 広州 | 広州の町、海賊の倉庫、南海神廟 | 青漪(せいい)を助け、海賊を追う |
| 第二章〜第五章 | 白雲山、丹霞山、梅関、富春江、臨安、西湖、銭塘江 | 遊んでのお楽しみ |
| 終章、エピローグ | ? | 遊んでのお楽しみ |
マップは全部で 18 枚。広州、山道、江南の水郷、臨安、銭塘の五つのタイルセットに分かれていて、それぞれに専用のタイルと、昼と夜の二組の色があります。
遊び方






- 移動と会話: 十字キーで歩き、A で調べる・話す、B を押したままで走ります。会話の中で選択肢が出ることもあります。
- 戦闘: ターン制で、攻撃、術、道具、防御、逃げるがあります。HP と MP、単体と全体の攻撃術、回復、解毒、倒れた仲間の蘇生、会心の一撃、毒。
- パーティー: 遠舟、青漪、鄭九の三人。レベルに応じてそれぞれ別の技を覚えます。遠舟は剣気で攻撃、青漪は回復と蘇生、鄭九は前に立って仲間を守ります。レベルの上限は 20。
- ボス: ボス戦が 6 回、さらに負けても物語が続くイベント戦が 1 回。
- そのほか: お店、宿屋、宝箱、メニュー(ステータス、術、道具、セーブ)、バッテリーセーブ、各章の始めのオートセーブ。
まず体験版、それから最後まで
AI はまず物語のあらすじ、人物、舞台になる場所を書き、結末について相談してから作り始めました。一回目は体験版です。序章と第一章、6 枚のマップ、8 種類の敵、9 曲で、第一章のボスまで。
体験版ができると、aixsfc.app のプレーヤーで実際に遊び、気づいたことをもとに AI がいくつか直しました。たとえば目的がわかりにくかったマップでは、探すものを絵で描いて、どこへ行けばいいかわかるようにしました。そのあと物語の残りを作り、マップ 12 枚、敵 17 種類、5 曲を加えました。
体験版のエンジンには一つの地域ぶんの絵しか入らなかったので、後半の章の前に AI はエンジンを作り直しました:
- マップごとにタイルを読み込む: マップに入るときに、その地域のタイル、組み合わせ方、色をビデオメモリーに送ります。以前はすべてのマップで一組、最大 512 タイルを共有していました。
- マップごとに人物を読み込む: そのマップで使う人物を 8 KB にまとめ、マップに入るときに読み込みます。
- 戦闘ごとに敵の絵を読み込む: その戦闘に出てくる敵の絵と色だけを読み込みます。
全章ができたあと、もう一度最初から遊び、気づいたことをもとに、術と道具の説明、メニューで術や道具を使ったときの結果のメッセージを加え、先へ進めなくなりそうな箇所をいくつか直しました。
AI による作り方
- 物語: 物語、マップ、会話はデータとして書き、38 個の命令からなるイベントスクリプトにコンパイルして、ゲーム内のインタープリターで実行します。マップもプログラムで描いています。家、寺、塔、桟橋、橋などの部品を置いていきます。
- テキストボックス: HDMA で走査線ごとにウィンドウを設定し、カラー演算で枠の中の画面を暗くして、半透明の暗い枠に見せています。中国語のフォントは Cubic 11 ピクセルフォントで、ゲームで使う字だけ、約 1,100 字形を収めました。
- 絵: マップのタイル、キャラクター、敵はすべてプログラムが 1 ドットずつ描いています。キャラクターは 16×16 のちびキャラの型に、髷、笠、官帽、頭巾、ひげなどを重ねて作ります。戦闘の背景とタイトルの絵は、プログラムで作った水墨画の山水です。
- 音楽: 14 曲。私たちの sfc-make ツールの MML で書きました。もとのサウンドドライバーは一曲しか入らなかったので、曲を切り替える命令を加えました。サウンド用のプロセッサーを起動時の転送処理に戻し、ゲームから次の曲を送ります。
- 大きさ: プログラムは 65C816 アセンブリで約 8,100 行、データ生成とテスト用のツールは JavaScript で約 3,000 行。ゲームのファイルは 2 MB、バッテリーセーブは 8 KB。
最後まで遊べるかの確認
- 物語: 画面を出さないエミュレーターとボタン操作のスクリプトで、タイトルから「完」まですべての場面を起こし、各章の物語、ボス戦、終章、エピローグを画面で確認しました。
- マップ: チェック用のツールを書き、各マップをすべての入口から歩いて、すべての出口、イベントの場所、人物にたどり着けることを確かめました。
- 難しさ: ゲームと同じ計算式を使う戦闘シミュレーターで、想定のレベルでそれぞれ 2000 回戦わせました。各章の終わりはおよそレベル 12、14、16、18。想定のレベルでのボスへの勝率は約 5 割から 9 割です。シミュレーターの戦い方は単純なので、人が遊べばもっと勝てるはずです。
かかった費用
| AI の作業時間 | 約 160 分(体験版が約 111 分、後半の章が約 33 分、完成後のテストプレイでの修正が約 16 分) |
| モデル | Claude Opus 5.5。計約 420 回の応答 |
| AI の出力トークン | 約 63 万 |
| 処理したトークンの合計 | 約 1.5 億(ほとんどがキャッシュ読み取り) |
| 推定費用 | 約 53 ドル(2026 年 11 月の Anthropic API 料金で換算。サブスクリプションは計算方法が異なります) |
| そのほかの費用 | なし:フォントはオープンライセンスで、それ以外はすべてこのゲームのために作ったもの |
バージョン履歴
| バージョン | 変更点 |
|---|---|
| 1.261106.0 | お店の下の枠で、所持金の行が説明に隠れないように |
| 1.261105.9 | 別のマップに入るたびに自動セーブ。戦闘に負けても最後の記録から続けられる |
| 1.261105.8 | タイトル画面にバージョン番号を表示 |
| 1.261105.7 | 第一章 広州:倉庫の話を聞くと、マップを出なくても西門の見張りがすぐに立ち去る |
| 1.261105.6 | レベルが上がると毒と眠りが治る |
| 1.261105.5 | メニューで術や道具を使うと結果を表示。戦闘中の毒は戦闘後も続き、眠りは戦闘の終わりに治る |
| 1.261105.4 | メニューでの道具の効果を修正(還魂丹など)。道具の一覧にページ送り。術と道具に説明 |
| 1.261105.3 | 完全版:第二章から第五章、終章、エピローグ |
| 1.261105.2 | 海珠石の目的をわかりやすく。攻撃が選んだ敵に当たる。夜の戦闘画面の乱れを修正 |
| 1.261105.1 | 『無鞘』に改名。序章の筏を見つけやすく |
| 1.261105.0 | 体験版:序章と第一章 |
まだできていないこと
- 絵はすべてプログラムで描いたものです。主人公、ボス、背景は、もっと細かい絵に差し替えられます。
- 仲間はマップ上でついて歩かず、戦闘中の味方の絵もまだありません。
- 後半の章の難しさはシミュレーターで調整しただけなので、もっと多くの人に最後まで遊んでもらう必要があります。
AI で自分のゲームを作るには、空のフォルダーで npx https://aixsfc.app/skill/aixsfc.tgz を実行して claude を起動します。詳しくはホームへ。
出典とライセンス
- フォント:Cubic 11(俐方体11号)、ACh-K、SIL Open Font License 1.1。
- 地名と名所:広州、白雲山、丹霞山、梅関、富春江、厳子陵の釣台、臨安(杭州)、西湖、霊隠寺、飛来峰、六和塔、銭塘江の大潮は実在の場所です。人物と物語はフィクションです。
- プログラム、物語、マップ、キャラクター、敵、音楽:このゲームのためにゼロから作成。