Steamのストアにて話題の新作を漁っていたところ、プログラミングを題材としたゲームの割にレビュー数が多く、圧倒的に好評だったので買ってみた。僕は趣味でWebプログラミングを5年前から独学しているためある程度の知識はあるものの、触れたことのないPythonに寄せて作られたオリジナル言語ということで新鮮な気持ちで始めました。

今回は、そんな僕が4日間、毎日時間を忘れてのめり込むほどにハマってしまった『農家は Replace() されました』を徹底レビューしたいと思います。

ざっくりどんなゲーム?

一言でいうと、ドローンをプログラミングし、農業を自動化して効率よく作物を収穫するゲームです。収穫した作物でスキルツリーをアンロックしながら、使えるコードが増えたり、収穫できる作物が追加されていき、徐々に複雑さが増しながら充実していきます。昔流行ったクッキークリッカーのような放置ゲーのイメージですが、リソースを収集するためにかかる時間が自分の書いたコードによりかなり変わってくるので、うまいコードを書くことですぐに次のアンロックに必要なコストを稼げてしまうという点が理にかなっていて面白いです。

海外の制作チームにより作られた作品でクオリティが高く、細部まで洗練されたデザインでとてもきれいに作りこまれています。日本語にも対応していて、翻訳の品質もかなり高いので安心して遊ぶことができます。プログラミング経験のない初心者のプレイも想定されており、シンプルかつ丁寧な作りで分かりやすく、理解レベルに応じて順を追って新しいコードをアンロックしていける作りで、プログラミングをやっている人はもちろん、未経験者にもおすすめの作品です。Minecraft(マインクラフト)やTerraria(テラリア)などの創造的なゲームが好きな人はきっと楽しめます。作るためにはまずはリソースを集めるという作業が不要なため創造に徹することができ、コードを書くことにブロックを設置するときのようなモーション時間がないため創造作業が効率的にサクサク進行できるため時間を忘れて没頭してしまいますね。

4日間没頭すると…

4日間やり込んだ僕の画面

農場は最初は1×1マスの広さから始まり、アンロックで徐々に広くなります。各作物には特徴があり、それぞれに適した収穫方法を考え、コードに落とし込みます。画像のカボチャは、他のものと引っ付いて大きく育ち、大きいほどボーナスでたくさん収穫できます。

たくさんのコードの書かれたウィンドウが画面中に配置され、圧倒されるかもしれませんが、これらは自由に増やしたり、移動させたりできるので、慣れるまでは1つのウィンドウだけでやれるのでご安心を。僕は几帳面なのですべてが1画面に収まるようにきれいに配置してあります笑 個性が出せるゲームって面白いですよね。

UIも非常に洗練されていて、ズームアウトやズームイン、移動なども自由自在なため、実際には画面に映っている以上にかなり広いです。巨大なPCのデスクトップ画面がここに存在しているような感じです。

画面をざっくり解説

せっかく調整を繰り返してたどり着いた画面配置なのでざっくり紹介したいと思います。

左上がリソース(収穫物・資源)です。スキルツリーのアンロックにより種類はまだ増えますが左から、干し草、木材、ニンジン、カボチャ、奇妙な物質、ゴールド、水、肥料、パワーです。水と肥料は一定時間毎に貰え、ゴールドは迷路で手に入れます。他のものは栽培して収穫します。

リソース

右上のUIボタンは左から、「新しいコードファイルの作成」、「情報ウィンドウを開く」、「アンロックツリー画面への切り替え」です。コードファイルとは画面に存在する、コードの書かれたウィンドウです。最小化してタブだけになっているものもコードファイルです。ここにプログラムコードを書いて、タブの開始ボタンでプログラムを実行します。情報ウィンドウは、ゲームやコードに関するすべての説明が書かれたマニュアルで、スキルツリーをアンロックするたびに情報が追加されます。アンロックツリーでは収穫したリソースを消費することで、新しい収穫物や使えるコード(命令)などをアンロックできます。また、ドローンのスピードアップや、農場のサイズ拡大などもできます。

アンロックツリー

リソースの下の二つのタブは、閉じられた情報ウィンドウです。ある情報を調べながら他のことを調べたい場合にタブを切り替えながら使うため2つ配置しています。

①は収穫用のプログラム群です。各ウィンドウはそれぞれ1種類の資源を収穫するためのもので、収穫したい資源のプログラムを実行することでドローンが農業を開始します。もちろん収穫は自動で行われます。

その下の閉じられた3つのタブは上から、ゴールド探索用、迷路生成用、ドローン移動用のプログラムです。ゴールドは迷路に1つ配置された宝箱から獲得することができます。迷路を生成し、ゴールドを回収するためのプログラムです。迷路生成用プログラムは、迷路生成に関する仕様を確認するための実験用として作りました。ドローン移動用プログラムは、他のコードから読み込んで、必要に応じて実行するためのコードです。アルゴリズムが複雑でコード量が多いため、ファイルを分けて管理しています。

迷路でゴールドを探索中

②は定数用のプログラムファイルです。定数とは、マップサイズや、全てのアイテムの名前などの変化しない値を管理するもので、それらの定数をこのファイルでまとめて管理しています。他のプログラムから読み込んで必要に応じて使うためのものです。

③は農場です。何度か拡張し、現在は6×6の広さです。プログラミングでドローンを操作し、地面にアイテムを植えることで、必要な資源を育てます。自分が書いたコードに沿ってドローンが動き回るので、視覚的で直感的にコードの流れを理解することができ、動かしているだけで楽しいです!収穫できる資源が増える度、新しい攻略への挑戦が始まるので楽しいですね。

農場でカボチャを収穫中

③の左上に閉じてあるタブは、マスク(ブラインド)用で、開くと農場をちょうど覆い隠します。長時間動き回っているドローンを見ていると酔うので、視界に入らないようにするため適宜切り替えています。スピードアップグレードを重ねるとドローンの移動が高速になるので笑

マスクなし
マスクあり

④はメモ書き用のノートです。プログラムコードは各行の先頭に#(シャープ)を入れることでそれ以降をコメントとみなし、実行時に無視してくれます。それを利用して、全行コメントアウトすることでノート代わりに利用しています。ゲームで設定されているショートカットキーはオプション画面を開かないと確認できないので、ここにメモしておくと便利ですよ。

メモ書き用のノート

⑤は関数をまとめたコードファイルです。関数とは別のファイルから呼び出して使うことのできるプログラムで、例えば、「地面の水が不足している場合に水やり」や、「一定時間後に収穫結果を表示」などの複数の関数をまとめて管理しています。複数のプログラムで使いまわせるお決まりの動作などを、このファイルに関数として定義してまとめています。

⑤の上にある閉じられたタブは、農場リセット用プログラムで、実行することで農場の状態を初期状態である草原にリセットします。各プログラムの実行を止める場合にこれを実行します。中のコードはとてもシンプルで、clear()の1行です。

リセット用プログラム

⑥は仕様確認のための実験用のプログラムファイルです。コードの仕様など、気になる挙動を確認するために短いコードを書いてすぐに試すためのものです。

⑦はプログラムの動作確認のためにコードに埋め込んだメッセージを出力するためのコンソール画面です。コードの途中で、この時の変数(状況に応じて変化する値を保持したもの)の値は何かを調べるためにコンソールに出力するようにテストとしてコードに埋め込みます。また、上手くプログラムを組むことで、一定時間後に収穫量の測定結果を表示することもできます。

メッセージ出力用コンソール画面

とまぁ、このような感じで、全然ざっくりじゃなかったですが…笑 一通り画面の説明でした!

さいごに

今回紹介した『農家は Replace() されました』はSteamにて960円(10月25日まで1200円の20%オフのセール)で購入することができます。プログラミング経験者から未経験者まで楽しめ、時間を忘れて没頭してしまうほどとても面白いのでおすすめです。次回からはプログラミング未経験の初心者向けに、進め方を徹底攻略していきたいと思います。それではまた次回!