この記事で話すこと、話さないこと
タイトルに「設計」と書いたのが大切で、以降はゲーム本体を作る為のプログラミングの話はしてない。また、ゲームそのものの面白さをどう担保するかとか、「こういう手触りにしよう」とかいうゲームデザイン論でもない。
ここで言う設計は、レベルを作る時に経験値をどんな値にしてどんなペースでプレイヤーに与えるべきか、みたいな話。
ルールや計算式は決まっているんだけど、じゃあそこにどんな定数入れたら良いっすかね、を考えるためにClaude Codeを使った話を書く。
書くのだが、ぶっちゃけると今やるならClaude in Excelがマジでイケているので全部これでいい。以下は備忘録だと思ってお付き合いいただきたい。
前提:ゲームの数値設計ってどうやるのか
多くの場合こんな流れだと思う。
- 専用のスプレッドシートを作る(Googleスプレッドシート or Excel)
- 調整用のパラメータテーブルを作る
- 定数を参照して値を算出する計算式を組んでいく
- 定数をちまちま変えてみて、良い感じになる着地点を探っていく
- 候補を絞ったら、実際にゲームに入れて触ってみて、ああでもないこうでもないと議論する
この際、何を設計するかは毎回変わるため、基本的に1は使い回しが効かない。
なので、シートはその都度作り直す前提になる。
スプレッドシートをAIに「編集」させるのは、まだ悪手(だった)
このような状況であったので、生成AIに直接スプレッドシートを編集させたり生成させたりする方が良いと考えて試してみた。が、結論、2025年2月時点では悪手だと感じた。
GeminiやClaude Coworkなど試したが、セル単位の編集を任せるのはかなり厳しい。編集箇所の特定も、編集内容の精度も、正直なところ数年前のGPT-3.5を触っていた頃と大差ないレベルだった。また、AIにシートを編集させようとすると「縦軸に何があって、横軸に何があって……」とテキストで文脈を伝える手間が発生するが、それを打ち込んでいる暇があるなら自分でシートに入力した方が早い。
support.claude.com
今はこれで片付く。まずはExcelで試して、無理そうだった場合にClaude Codeに手を出す、が良いと思う。ちなみにGoogleスプレッドシートのGeminiはまだ使い物にならない体感。
コードで計算して、シートに出力しテストする
以上を踏まえていろいろ試したが、計算処理はClaude Codeに書かせたプログラムで行い、その結果はスプレッドシートやCSVに出力し、自分なりの可視化や検算をやる、という形が最も良い形だと思った。
まず大前提として、私はプログラミングがそんなに得意ではない。一応読めるは読めるし、数百行レベルのプログラムを書いたこともあるが、本職の皆様からしたらお話にならないレベルである。
そのため、Claude Codeに書いてもらったPythonコードに関しては、時間をかければ読めなくはないのだろうが、その結果Claude Codeを使うことによる工数削減の意味が薄くなる。
以上を考えて、コードを読まずとも計算結果を確認できるように、スプレッドシートにて確認できる状況を作って、それでサクッと検算することにした。いまのところこれが一番簡単で早く試すことができる。
出力されたシートやCSVは、最初・最後・中間あたりのポイントを手で検算して、問題なければその結果をベースに次の検討に進めればいい。
Claude Codeで数値設計をやる際のポイント
背伸びしない(MCPとかSkillsとか手を出さない)
自分の場合はVS Codeの拡張機能以外何もつかってない。ほぼ素の状態で運用しているが、それでも全く問題が無い。
MCPやらSkillsやら複数エージェントでの開発やら、世間ではClaude Codeを良い感じに使うことを考えている皆様がいろんなものを発表しているが、とてもついていけないと思って諦めた。CLAUDE.mdすら触らなくなった。
ちょっと試したものもあったけど、どうせ生成したコードはそのあと書き捨てになるので、とりあえずそれっぽい計算ができるコードだけ出てくれば後は気にしなくて十分だと思い全く触らなくなった。
現時点では十分だし、多分その時間でゲームを実際に触った方が良い。
とにかくシンプルに依頼する
ちょっと込み入った計算条件をClaude Codeに渡すと、それを懇切丁寧に実現する為に新しい係数を生やして方程式を解き始めたりする。
設計するもの次第だとは思うが、そこまで難しいことをさせる必要はない場合がほとんどだと思うので、指示はシンプルにしておく方が良い。
たとえば、「こういう状況なんだけど、まずは一番簡単なところから試したい。簡単に考えるならどんな式になりますか」とかからで良い。そこからちょっとずつシミュレーションしたい計算項を増やして、複雑なケースに対応させていく方がうまくいく。
背景情報はとりあえず全部渡す
些細でも不要に見えても、まず今考えていることはすべて伝える方が良いと感じた。
これはClaude Codeに理解させるというより、自分の理解に繋がる。VS Codeに向かって話しかけていると平気で誤解が見つかる。
情報を全部出した上で「簡単なところから始めよう」と方向づけするのが、結局は一番効率がいい。
Plan Modeは必ず使う
コードを書いてもらう場合、実装前にPlan Modeで実装内容を確認するステップは外せない。また、いきなり実装計画をClaude Codeに出してもらっても、内容に齟齬があるので、自分はこういう手順を踏んでいる。
- やりたいことをチャットに音声入力する
- Claudeに、音声入力したものをマークダウンで整理してと指示する
- そのマークダウンファイルを手動で修正しつつClaude Codeと質疑する
- 整ったと思ったらそのマークダウンを元にPlan Modeで実装計画を出してもらう
- 内容に問題がなければ実装へ
- 出力内容を検算
あとから「この場合の計算も見たい」という追加が出たときも、先にドキュメントを編集してからコードをいじってもらうようにすれば、抜け漏れが少なくなる。
おまけ:テストプレイの自動化にも使った
数値設計とは別の用途として、ゲームのテストプレイを自動化するツールをClaude Codeで作った。特定のUI操作を再現したい場面で、キー入力のシーケンスを保持して特定画面間のループ処理を回すプログラムを組んでもらった感じ。
PythonとOpenCVで画面を取得し、特定のUIが表示されているかどうかで操作内容を分岐させるというシンプルなものではあったが、自分からするとそんなもんが簡単に作れると思っていなかったので動いたとき本当に感動した。
このあたりの経験を踏まえると、もう「自分の知っている(できる)ことをAIで効率化してみる」という姿勢でいろいろやるのはダメで、「自分の知らないやったことがないこともとりあえずAIにやらせるところからスタート」という考えでいろいろ試さないといけないと感じる。
ちなみに今回は書かなかったが、人が足りないのとClaude Codeを使うのが楽しくなった結果として、KPIの監視ツールやら、利用料金のSlackへの投稿Botやら、AWS Lambdaを使ってKPI用のDB更新フローの構築やらまで対応した。
正解がある程度分かるかつ小規模な実装項目に関してはプランナーもガンガン手伝って使えるようになった方が良いと思う。
まとめ
以上、自分なりに使った内容について書いてみた。
ゲームプランナーという職種は、ゲームに関する非定型業務を無限にやる仕事だと思っているし、先述の通りその結果として使い捨てのシートを大量に作ることになるが、その手伝い役としてClaude Codeは本当に便利なものだと思う。
功罪はあると言われるだろうが、個人的には使わないという選択肢はもうないと思う。また、体感としては生産性の向上よりも、手軽にシミュレーションを回せるようになったことで自分の設計に対する安心感が上がった気がしている。
まだ使ったことがない方は、とりあえずインストールして使ってみることをおすすめしたい。