【第11回】工場パズルのゴールと成功条件を考える|30秒の安定稼働を目標にする

機械設計×ゲーム

前回の記事では、ストッパを追加して、バラバラに流れてくる
ワークを一定間隔に整えるところまで進みました。

これで、

  • コンベアを置く
  • ワークを流す
  • ストッパで止める
  • 一定周期で1個ずつ流す

という、かなり工場らしい動きが出てきました。

ただし、この時点ではまだ、

「どこまで運べば成功なのか」

がありません。

ワークはただ流れていくだけ。

途中で整列しても、その先に目的地がない。
そこで今回は、ワークの到達地点となる「ゴール」を作っていきます。

今回は単なる終点ではなく、

「ちゃんと安定して生産できたかを評価するための出荷場」

という考え方にしました。


次はブロックを増やすより「成功条件」が必要だった

ストッパまで作ったところで、

  • 「次はセンサかな?」
  • 「加工機かな?」
  • 「分岐設備も面白そう」

と、いろいろ追加したくなってきます。

でもChatGPTから提案されたのは、

ChatGPT
ChatGPT

一旦ブロックを増やさない方がいい

というものでした。

理由はシンプルです。

今のゲームには、設備はあるけど、ゲームとしての成功がない。

コンベアをきれいに並べても、ストッパでワークを整列させても、
「で、何をしたらクリアなの?」という状態です。

そこで優先順位として出てきたのが、

  1. ゴール
  2. 排出時間の計測
  3. 評価画面
  4. ミッション

でした。

ここでようやく、
「動かすゲーム」から「クリアを目指すゲーム」へ進みます。


最初は単純なゴールを想定していた

最初のイメージは単純でした。

ワークがゴールに到達したら、「到達した」と記録する。

例えば、コンベアの最後に黄色いブロックを置いて、
そこにワークが入ったら消える。

これだけでも、スタートとゴールができるので、
一応ゲームらしくなります。

でも、ChatGPTから、

ChatGPT
ChatGPT

ゴールを単なる終了地点にしない方が面白い

という提案がありました。

そこで、ゴール自体に、
要求仕様を持たせるという考え方が出てきました。


ゴール=出荷場+検査ポイント

例えばゴールに、

  • 目標排出間隔:2.0秒
  • 許容誤差:±0.2秒

という設定を持たせます。

するとプレイヤーは、単にワークをゴールへ届けるだけではなく、
2秒間隔で安定して出荷できるラインを作らなければなりません。

つまり、ゴールは、「ただの到着地点」ではなく、
「出荷品質を判定する場所」になります。

この考え方はかなり今回のゲームに合っていました。

なぜなら、今回作りたいのは、ただワークを運ぶゲームではなく、
要求仕様を満たす設備を設計するゲームだからです。


ステージごとに要求仕様を変えられる

この仕組みなら、ゴール側の設定を変えるだけで、難易度も自然に上げられます。

例えば…

  • ステージ1。
    • 2.0秒 ±0.5秒
    • かなり余裕があります。
  • ステージ10。
    • 2.0秒 ±0.2秒
    • 少し厳しい。
  • ステージ30。
    • 1.5秒 ±0.05秒
    • かなり高精度。

同じ設備を使っていても、要求仕様が厳しくなれば、
ストッパ周期や配置をもっと詰める必要が出てきます。

これは、機械設計で要求仕様が厳しくなるほど、
設備構成や部品選定がシビアになるのと似ています。


「10個運んだらクリア」で本当にいいのか?

ここで、クリア条件についても考え直しました。

最初は、10個のワークをゴールまで運んだらクリア
くらいでいいかなと思っていました。

でも、今回のゲームのテーマは、「設備を安定して動かすこと」です。

一瞬だけうまくいけば成功、というより、
一定時間、安定して動き続ける方が工場らしい。

そこで私から、

ワークは無限に出てくるものとして、
30秒間一定の間隔でゴールに到達できれば成功、というのはどう?

と相談しました。

この考え方が、その後のゲームルールをかなり決めることになります。


30秒間の「安定稼働」を評価する

最終的に、MVPの基本ルールとして見えてきたのが、
30秒間、ラインを安定稼働させるというものです。

例えば、

  • ワークは連続供給
  • 試運転時間は30秒
  • 目標排出間隔は2.0秒
  • 許容誤差は±0.2秒
  • 規定の精度を30秒間維持できれば成功

というルールです。

これなら、最初の数個だけうまく流れてもダメです。

例えば…

10秒:正常

15秒:ワークが溜まり始める

20秒:ストッパ前で渋滞

23秒:ライン破綻

ということもあります。
これは、かなり実際の設備っぽいです。

短時間なら動くけど、連続運転すると問題が出る。

その問題を見つけて、また改善する。

今回作りたかった、

設計 → 試運転 → 問題発見 → 改善

というループにも、かなり合っています。


1回ズレただけで失敗は厳しすぎる

ただし、排出間隔が一度でも、2.0±0.2秒から外れたら即失敗、
というルールだと、さすがに厳しすぎます。

少しの揺らぎでも、すぐゲームオーバーになってしまいます。
そこで、30秒間のうち何%が許容範囲内だったかを見る案も出てきました。

例えば、

安定率96%。

平均周期2.03秒。

最大誤差0.18秒。

というような評価です。

すると、結果画面もかなりゲームらしくできます。

例えば、

RUN COMPLETE
稼働時間:30.0秒
目標周期:2.0秒
平均周期:2.03秒
最大誤差:0.18秒
安定率:96%
CLEAR

といった形です。

ここまでくると、「工場設備の試運転結果」っぽさがかなり出てきます。


失敗条件も必要になる

成功条件を考えると、
当然、失敗条件も必要になります。

最初に考えたのは、

ワークが3個以上重なったら失敗

というルールでした。

ただ、今後、ワーク同士が重ならないようにする予定なので、
この条件だと少しおかしくなります。

そこで、「同じエリアにワークが3個以上滞留する」という考え方に変更しました。

例えば、

→ ● ● ● ■

というように、

ストッパ前に3個以上ワークが溜まる。
これを、JAM / OVERLOADとして扱います。


3個溜まった瞬間に即失敗にはしない

ここでも、もう一つ調整が入りました。
3個以上溜まった瞬間に、即ゲームオーバー。

これはちょっと厳しい。

実際の設備でも、一時的にワークが溜まることはあります。
なので、例えば、3個以上の滞留が3秒以上続いたらJAMというルールにします。
これなら、一時的な滞留は許容。

でも、解消されない渋滞は失敗。
ゲームとしても、かなり自然です。


MVPのクリア条件が見えてきた

この段階で、MVPの成功・失敗条件は、だいたい次の形になりました。

  • 運転時間
    • 30秒
  • 目標排出間隔
    • 2.0秒
  • 許容誤差
    • ±0.2秒
  • 成功条件
    • 30秒間、ゴールでの排出間隔を一定範囲に維持する。
    • または、一定以上の安定率を確保する。
  • 失敗条件
    • 排出間隔が大きく乱れる
    • 3個以上の滞留が一定時間続く
    • ワークが搬送経路外へ出る
    • ラインが停止する

このルールが決まったことで、何を改善すればいいゲームなのかが一気に分かりやすくなりました。


「ゴール」ができると、ゲームの見え方が変わった

ゴールを作る前は、コンベアを置いて、ワークを流して、ストッパで整列させる。

それだけでも楽しかったです。

でも、ゴールができると、「何のために整列させるのか」が明確になります。

ストッパで間隔を整える。

↓

ゴールへ送る。

↓

排出間隔を計測する。

↓

要求仕様を満たしているか判定する。

つまり、設備を置く理由が、ゲームの目的とつながりました。
これはかなり大きいです。


「出荷場」という考え方にすると分かりやすい

個人的には、ゴールというより、「出荷場」と考える方が
今回のゲームには合っている気がしました。

工場で加工されたワークが、最後に出荷場へ到着する。
そこで、ちゃんと一定のリズムで製品が出てきているか。

必要な処理が終わっているか。
ラインが安定しているか。を確認する。

単なる旗マークのゴールより、工場ゲームとしての意味がある終点になります。


ここでゲームの基本ループがほぼ完成する

ここまでで、ゲームの流れは、
かなり最初に考えていた形に近づいてきました。

依頼を受ける。

↓

設備を配置する。

↓

試運転する。

↓

ワークが流れる。

↓

ストッパで整える。

↓

出荷場で評価する。

↓

問題があれば配置や設定を修正する。

↓

もう一度試運転する。

つまり、配置 → 試運転 → 結果を見る → 改善という基本ループです。

第5回で文章として考えていたゲームループが、
ここでようやく、実際のゲームシステムとしてつながり始めました。


「動くもの」から「クリアを目指すゲーム」へ

これまでの開発は、どちらかというと「動くものを作る」という段階でした。

  • グリッドが動く。
  • コンベアが置ける。
  • ワークが流れる。
  • ストッパが開閉する。

でも今回、ゴールと成功条件を考えたことで、
初めて、「プレイヤーが何を目指すのか」が決まりました。

30秒間、要求された排出間隔を維持する。
滞留を発生させない。
安定したラインを作る。
ここまで来ると、かなりゲームらしいです。


次は「加工機」を追加したい

ゴールまで作ると、次に欲しくなるのが、加工です。
今のワークは、スタートから出て、そのままゴールへ行くだけです。

でも工場ゲームなら、途中で何か処理をしたい。
例えば、未加工の青いワークが、加工機へ入る。

2秒間加工する。

すると、加工済みのワークに変わる。

そして、加工済みワークだけがゴールで正しく受け入れられる。
ここまでできると、ライン設計の自由度もさらに増えてきます。

次回は、

【第12回】加工機を追加して、ワークに「加工済み」の状態を持たせてみた

というところから、さらに工場らしいゲームへ進めていきます。


コメント

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