機能とその理由: Opus Magnum での最適化

何が機能するのか、なぜ機能するのかは新しい月次コラムです。銃を突きつけてそしてヒートシグネチャデザイナーのトム フランシスは、ゲームのデザインを深く掘り下げ、何がゲームの良さを生み出すのかを分析します。

素晴らしい仕事だは、輝く小さな原子を配置して組み合わせて鉛を金に変える機械やその他の空想的な錬金術を設計するパズル ゲームです。これは Zachtronics によるもので、そのゲームは非常によく知られたパターンに従っており、「Zachlike」というジャンルになっています。スペースケム不定形、深センIO、そして現在素晴らしい仕事だすべてには、特定の入力を処理し、必要な出力を生成する自動システムの設計が含まれます。しかし、私が詳しく説明したいのは、この形式の特殊な点であり、オーパス マグナムが特に得意とする最適化です。

初期のパズルでは、水の原子から「安定化した水」を生成する必要があります。昔のことだ。あなたがしなければならないのは、2つの水原子を取り出し、そのうちの1つを塩に変えて、それらを結合することだけです。これは 1 つの「安定化水」であり、これをループ上で生成し続ける機械を設計する必要があります。

2 つの明るい緑色の球体は水の原子が入ってくる場所なので、それぞれ 1 つずつ掴みます。左側のものはルーン文字のものを通過して塩に変えます。その後、両方ともコネクタスロットにあり、それらが結合され、アウトポットスロットに押し込まれます。繰り返す!

そしてそれは、上記のとおりです理由1Opus Magnum では最適化が非常に満足できるものになっています。作成したものはすべて GIF にエクスポートでき、これほど GIF に最適なゲームはありませんでした。文字通り、繰り返される短くて楽しいシーケンスを作るのはあなたの仕事であり、それを完璧な無限ループとして人々に見せることができれば、自分の小さな機械の赤ちゃんをさらに誇りに思うでしょう。

新しいプレイヤーとして、このソリューションは非常にうまく見えました。 Opus で作成したものはすべて、見ていて非常に満足できるものなので、ゲームをただ進めているだけでも、賢くなった気分になれます。しかし、3 つの異なる方向において、改善の余地は非常に大きくあります。

もっと安くなる可能性があります。製品を出力スロットに押し込むために伸びるピストン アームは、通常の伸びないアームよりも 10g 高価なので、それを必要としない方法が見つけられれば、お金を節約できるでしょう。このソリューションには 70g 相当のギアが必要です。私が設計した中で最も安いものはたったの 40g です。

もっと小さいかもしれません。大したことではありませんが、これが私が最も高得点を獲得した指標です。このソリューションでは 9 タイルが必要ですが、私のベストでは 7 タイルが必要です。スペースの最適化の優れた点は、Opus が物を構築したタイルだけでなく、マシンが移動する必要があるスペースもカウントすることです。したがって、マシンから長い腕を振り出している場合、その腕が通過するすべてのスペースがここで重要になります。これにより、パーツが突き出さずに相互に移動する、満足のいくコンパクトな装置を構築することができます。

そして、私の解決策はもっと速いかもしれません。はるかに高速になる可能性があります。私の最初の解決策には 63 サイクルかかりましたが、その後、友人の Alex が 53 サイクルで私を破ったので、45 サイクルしかかからない解決策を作成しました。私は自分自身にかなり満足していました。リーダーボードで友人のジープが 24 年に達成したと知らされるまでは。24 年?!これならほぼできるよ二度私の高速ソリューションと同じくらい速いですか? Opus Magnum では、友達のスコアは表示されますが、解決策は表示されません。これは本当に嬉しいです。これを自分で理解したいと思いました。

それは理由2:何を最適化するかを選択できます。スペースの最適化が面倒に感じる場合は、時間の最適化を試してください。それが難しい場合は、コストを試してください。通常、どこかで成功を見つけることができます。

この初期の単純なパズルでは、コストとスペースの両方に対する私の最良の解決策は、たまたま同じマシンでした。

とても楽しいと思います。必要なものすべてに囲まれた 1 つの可動部分が、誰にも邪魔されることなく、ゆっくりとしたペースで静かに問題を解決します。小さくて安くてきれい。それで、それは理由3:最適なソリューションは、見ていてさらに満足感が得られます。

対照的に、これらのことをまったく気にしないと、彼らがどれほど恐ろしいものになるかがわかります。

時間の最適化

ザックライクで自分が絶望的に​​非効率だったことに気づくのは、新しい経験ではない。私は、SpaceChem のいくつかのレベルを、不器用だとわかっていたソリューションで失敗しましたが、そのゲームのより抽象的なプレゼンテーションがプログラミングのように感じさせてくれました。プログラミングするつもりなら、自分のゲームに取り組んで、何かを披露したいと思います。それ。

Infinifactory の方が気に入ったのは、Minecraft 風のブロック状の 3D 世界で物理マシンを構築できるからです。そのため、プログラミングというよりも高度なレゴのように感じられました。しかし、それと格闘したとき、それは圧倒されるものでもありました。新しいソリューションを 3D で視覚化するのは難しくなり、現在のソリューションをすべて一度に確認するのは難しくなります。私はこの逆境に、自分にできる限りの恵みを振り絞って対処しました。

オーパス マグナムにはこれらの問題はありません。その輝く機械的な外観と満足のいく物理的相互作用は、SpaceChem が私にしてくれたように仕事をしているように感じさせないことを意味します。また、Infinifactory では私が苦労した方法で、ソリューション全体を確認したり、新しいソリューションを簡単に視覚化したりすることができます。

これらすべてが意味するのは、自分のソリューションがもっと効率的であるとわかったら、実際にそれを修正しようとするということです。そしてそのプロセスは啓示でした。

複雑なシステムを調べて、1 サイクルを短縮する小さな置き換えや面倒な再配置を 1 つ見つけるだけの場合、最適化は退屈です。これはそうではありませんでした。私は少なくとも 6 回、根本的にソリューションをゼロから再発明し、全く新しい概念を導入し、新しいサブシステムを発明して、さまざまな道を切り開きました。

それで、それは理由4:Opus Magnum での最適化は単なる調整ではなく、再発明です。

私の最初の考えは、上記の解決策では、腕を開始位置に戻すのに多くの時間が無駄になっているということです。同じ方向に動き続ける糸車を使ったらどうなるでしょうか?

それはさらに悪いことです!それははるかに悪いです!これには、45 サイクルではなく 53 サイクルかかります。それでも、私は、頭の中で良いと思われたアイデアを悲惨な結果のために諦めたことがありません。もっと良いホイールを作ることはできないでしょうか?

38、今、どこかに向かっています!まだ 24 ではありません。ホイールがもっと大きかったら?

30!ここでの真の発明は、横にあるヘルパーアームから余分な原子を拾う方法としてジョイナーデバイスを使用することです。アームがスイングするときにジョイナーデバイスがちょうどラッチすることができるため、原子を拾うために停止する必要がなくなります。しかし、私たちはまだ一度に 1 つの製品しか作っていないので、すべてを 1 つの大きな車輪に乗せると、一度にさらに多くのことを行うのが難しくなります。生産ラインの方が速いでしょうか?

いいえ!とにかく、これではありません。掴んだり落としたりしすぎ。しかし、車輪が増えたらどうなるでしょうか?

27!ホイール万歳!しかし、まだたくさんの掴みと落としが起こっています。あまり言いたくないのですが、車輪の数が少なければもっと速くなるでしょうか?

25!はい!なんてことだ、ジープの24号車にもうすぐだ。

この頃、友人のケビンがこう言いました。

理由 5:フレンドリーな競争。

15?!これは不合理です。しかし、実際にはちょっと嬉しいです。9 サイクルを失う可能性があるとわかっているなら、それが私が探している大きな新しいコンセプトであることがわかります。

私のゲーム時間は現在 2 つに分割されています。キャンペーンを継続し、各パズルを基本的な基準まで完成させ、最適化のために立ち止まることはありません。そして、私の時間の残りの半分は、新しくより効率的な方法で安定化水のパズルを繰り返し解くことに費やします。

そしてそれは理由6: 最適化する必要はありません。進歩するためにこれをしなければならなかったとしたら、おそらくイライラして辞めていたでしょう。その代わりに、このキャンペーンやキャンペーンに参加したり参加したりすることができます。その方が楽しいし、新しいアイデアが得られることもよくあります。

キャンペーンで原子源を 1 つだけ提供するパズルに到達したとき、2 つの 3 本腕の車輪を使用して 2 倍の速度で原子源を取得できることがわかりました。安定化水に戻ると、これを適合させて出力速度を 2 倍にする方法を見つけました。

18!これは明らかに狂っていますが、興味深い性質があります。出力スロットに注目してください。完成した製品を受け取ることにすべての時間を費やしています。これは、達成できる絶対最大レートです。たとえ高速化できたとしても、すべてを適合させることはできません。それでは、改善すべき点は何でしょうか?

サイクル スコアは、マシンがコールド スタートから 6 つの製品を製造するのにかかった時間を表します。つまり、最初の 1 つを作成して納品するのにかかる時間に、レートに関係なく 5 倍が加算されます。私たちの速度は最適なので、最初の製品を作る時間は遅くなるはずです。生産ラインのアプローチに戻って、ラインに沿ったすべてのスペースで少なくとも 2 つのアームを動作させて、高速に動かし続けるとしたらどうなるでしょうか?

17! 1サイクル早くなりました!まだあと2つ失う必要がある。あとは拾い上げと落としだけです。原子が持ち替えられるたびに、サイクルがかかります。原子は...決して手を替えることはできないのでしょうか?アイデアがありました。

シックスレール方式!これは、最初の製品を提供するのがはるかに速く、全体的なスコアは...まったく同じです。

ここでは私が望んでいたことがまったくできませんでした。プロセスには 4 つのステップがあり、それぞれにアームが必要でした。ただし、アームは 3 ヘクスまでしか延長できないため、この外側にレールを追加すると、新しいアームが届かなくなります。そのため、現在、交通システムにギャップがあり、ループごとに 1 サイクルずつ何も配送されない状態になっています。ほんの少しのナッジが必要です。

6本のレールとナジャー! 15サイクル!やったよ!

これらのナジャーは原子を目的地まで押し進めるほど遠くまで到達することができませんが、その必要はないことに私は気づきました。ジョイナーをソルターの前に移動すれば、原子を前方に運ぶのに必要なアームは 1 本だけです。その時点から、結合された原子も一緒に持ち込まれます。それを利用するには、これらの腕が実行する命令を少しいじる必要がありましたが、最終的にはそこに到達しました。

私はこれらの解決策を思いつきながらツイートしていました。そして、Twitter の Matthew Smith が、もしあなたがそれができると知っていたら、この時点で私が行うことができたであろうもっとクールな調整を実際に見つけました。 それは、レールをループさせることです。

理由 7:一度最適化したとしても、さらにクールなデザインが必ず見つかります。

概要を理解するために、これらの GIF はそれぞれ次の解決策です。同じ問題。それらはどれもまったく同じことを行います。私が試したすべてではありませんが、さらに 5 つあります。そして、この問題はチュートリアル。その後、全体で 5 つの幕があり、そのすべてが複雑になっていきます。非常に単純なチュートリアルのパズルにそれだけの深さと創意工夫の余地があるのなら、その後の複雑なパズルにどれだけの工夫の余地があるかは想像するしかありません。そのレベルの深さは、Zachlikesにとって新しいものではないと思います。しかし、Opus Magnum の美しいプレゼンテーション、優れたチュートリアル、そして本質的な共有性のおかげで、私は初めてこの作品を深く掘り下げることができました。これは素晴らしいことです。

Tom Francis は Gunpoint と Heat Signature のデザイナーであり、元ゲーム ジャーナリストです。ゲーム制作に関する彼の考えについては、こちらをご覧ください。彼のブログ