ESSAY · 2026-06-14

Zachtronics の文法 — プログラミングをパズルに翻訳する

SpaceChem から Opus Magnum まで、命令列を動詞にした11年

🎧 音声で聴く

はじめに

私がプログラミングを覚えたのは教科書ではなくゲームだった、と言うと大げさに聞こえるかもしれない。だが Zachtronics の作品を遊んだ者なら、この感覚に覚えがあるはずだ。SpaceChem の反応炉に命令を並べ、TIS-100 の小さな計算ノードにコードを書き、Opus Magnum の錬金術機械を組む。これらは比喩としてのプログラミングではなく、本物のプログラミング体験をパズルへ翻訳した設計だ。このエッセイでは、Zach Barth が2011年から2022年まで磨き続けたこの『プログラミング パズル』の文法を、インディーゲーム制作者の視点から読み解きたい。

思考系パズルの多くは、盤面の状態を一手ずつ動かす。倉庫番の押す動詞も、Baba Is You の言葉も、基本は『今この瞬間に何をするか』を問う。メタパズルの系譜で私はこの系統を辿ったが、Zachtronics の文法はそこから一歩ずれている。プレイヤーが操作するのは盤面そのものではなく、盤面を動かす『手順』だ。手を打つのではなく、手の打ち方を設計する。この一段の抽象が、ジャンルの手触りを根本から変えている。

命令列という動詞 — SpaceChem と TIS-100 の文法

2011年の SpaceChem は、Zachtronics が商業作品として最初に世に問うた作品だ。プレイヤーは反応炉の中に二本のワルドー(操作アーム)を置き、それぞれに『掴む』『回す』『結合する』といった命令を環状に並べる。一度組んだ命令列は、停止ボタンを押すまで延々と回り続ける。つまりプレイヤーが書いているのは一手ではなく、無限ループするプログラムそのものだ。倉庫番が一手の重さを問うたのに対し、SpaceChem は手順全体の整合性を問う。動詞は依然として少ないのに、その少ない動詞を時間軸へ並べた瞬間、状態空間が桁違いに膨らむ。

2015年の TIS-100 は、この発想をさらに純化させた。画面に与えられるのは、小さな計算ノードと、アセンブリ風の命令セットだけ。MOV、ADD、JRO といった素っ気ない命令を各ノードに書き込み、データを隣のノードへ受け渡していく。ゲームはマニュアルすら擬似的な仕様書の体裁を取り、物語は断片的なコメントとして配られる。ここには絵的な装飾がほとんどない。それでも本作が成立するのは、限られた命令セットという減算が、減算設計の系譜で書いた組み合わせ爆発をそのまま引き起こすからだ。

命令列を動詞として扱うと、パズルの問いが変わる。盤面パズルが『どの一手が正しいか』を問うのに対し、Zachtronics は『どの手順が動くか』を問う。そして多くの場合、動く手順は一通りではない。ここに、このジャンル最大の発明が隠れている。

唯一解を捨てる — Opus Magnum のヒストグラム最適化

思考系パズルの大半は唯一解を前提にする。倉庫番も、Snakebird も、Stephen's Sausage Roll も、正解の手順は基本的にひとつだ。設計者は解の唯一性を保証することで、発見の手応えを担保している。学習曲線の刻み方で触れた『詰まらせる設計』も、唯一解という前提があってこそ成り立つ。だが Zachtronics は、この前提をあえて捨てた。動けば正解、という大胆な割り切りが、ジャンルの体験をまるごと書き換える。

2017年の Opus Magnum は、その判断が最も美しく結実した作品だ。錬金術の機械を組んで指定の物質を生成する、というだけのルールなのに、解き方は無限にある。しかしゲームはクリア後に三つの指標——サイクル数(速さ)、コスト(部品の少なさ)、面積(場所の狭さ)——をヒストグラムで突きつける。他のプレイヤーの分布の中で、自分の解がどこにいるかが一目で分かる。この一枚のグラフが、プレイヤーの背中を静かに押す。

この瞬間、パズルは『解く』ものから『磨く』ものに変わる。一度クリアした面に何時間も戻り、サイクルを一つ削るために機械を組み直す。唯一解を捨てる代わりに、Zachtronics は最適化という終わりのない遊びを手に入れた。クリアという終点を消し、自分との競争という地平を開いたのだ。これは Undo を空気のように扱うのとは別種の寛容さで、失敗ではなく改善を促す設計と言っていい。

抽象の梯子 — 絵から擬似コード、そして Shenzhen I/O へ

Zachtronics の11年は、抽象の梯子を一段ずつ登る歴史でもあった。2011年の SpaceChem は、命令を視覚的なアイコンとして並べる。2015年の Infinifactory は、それを三次元の工場ラインへ拡張した。同じ年の TIS-100 で、ついに命令は文字列のコードになる。そして2016年の Shenzhen I/O では、プレイヤーは実在の電子部品に近い仕様のチップへ、データシートを読みながらコードを書く。一作ごとに、現実のプログラミングへ一歩ずつ近づいていく。

この順序は偶然ではない。絵から擬似コードへ、擬似コードから本物のアセンブリへ。Barth はプレイヤーの観察解像度が上がるのを待ちながら、抽象度を段階的に引き上げていった。視覚的な命令から入った者が、いつの間にかマニュアルを読み、デバッグし、最適化している。動詞の最小化シリーズとは逆に、ここでは語彙がむしろ増えていく。だが増えた語彙の一つひとつが現実のプログラミング概念に対応しているため、学習がそのまま現実の技能へ接続する。

梯子の各段で、Zachtronics は『難しさ』の質を少しずつ変えてきた。視覚パズルの空間把握から、コードの論理的整合性へ。同じ作者が同じ文法で、これだけ手触りの違う作品を並べられたこと自体が、命令列という動詞の射程の広さを物語っている。

プログラミングをパズルに翻訳する — Exapunks と読ませる設定

プログラミングをそのままパズルにすると、無味乾燥になりがちだ。Zachtronics の作品が冷たくならないのは、設定とマニュアルという二つの仕掛けがあるからだ。2016年の Shenzhen I/O はプレイヤーを深圳の電子機器メーカーに転職した技術者に仕立て、社内メールや製品仕様をフィクションとして配る。2018年の Exapunks では、プレイヤーは体を蝕む病に冒されたハッカーになり、治療薬と引き換えに違法な仕事を請け負う。コードの背後に、いつも誰かの事情が透けている。

ここで効いているのが、紙のマニュアルだ。Zachtronics の作品はしばしば、印刷して読むことを前提とした分厚いマニュアルを同梱する。Exapunks に至っては、攻略情報を載せた架空のハッカー雑誌『Trash World News』を、その体裁ごと作り込んだ。コードを書く手と、仕様を読む目を同時に動かす。この体験は、観察を遊びにする系譜とは異なるが、読むことを進行に組み込むという点では遠い親戚だ。

フィクションは、難しさの言い訳にもなっている。アセンブリ風のコードを書かされても、それが『1980年代の架空の街で働く設定だから』と思えば腑に落ちる。Zachtronics は、プログラミングという題材の敷居の高さを、世界観で和らげる術を知っていた。プログラミングをパズルに翻訳するとは、構文を翻訳することではなく、プログラミングが持つ達成感と挫折感を、遊びの文脈へ移し替えることだったのだ。

まとめ

2022年7月の Last Call BBS を最後に、Zachtronics は『これが最後の作品になるだろう』と表明し、活動を畳んだ。Barth たちはその後 Coincidence という枠組みを作り、2025年には Zachtronics 流の工場パズル Kaizen: A Factory Story を発表した。さらに2026年2月には、Opus Magnum の新DLC『De Re Metallica』が告知され、一度閉じたはずの文法がまだ生きていることを示した。命令列という動詞は、作者が店を畳んでも古びていない。

私が次にパズルを作るとしたら、Zachtronics から学びたいのは『唯一解を捨てる勇気』だ。正解をひとつに絞れば、設計は楽になり、達成感も明快になる。だが解を開放し、最適化という終わりのない地平を用意したとき、パズルは初めて『磨く遊び』になる。The Talos Principle の記録機構が手順を遊びにしたように、手ではなく手順を操作対象に据える設計には、まだ掘られていない余白が広がっている。読者にも問いを置いておきたい。あなたのパズルの正解は、本当にひとつでなければならないのだろうか。

リアクション(ログイン不要)

匿名で残せます • 同じリアクションは1日1回まで

学ぶ — カリキュラム

学ぶ第3編 動詞編 — 機構の設計文法第9章 ルールそのものを遊ぶ3 / 8本

次に読む

関連レビュー

編集部からのおすすめ