はじめに
普段はAWSやTerraformを触っているインフラエンジニアです。
Pythonは書けますが、UnityとC#は未経験です。
そんな自分が、Codexと一緒に養蜂ゲームを作り始めました。
実装されたC#を見ても、現時点では一ミリも分かりません。
それでも、
- 自分が企画する
- Codexが実装する
- Unityで動かす
- おかしければ会話しながら直す
という形で、想像以上に開発が進んでいます。
原点はMinecraftの養蜂Mod
ゲームのベースになっているのは、Minecraftの以下のModです。
- Forestry for Minecraft(FFM)
- Extra Bees
蜂を交配して新しい種類を生み出したり、特殊な資源を生産したりする養蜂システムがとても好きでした。
ただ、自分が当時遊んでいたMod構成をそのまま再現しようとすると、Minecraft 1.6.4というかなり古い環境が必要になります。
ホッパーが追加されたのが1.5の頃なので、だいぶ古いですね……w
そこで、
あの養蜂の面白さをベースに、自分が遊びたいゲームを作ろう
と思ったのが始まりです。
現在は、
蜂を育種し、自然を再生し、衰退した村を復興する養蜂町おこしシミュレーション
を作っています。
養蜂だけでなく、農業、植林、採取、加工、料理、村づくりなども取り入れる予定です。
まずは春の3日間だけ作る
最初からすべて作ろうとすると、確実に終わりません。
そこで現在は、春の3日間を遊べるチュートリアル版に絞って開発しています。
チュートリアルでは、主に次の要素を体験します。
- 養蜂
- 農業
- 浄水
- 採取
- 料理
最後は、自分で育てた作物と老人が用意したソーセージでポトフを作り、一緒に食べて終了する予定です。
かなりほのぼのしています。
Codexとの開発状況
Codexとは友達のような会話で話しながら開発しています。


※7/23現在の会話画面です。
最初から細かい仕様書を作り、すべてをCodexへ渡しているわけではありません。
大まかにフェーズを分けて、実装とテストを少しずつ繰り返しています。
- ブレストしながら要件を決める
- 設計をまとめる
- Unityプロジェクトを作る
- プロトタイプ用のマップを作る
- 老人を追加する
- 会話やイベントを追加する
- 養蜂機能を追加する
実際の依頼は、こんな感じです。
プロジェクト作って!
動いたら、
いいね!最高だよ!
次は老人宅のマップ作ってもらっていい?
さらに動いたら、
老人を追加してみよう!
話しかけたら会話が始まるようにしたい!
という形で進めています。
実装後はUnity上で自分が操作して確認し、問題があれば、そのままCodexへ伝えます。
実際に動かすと、バグが面白い
もちろん、最初からすべてがうまく動くわけではありません。
じじいが増殖する
自宅の案内が終わったあと、老人は自宅側に残る予定でした。
しかし老人宅へ戻ると、なぜかそこにも老人がいました。
Codexには、こう伝えました。
なんかジジイが老人宅にも居るんだけどw
原因を調べてもらい、イベント中の移動と通常のマップ移動を分けました。
案内終了後は、老人が自宅側に残るよう修正しています。
暗転せずに瞬間移動する
マップ移動は、
暗転
↓
主人公とカメラを移動
↓
明転
という演出にする予定でした。
しかし実際に動かすと、暗転せずに突然ワープしました。
ちょいちょーい!仕様では暗転するのにワープしてるぞ!ww
と伝えて、暗転処理を修正してもらいました。
老人が邪魔で巣箱を開けない
会話も巣箱の操作もEキーなので、老人が巣箱の近くにいると、会話とアクション両方表示されてしまいました。
じじいが邪魔で巣箱開けねぇw
巣箱とじじいの会話が重なっちまってるw
そこで老人の待機位置をずらし、同時に複数の対象へアクションしない仕様にしてもらいました。
すると今度は、自宅マップへ移動した際に老人が雑草と重なりました。
じじい邪魔で雑草の処理が出来ねぇw
最終的には、掃除対象に重ならない位置へ移動させました。
こうしたバグを通して、
機能が動くことと、ゲームとして自然に遊べることは別
だと分かりました。
現在できていること
現在は、以下の流れを実際に遊べます。
老人と会話する
↓
蜂を受け取る
↓
王女蜂と雄蜂を巣箱へ入れる
↓
女王蜂を誕生させる
↓
ハニカムや次世代の蜂を生産する
↓
老人について自宅へ移動する
↓
自宅の案内を受ける
↓
雑草、石、落ち枝を片付ける
老人から、虫かごと花蜜蜂の王女蜂・雄蜂を受け取ります。
王女蜂と雄蜂を巣箱へ入れると、女王蜂が誕生します。
※プロトタイプで使用している蜂の画像は、生成AIで作成した仮素材です。
ほかにも、次の機能が動いています。
- 8方向移動
- ダッシュ
- 会話システム
- インベントリ
- ドラッグ&ドロップ
- 女王蜂の寿命
- ハニカム生産
- マップ移動
- 掃除クエスト
春の1日目はまだ完成していませんが、養蜂とインベントリ周辺だけで、C#コードは約1,850行になりました。
1日目を作っていたはずが、気付けば先に養蜂基盤を作り込んでいました。
C#は自分のゲームから覚える
Pythonの経験があるため、条件分岐やループといった基本的な考え方は分かります。
しかし、Unity固有の処理はまだほとんど分かりません。
そのため、参考書ではC#の基礎だけを確認し、実際の技術は自分のゲームコードから学ぶ予定です。
Codexには、次のように頼みます。
このコードを、C#初心者向けに説明して!
このゲームの中で何をしているコードなのかを中心に、
覚えた方がいい内容は3個くらいに絞って!
C#をすべて勉強してからゲームを作るのではなく、
自分のゲームを理解した結果、C#も少しずつ分かるようになる
という進め方です。
今後
現在の目標は、春の1日目を最初から最後まで遊べる状態にすることです。
次は、以下の部分を作ります。
- 古い鍬を受け取る
- 自由に地面を耕す
- 畑を6区画作る
- 肥料を使う
- 夕方になる
- 就寝する
- 春の2日目へ進む
最終的にはグラフィックも整え、モニターの方に遊んでもらえる状態まで完成させる予定です。
そこまで進んだら、一度ゲーム開発を止めて、EC2+DBパッケージの開発へ戻ります。
まとめ
UnityとC#が未経験でも、
- ブレストする
- フェーズに分ける
- Codexに実装してもらう
- Unityで動かす
- バグに笑う
- 会話しながら直す
という流れで、実際にゲームを作れています。
AIがコードを書いてくれても、
- 何を作るのか
- どこまで作るのか
- どう動けば正しいのか
- 遊んでいて何が邪魔なのか
を判断するのは人間側です。
現在は、
じじいが邪魔で巣箱開けねぇw
みたいなことを言いながら、かなり楽しく開発しています。
FFMやExtra Beesで感じた養蜂の面白さを、自分なりのゲームとして形にしていきたいと思います。

