見出し画像

Claude Codeでデジタルゲームを作って公開するまで


コードは書けない

Pythonをはじめ、コードに関してからっきし知識がない自分が、Pyxelというレトロゲームエンジンを使いClaude Codeに実装させました。
この記事ではデジタルゲームの開発において、どこをAIに任せ、どこを自分の手で作ったのかを中心に記録としてまとめます。

これまでボードゲームなどアナログのゲーム制作は何度か経験がありました。(クラファンしたり、会社のバリュー浸透ボドゲを作ったり、etc…)

ですが、デジタル領域は「実装」というハードルがあり、手をつけられず…
AIを駆使して、そのハードルをどこまで越えられるものになったのかを試してみたい、というのが今回の動機のひとつです。


昔話をモチーフにしたゲーム

今回作ったのは、昔話の「桃太郎」を元にしたエンドレスランゲーム「むかしむかし…」です。

この物語では鬼に負け、敗走する桃太郎を操作します。

プレイ画面(抜粋GIF)
  • エンジン:Pyxel(Python製のレトロゲームエンジン、解像度・色数に制約がある)

  • メイン操作:ジャンプ・攻撃・防御

  • ゲームメカニズム:ローグライク。小鬼を倒していきレベルアップすることでスキルを選択・獲得する。

このゲームの世界観や続編構想は別記事で書こうと思います。


Pyxelとは

ゲーム開発において、ゲームエンジンの選定にはかなり迷いました。

今回選んだPyxelとはなんなのかは以下を参照ください。

最終的にPyxelを選んだのは以下の理由です。

  • 偶然XでPyxelを使ったゲーム制作ポストを見た

  • 国産ゲームエンジンのため日本語ドキュメントがあり、とっつきやすかった

  • 描画できる色数の制約があり、1人でも完成まで持っていけると考えた

ドット絵の打ち込み画面

自分がゲームボーイアドバンス・DS世代でドット絵に触れながら生きてきたので、ドット絵の打ち込みやらに何かしらロマンを感じていたのかもしれません。

イラストをパーツごとに分解してドットを打ち込む、という作業の果てしなさと底知れない沼が垣間見えました。

AIに任せた部分と人間がやった部分

AIに任せたこと

  • 実装のほぼすべて

    • ドット絵の配置・切り替え、当たり判定、スコア算出など

  • デバッグツールの作成、コードのリファクタリング

Claude Codeとのやりとり

ドット絵の生成をやらせようとしましたがゲーム内で使える品質ではないと判断し手打ちに切り替えました。

Claudeで生成させたドット絵(一部)

デバックツールの生成はかなり便利でした。GUI上でドット絵の配置を指定できるのでClaudeとのチャットでのやり取りよりもはるかに楽。

刀の位置を矢印キーで調整

人間がやったこと

  • コンセプトと世界観の決定*

  • ドット絵の作成

  • ゲーム内スキルの考案*

  • 手触り感の調整*

    • シールドの秒数、ジャンプの高さ、ヒット判定、敵の出現間隔など

*壁打ち等でClaudeCodeを利用

下の画像は最終的にボツになったスキル。スキルのアイデアを投げつつ、発散させていました。

個人開発におけるAIの立ち位置

ゲームの作り始めから公開まで、Pythonというものを全く意識しませんでした。

3-4年ほど前、Chat GPT × Unity(C#)でゲーム開発を試みたことがあったのですがエラーの連発で断念しました。

当時GPT3ぐらいのモデル

それが今やエラーを吐き出すことはほぼ無くなり、脳内でイメージしているものをほぼほぼ実現してくれるドラえもんの秘密道具のような存在です。
(出力されるコードの良し悪しは別の話)

人間がやったことの一部でもAIは活用したが、走り出しはどれも私が持っているアイデアが元だった。

itch.ioで公開

ゲームをどこで公開するか、実は最初は全く知見がありませんでした。SteamやEpic Games Storeなど有名どころも候補に挙がりましたが、個人の趣味制作にはやや重く感じました。

今回作った「むかしむかし…」はカジュアルなゲームで、購入や課金によるマネタイズも組み込んでいません。その性質を踏まえ、インディーズゲームを気軽に公開できるitch.ioを選びました。

(ゲームデザイナーのニカイドウレンジさんがitch.ioでゲームを公開されていたので参考にさせていただきました)

余談

最近はFableを使って、今回作成したゲームをGodotに移植しました。
3Dと2Dを混ぜたゲームを作りたく模索中です。

Godotで試作中

いいなと思ったら応援しよう!