現役機械設計者が、AIを使ってSteamゲーム制作に挑戦してみた【第6回】

機械設計×ゲーム

工場パズルの土台となる「MVP」を作ってみた

前回の記事では、
AIと一緒にゲーム開発仕様書を作り、
今回のゲームの面白さの中心を整理しました。

今回のゲームでやりたいことは、
最小コストで、要求仕様を満たすこと。

そして、そのためにプレイヤーが繰り返す体験は、

依頼を受ける → 設計する → 試運転する → 問題を発見する → 改善する → 納品する

という流れです。

ここまでで、「どんなゲームを作りたいのか」
はかなり言葉にできるようになってきました。

ただし、言葉にできたからといって、
そのままゲームができるわけではありません。

次に必要だったのは、
その仕様を、UnityとCodexで作れる形にまで細かくすること。

そこで今回は、工場パズルの土台となる「グリッド」
について考え、実際にゲームの基本構造を整理していきました。


仕様書ができた次に必要だったもの

ゲーム仕様書を作った時点で、
頭の中にはある程度ゲームのイメージができていました。

  • スタート地点からワークが流れてくる。
  • プレイヤーが設備を配置する。
  • 途中で必要な処理を行う。

そしてゴールまで運ぶ。

ただ、この状態ではまだ、「ゲームのアイデア」にすぎません。

Codexに実装を任せるためには、

もっと具体的に、

「画面はどうなっているのか」
「プレイヤーは何を置けるのか」
「ワークはどう動くのか」
「何が成功で、何が失敗なのか」

を決める必要があります。

そこでChatGPTに、

Unity+Codexで形にしていきたいです。必要な情報をピックアップして

と相談しました。

すると返ってきたのは、

まずMVPを作るために必要な仕様を整理しましょう

という答えでした。


まずはMVPを作る

ここで出てきたのが、

MVP

という考え方です。

MVPは、ざっくり言えば
「最小限で遊べる試作品」のことです。

最初から全部入りの工場ゲームを作るのではなく、
まずは最低限必要な要素だけで
「このゲームの核が成立するか」を確認する。

これはかなり納得感がありました。

機械設計でも、最初からすべてを盛り込むより、
まず構想レベルで成立するかを見ます。

ゲームでも同じで、最初に必要なのは、
豪華な見た目ではなく、遊びの土台です。


ChatGPTが整理してくれた最初の必要項目

AIから提案されたのは、こんな内容でした。

  • ゲーム画面は2D・真上視点・正方形グリッド
  • 1マス=1機能ブロック
  • スタート地点からワークが不規則に供給される
  • プレイヤーがブロックを配置してゴールへ搬送する
  • ワークはまず1種類だけ
  • 最初のブロックは5種類程度に絞る
  • 編集モードと試運転モードを分ける
  • 成功条件と失敗条件を用意する
  • 操作はシンプルにする

これを見たとき、

「ゲームって、思ったより細かく決めることが多いな……」

と感じました。

でも同時に、こうして並べてみると、
少しずつ「何を作ればゲームになるのか」が見えてきます。


なぜグリッドにしたのか?

今回、ゲームの土台として最初に決めたのが、正方形グリッドです。
つまり、マス目の上にブロックを置いていく形式です。

これはかなり重要な判断でした。

もし完全に自由配置にしてしまうと・・・

  • コンベアの角度
  • 位置合わせ
  • 接続判定
  • 配置の自由度
  • UIの作り込み

一気に難しくなります。

でもグリッドにしておけば、

  • 1マスに1つのブロックを置く
  • ブロックの向きを変える
  • ワークが次のマスへ進む

というルールで整理できます。

つまり、プレイヤーにも分かりやすく、作る側にも実装しやすい。

これはまさに、前回までに決めていた
「自由設計型ではなく、選択・最適化型にする」
という方向性にも合っています。


1マス=1機能ブロック

グリッド化に合わせて、ゲーム内の設備の考え方も整理しました。
それが、1マス=1機能ブロックという考え方です。

例えば、

  • 直進コンベア
  • 90°カーブ
  • ストッパ
  • 押し出し
  • センサ

といった設備を、それぞれ1マスのブロックとして扱います。

ここで面白かったのが、見た目ではなく、
「入ってきたワークに何をするか」
でブロックを定義する、という考え方でした。

つまり、

  • コンベア
    • ワークを次のマスへ送る機能
  • ストッパ
    • ワークを一時停止して一定タイミングで流す機能
  • センサ
    • ワークの通過を検知する機能

ということです。

機械の形を再現するというより、
設備の役割をゲーム化するという方向性です。

ここは、今回のゲームらしい考え方だと思いました。


最初のブロックは5種類に絞る

この時点で、つい「あれもこれも入れたい」と思ってしまいます。

  • 分岐
  • 合流
  • 加工機
  • ロボット
  • エレベータ
  • もっと複雑な機構。

でも、そこをぐっとこらえて、
最初のMVPでは、5種類程度に絞ることにしました。

具体的には、

ブロック役割主な設定
直進コンベアワークを次のマスへ送る方向、速度
カーブワークを90°曲げる左右
ストッパワークを一時停止し、1個ずつ送る開放周期
押し出しワークを横方向へ1マス移動させる方向、周期
センサワーク通過を検知する検知のみ

最初から複雑な制御を作るのではなく、まずはこの程度で十分。

重要なのは、

この5種類だけでも、ちょっとした工場ラインの問題を作れそう

ということでした。


センサとストッパを最初から連携させない

ここで、個人的に印象的だったのが、
最初からPLC的な複雑な制御は入れない方がいいという話です。

機械設計や設備設計の感覚で考えると、センサがあって、
その信号でストッパを動かして、タイミング制御して……
と、つい考えたくなります。

でもそれを最初からやると、ゲームとしても、
プログラムとしても、一気に難易度が上がります。

そこでMVPでは、

ストッパが自分自身で一定周期に開閉する

という、かなりシンプルな形にすることにしました。

これはちょっと意外でしたが、確かにまずは
「遊びの核」を確認することが先です。

本格的な制御は、あとから追加すればいい。

この考え方は、未経験から作るうえでかなり助かりました。


次に決めるべき4つの仕様

ChatGPTからは、

実装を始める前に特に重要なものとして、

次の4点を決める必要があると言われました。

1. グリッドのサイズ

例えば12×8マス。

2. ワークの移動方式

マスからマスへ瞬間移動するか、
滑らかに連続移動するか。

3. ストッパのルール

例えば1秒ごとに1個だけ通す、など。

4. ワーク供給ルール

例えば0.3〜1.2秒のランダム間隔で供給する、など。

これを見たとき、
「ただグリッドを作るだけでも、けっこう設計っぽい」
と思いました。

単に画面を作るのではなく、
ワークの動きやテンポ、難しさまで決める必要があります。


グリッドサイズは12×8がちょうどよさそう

この段階では、グリッドの大きさもまだ未定でした。

小さすぎると、考える余地が少ない。

大きすぎると、操作が面倒になる。

そこで候補として出てきたのが、

12×8マス

くらいのサイズです。

このくらいなら、

  • 工場ラインを考える余地がある
  • 画面内に収まりやすい
  • 2Dパズルとして見やすい

というバランスが良さそうです。

実際、のちのゲーム画面でも、
このくらいの密度感がかなりしっくりきています。


一番大事だったのは「ワークの動かし方」


今回のやり取りの中で、個人的に一番重要だと思ったのがここです。

見た目はグリッドゲームでも、
ワークまでマス単位でカクカク瞬間移動させない方がいいという話でした。

最初は、
「グリッドゲームなんだから、ワークも1マスずつ移動すればいいのでは?」
とも思いました。

でも、それだと工場ラインが動いている感じが出にくい。

コンベアゲームなのに、
ワークがパッ、パッ、パッと瞬間移動するのは少し味気ない。

そこで、

ブロック配置自体はグリッド上で行うけれど、
ワークの見た目の動きだけは、コンベアの上をスーッと滑らかに移動させる
という方向が提案されました。

これはかなり納得でした。
プレイヤーはマス目で考えやすい。

でも画面上では、
ちゃんとワークが流れているように見える。

このあたりは、

ゲームとしての分かりやすさ
見た目の気持ちよさのちょうどいい落としどころだったと思います。


ゲームが少しずつ「工場」らしくなってきた

この段階では、まだ本格的な画面はできていません。

でも、

  • 2Dの真上視点
  • 正方形グリッド
  • 1マス1ブロック
  • ワークが流れる
  • 直進、カーブ、ストッパ、押し出し、センサ。
  • 編集モードと試運転モード。

こうして要素を整理していくと、

ただの「四角形が動くだけ」だったものが、

少しずつ工場パズルゲームらしい形になってきました。

しかも、この時点ですでに
「どんな工場を作るゲームなのか」
が見えているのが面白いところです。

まだ加工機もありません。
複雑な制御もありません。

でも、土台の設計ができてきた。

そんな感覚がありました。


Unity+Codexで作るには、まず仕様を粒度まで落とす必要がある

今回あらためて感じたのは、AIに開発を任せるほど、
こちら側の仕様整理が重要になるということです。

「工場っぽいゲームを作りたい」だけでは、Codexは動けません。

でも、

  • 2D真上視点
  • 12×8グリッド
  • 1マス1機能ブロック
  • 最初のブロックは5種類
  • ワークは滑らかに移動
  • 編集モードと試運転モードを分ける

というレベルまで落とし込めれば、かなり具体的に実装へ進めます。

ここは、ゲーム開発というより、
かなり設計仕様の整理に近い作業でした。

機械設計でも、構想を図面化する前に、
要求仕様や機能を分解していきます。

今回のグリッド設計も、まさにその感覚です。


最初のイメージ図が、少し現実味を帯びてきた

この頃には、最初に思い描いていた工場パズルのイメージ図も、
だいぶ意味を持って見えてきました。

ただのイラストではなく、
「ここがスタートで、ここにブロックを置いて、ワークをこう流していくのか」と、
ゲームとしての構造が見える図に変わってきた感じです。

頭の中のイメージが、少しずつ仕様になり、仕様が少しずつゲーム画面に近づいていく。

ここから先は、いよいよ実際にUnity上で
グリッドそのものを作っていく作業に入っていきます。

最初のイメージ図


ただのアイデアから、「配置して考えるゲーム」へ

今回、工場パズルの土台としてグリッドを考えたことで、
このゲームは少し前進しました。

ただ工場っぽいものを作るのではなく、
プレイヤーがマスの上で設備を配置して考えるゲームとして、
初めて輪郭が見えてきた気がします。

  • 2D真上視点
  • 正方形グリッド
  • 1マス1ブロック
  • 最初は5種類の設備
  • ワークは滑らかに動く
  • 編集して、試運転して、改善する

このあたりが、
今回のゲームの最初の骨組みになりました。

まだまだ地味な工程ですが、こういう土台があるからこそ、
あとからコンベアも、ストッパも、加工機も乗せていけます。

工場パズルに必要なのは、まず工場を置くための「盤面」でした。


次回は、実際に12×8のグリッドをUnityに作ってみる

今回で、ゲームの土台となる考え方はかなり整理できました。

次にやるべきことは一つです。
実際にUnityの中にグリッドを作ること。

何もなかった画面に、12×8のマス目が現れる。
そこへブロックを置けるようになる。

ここからようやく、「考えた仕様」が
「実際に触れるゲーム」へ変わっていきます。

次回は、

【第7回】Unity上に12×8のグリッドを作ってみた

というところから、

いよいよ工場パズルの盤面づくりを進めていきます。

コメント

タイトルとURLをコピーしました