「強い馬を作る」ではなく、「売れる馬を作って牧場経営を黒字にする」ことが目的の競走馬生産牧場シミュレーションを、AI(Claude Code)と一緒に個人開発しました。ブラウザで動き、スマートフォンでも片手で遊べます。
この記事では、前半でゲームの遊び方と面白さを紹介し、後半で仕様書づくりからスマホ対応、サーバー公開までの開発の流れと、AIと個人開発するときのコツをまとめます。競馬ゲームが好きな人にも、AIでゲームを作ってみたい人にも読んでもらえる内容にしました。
- ジャンル:競走馬の生産牧場経営シミュレーション(ブラウザゲーム)
- 対応:PC/スマートフォン(インストール不要)
- プレイ時間:10年間の経営で1周(以降も継続可能)
- 開発:Claude Code を使った個人開発
目次
どんなゲーム?「強い馬」より「売れる馬」を作る生産牧場シミュレーション
プレイヤーは資金3,000万円から始める零細の生産牧場の経営者です。繁殖牝馬を買い、種牡馬を選んで種付けし、生まれた仔馬を育てて、セールで売ります。収入の柱は仔馬の売却代金です。
このゲームでいちばん大事なのは、G1馬を作ることではありません。種付料・維持費・育成費・セール費用を合わせた原価より、高く売れたかどうかです。潜在能力がG1級でも、育成に時間がかかりすぎて赤字になることがあります。「強い馬」と「儲かる商品馬」は別物、というのがこのゲームの軸です。

基本の流れは「買う→付ける→生まれる→育てる→売る」
- 繁殖牝馬を買う:市場には約20頭が並び、毎年1月と11月に入れ替わります。母自身の競走成績や過去の産駒成績から、子出しや能力を推し量ります。
- 種付けする:種付期は2〜6月です。受胎率は基本70%で、若い馬ほど受胎しやすく、1シーズン3回まで挑戦できます。種付料には「受胎したら支払う」タイプと「毎回支払う」タイプがあります。
- 出産:種付けの11か月後に仔馬が生まれます。
- 育成する:1歳9月から育成を始めます。外部育成(月20万円)は効率が良く、牧場内育成(月8万円)は安い代わりに効率が落ちます。体質が弱い馬は休みがちで、気性が難しい馬は伸びにくくなります。
- 売る:開催月にだけ出品できます。保有している間は、1頭につき毎月10万円の維持費がかかります。
潜在能力は見えない。「調教番長」にだまされることも
仔馬の潜在能力は数値で表示されません。プレイヤーに見えるのは、血統、母系の評価、馬格、体質と気性の評価、育成の進み具合、調教での動き、市場の評価、推定売却価格などです。そこから素質を推測します。
ややこしいのが「ウッドチップ適性」です。ウッドチップは調教の馬場で、レースの条件ではありません。そのため、ウッドチップが得意なだけの馬は調教では抜群に見えるのに、実戦では走らないことがあります。逆に本当に強い馬でも、ウッドチップが苦手だと調教では地味に見えます。この「見抜けなさ」がゲームの面白さです。
いつ・どこで売るか。7つのセールと「出品は生涯2回まで」
セールは単なる売却ボタンではありません。セールごとに開催月、客層、評価の基準が違います。
| セール | 時期 | 特徴 |
|---|---|---|
| ブリーダーズセール | 0歳8月 | 当歳馬専用。血統中心で早く現金化できる |
| セレブセール | 1歳7月 | 最高峰。審査が非常に厳しく、参加費も高い |
| 選抜セール | 1歳8月 | 中央向けの良質馬。審査あり |
| 即売会 | 1歳9月 | 最も一般的な1歳市場 |
| ローカルセール | 1歳10月 | 地方向け。丈夫さと仕上がりの早さを重視 |
| トレーニングセール | 2歳4月 | 調教の動きと育成度を強く評価 |
| 家畜セール | いつでも | 最後の処分先。無料だが価格は極めて安い |
1頭がセールに出られるのは生涯2回までです。審査に落ちても、売れ残っても(主取り)1回に数え、参加費もかかります。何度も出して相場を探ることはできません。
「当歳で売って早く現金化するか」「1歳まで育てて育成評価を上乗せするか」「2歳のトレーニングセールで調教の良さを売りにするか」。保有期間が長くなるほど費用はかさむので、いつ売るか、どこで売るか、どこで見切るかがプレイヤーの判断になります。
3つのクラブ売却:救済、確実な売却、そしてスカウト
セールとは別に、クラブに売るルートもあります。クラブへの売却は、生涯2回の出品回数を消費しません。
- 赤字愛馬会:セールで売り切れなかった馬の最後の希望です。審査は緩く、ほぼ丈夫さだけで値段が決まります。
- パメラHC:牝馬専門のクラブです。一発の大物より、目立った欠点がなく全体がまとまった牝馬を好みます。1歳6月にのみ申し込めます。売った牝馬は競走生活を終えると、繁殖牝馬として牧場に戻ってきます。
- レジェンドRH:こちらからは申し込めません。優秀な1歳馬を見つけると、向こうからスカウトに来ます。スカウトが来たこと自体が「この馬はかなり良いのでは?」という手がかりです。確定した高値を受けるか、断ってセレブセールでさらに上を狙うか、悩みどころです。

引退したら「答え合わせ」。あの馬は本物だったのか
売った馬は、その後も裏で育成され、レースに出て成績を残します。そして競走生活を終えた時点で、その馬の真の能力(潜在能力、距離と馬場の適性、体質、気性、成長型)と、売却額・原価・粗利を見比べられる「答え合わせ」が解禁されます。
「高く売れたあの馬は本当に強かったのか」「安く手放した馬を見誤っていなかったか」「トレーニングセールで高騰した馬は本物か、調教番長か」。売った後まで楽しめる仕組みにしました。
テストプレイで実際に起きたこと
10年間を手動で通しプレイすると、次のような馬が普通に出てきました。
- 安く売るしかなく、赤字になった馬
- 主取りを繰り返して大損した馬
- 普通の商品馬として500万円ほど利益が出た馬
- トレーニングセールで2,000万円以上になった馬
- 7,000万円以上で売れ、実際にレースでも強かった馬
- 高額で売れたのに、未出走で終わった馬
市場価格と競走能力が一致しないので、セールの結果に一喜一憂できます。「G1馬より黒字の馬を作りたい」と思えるかどうかが、このゲームの手応えでした。
遊んでみる
ブラウザで開くだけで遊べます。インストールも会員登録も不要です。現在はテスト版で、数値のバランスは調整中です。
- 課金要素はなく、馬券の購入や賭けの要素もありません。お金はゲーム内の通貨だけです。
- 登場する馬・種牡馬・クラブはすべて架空です。
- セーブデータはお使いのブラウザに保存されます。ブラウザを変えたり、閲覧データを消したりすると引き継がれません。
- スマートフォンでは、画面下の「翌月へ」「次のイベントまで」で進めます。
Claude Codeで作った開発の流れ
ここからは開発の話です。コードはAnthropicの開発支援AI「Claude Code」に書いてもらい、私は仕様を決めることと、遊んで判断することに集中しました。
1. 仕様書を渡して、まず「質問させた」
最初に渡したのは、ゲームの目的、基本ループ、各数値、そして「今回は作らないもの」を書いた仕様書です。レース画面、ローテーション選択、配合理論、調教師や騎手のシステムなどは、あえて作らないと明記しました。
そのうえで「仕様上の不明点は勝手に実装せず、都度質問してください」と伝えると、AIは実装の前に十数問の確認を返してきました。たとえば次のような質問です。
- セールの審査に落ちた場合、生涯2回の出品回数と参加費はどう扱うか(→回数も参加費も消費する)
- 受胎率はどうするか(→基本70%。若いほど受胎しやすく、個体差もある)
- 売った馬のその後を見せるか(→見せる。体質が良いと出走数が伸び、気性が良いと成績が安定する)
- 成績判定の能力の境界はどこか(→未勝利戦を勝てるのが60、G1を勝てるのが95。境界ぎりぎりなら勝率33%程度)
自分では決めたつもりでも、仕様書には穴がたくさんありました。AIに勝手に埋めさせず、質問させて自分で決めることで、「自分が作りたいゲーム」からずれずに済みました。
2. まずは10年回せる最小版を作る
最初の目標は「繁殖牝馬を買う→種付けする→仔馬が生まれる→育成する→売る→収支が変わる」を10年間繰り返せることでした。HTMLとJavaScriptだけで作り、ビルドもサーバーも要らない構成です。
種牡馬のデータ、各種費用、適性の倍率、育成のパラメータ、成績判定の境界は、すべて設定ファイルに切り出しました。あとから種牡馬や時代を差し替えたり、バランスを調整したりするとき、コードを触らずに済みます。
3. ボットに10年×30回遊ばせてバランスを見る
手で何十周もするのは大変なので、簡単なボットに自動で10年間プレイさせ、セールごとの落札価格の分布や黒字になる馬の割合を集計しました。
最初の数値では、適当に生産して即売会に出すだけで7割の馬が黒字になり、簡単すぎました。価格を下げると今度はどの戦略でも赤字になり、厳しすぎました。そこから調整して、ランダムに近い戦略では収支がトントンか少し赤字、考えて配合すれば黒字にできる水準を狙いました。
4. クラブ売却・セール予約・答え合わせを追加
手動で10年プレイして基本ループの手応えを確認してから、クラブ売却、セールの予約機能、馬格表示の修正を追加しました。予約は「この馬は○月の○○セールに出す」と1件だけ決めておく機能です。開催月になると自動で出品されるので、10年分の操作がぐっと楽になりました。
このとき、確認項目14個をテストスクリプトにしてチェックしました。すると、パメラHCが「体質の弱い高素質の牝馬」を95%の確率で採用してしまっていることが見つかりました。「欠点のある牝馬は落とされやすい」という仕様に合っていなかったので、欠点の減点を強めて4%まで下げています。数字で確かめないと気づかない不具合でした。
5. スマホで片手で10年遊べるようにする
実際に何周もテストプレイするなら、スマホで遊べるほうが続きます。そこでゲームの計算には一切手を入れず、画面だけを作り直しました。
- 「翌月へ」「次のイベントまで」を画面下に大きく固定し、連打で何か月も進まないよう少し間を置く
- 馬カードは、見比べに必要な情報だけを一覧に出し、細かい情報は「詳細」に折りたたむ
- 種付け、出品、クラブ売却、家畜セールなど取り消せない操作だけ、大きなボタンの確認シートを挟む
- 幅320pxの小さな画面でも、横にはみ出さない
変更後も、同じ乱数でボットに遊ばせた結果が変更前と完全に一致することを確かめました。見た目を変えてもゲームの中身は変わっていない、と言い切れるのは安心でした。
【画像:スマートフォンでのプレイ画面(下部の月送りボタンと馬カード)】
6. サーバーに置いて実機でテスト
最後に、Webサーバーにアップロードしてスマホから遊べる形に整理しました。ゲームに必要なファイルだけを書き出すスクリプトを用意し、ファイルはすべて相対パスで読み込むので、サーバーのどのフォルダに置いても動きます。更新したときにスマホに古いファイルが残らないよう、読み込みURLにバージョン番号を付ける工夫も入れました。
AIと個人開発してわかった5つのコツ
コツ1:仕様書に「作らないもの」を書く
AIは気を利かせて機能を足しがちです。作らないものを明記しておくと、最小版が本当に最小になり、「面白いかどうか」を早く確かめられます。
コツ2:不明点は勝手に埋めさせず、質問させる
ゲームの手触りを決めるのは細かいルールです。「不明点は質問して」と頼むだけで、仕様の穴が質問の形で返ってきます。答えを選んでいくだけで、仕様書の精度が上がっていきます。
コツ3:数値は最初から設定ファイルに出す
価格、費用、確率は、遊んでみるまで正解が分かりません。コードに埋め込まずに1つのファイルへ集めておくと、調整が速くなります。
コツ4:自動プレイで「分布」を見る
1回遊んだだけの印象は運に左右されます。ボットで何十回も回して価格や黒字率の分布を見ると、簡単すぎる・厳しすぎるがはっきり分かります。機能を追加したときに既存のバランスが崩れていないかを確かめるのにも使えます。
コツ5:「内部の値」と「見せ方」を分けておく
このゲームでは今、市場の評価をかなり直接的に表示しています。将来は「従業員がこの馬をどう見ているか」という不完全な情報に置き換える予定です。そこで、市場の内部評価と画面に出す言葉を別々のファイルに分けました。表示を差し替えるときに、ゲームの計算を触らずに済みます。
よくある質問
無料で遊べますか?
無料です。課金要素はありません。
馬券やギャンブルの要素はありますか?
ありません。生産牧場の経営シミュレーションで、扱うお金はすべてゲーム内の通貨です。
実在の馬は登場しますか?
登場しません。馬、種牡馬、クラブはすべて架空です。
スマホでも遊べますか?セーブはどうなりますか?
遊べます。セーブはブラウザに自動で保存され、ページを閉じたりリロードしたりしても続きから遊べます。ただし、別のブラウザや端末には引き継がれません。iPhoneでは、Safariで開いた場合とホーム画面に追加して開いた場合とで、保存先が別になります。
プログラミングの知識がなくてもAIでゲームは作れますか?
コードを書く部分はAIに任せられます。ただ、「何を作るか」「何を作らないか」「どの数値なら面白いか」を決めるのは人間の仕事です。このゲームでも、時間がかかったのは仕様を決めることと、遊んで判断することでした。
まとめと今後
「強い馬」ではなく「売れる馬」を作る競走馬生産牧場シミュレーションを、AIと一緒に作りました。潜在能力が見えない中で、いつ・どこで売るか、どこで見切るかを判断し、引退後の答え合わせで自分の見る目を確かめる。そんなゲームになっています。
今後は、テストプレイを重ねてバランスを詰めたうえで、時代ごとの種牡馬や人気の移り変わり、生産した牝馬を自分の繁殖牝馬にする機能、従業員による評価などを追加していく予定です。進み具合はこのブログで報告します。


コメント