18
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

農作業ゲームでプログラミングの勉強ができる"農家はreplace()されました"が良き。VS Code連携まで。

Last updated at Posted at 2025-12-23

"農家はreplace()されました"というSteamゲームをSNSで見かけて気になっていました。

ドローンをPythonっぽいプログラミングで制御して農作物を収穫していきつつ農場を拡大していくゲーム って感じです。

CleanShot 2025-12-23 at 13.04.06.png
https://store.steampowered.com/app/2060160/_Replace/

当時はWindows版のSteamでしか出来なかったですが...

待望のMac対応したらしい

Mac版が対応したとコメント貰って早速購入してみました。執筆時点だとは20%オフらしいです。

めちゃめちゃ面白いしアルゴリズムの勉強に良さそう

購入して少し触ってみてますが、ドローンを操作して収穫をするというシンプルなゲームですが全てプログラミングで操作するためアルゴリズムの勉強のような感じで面白いです。

Pythonぽいプログラミング言語

Program a drone using a simple python-like language to fully automate various farming tasks that would otherwise be very grindy. Feel the satisfaction of simply pressing "execute" and watching your drone do all the hard work.

...と公式にも"Python風のプログラミング言語"と書いてますが、オリジナルのシンプルなPython風プログラミング言語を記述してゲームを進めます。

例えばドローンを移動させる関数でmove()が用意されていて、上(北)に移動させる場合は以下のように指定。

move(North)

収穫対象があればharvest()関数を利用

harvest()

whileループも用意されているのでこれらを組み合わせて以下のように書くと移動しながら収穫を繰り返します。

while True:
	move(North)
	harvest()

進めていくと使える表現が増える

最初はシンプルなコードしか書けないのですが、収穫した農作物と引き換えに機能のアンロックをしていきます。

変数、演算子、配列...と徐々にやれることが増えていきます。

CleanShot 2025-12-23 at 13.13.18.png

草 => にんじん => かぼちゃとグレードアップしていきますが、かぼちゃを植えるためには、先に収穫したにんじんを消費したり、地面が耕されている状態にないといけない、など条件も増えてくるので効率的な農業をするためにはプログラミング的な表現の幅が欲しくなっていきます。

外部エディタ(VS Code)でプログラムが書ける

ここまでは通常の遊び方ですが、 外部エディタ(VS Code)でプログラムが書ける とのことなので設定をしてみます。外部エディタを使いたい方は以下が参考になれば幸いです。

通常のエディターはゲーム内にウィンドウがたくさん出てくる感じのシンプルなものです。これでも問題ないのですがショートカットキーやUndo、複数選択...などプログラミングに慣れてる人からすると機能に使いづらさがあります。

CleanShot 2025-12-23 at 13.19.53.png

個人的にはTouch Designerっぽい雰囲気を感じました。

CleanShot 2025-12-23 at 13.20.50.png

Touch DesignerもPythonだった気がする

設定 > 一般 > ファイルウォッチャー からファイルウォッチャーを有効にします。

CleanShot 2025-12-23 at 13.26.11.png

Mac OS Tahoeですが、以下のSavesフォルダにSaveファイルが保存されています。

~/Library/Application Support/com.TheFarmerWasReplaced.TheFarmerWasReplaced/Saves

CleanShot 2025-12-23 at 13.38.57.png

こんな感じでSave0というフォルダに.pyファイルが保存されていました。たぶん2個目のセーブデータとかはSave1、Save2...という名前のフォルダになっていくんだと思います。

CleanShot 2025-12-23 at 13.39.20.png

これを見ると直接編集できそうなのでエディタはなんでも良いかと思いますが、公式的にはVS Codeをオススメしてますね。

CleanShot 2025-12-23 at 13.41.30.png

ということで、このSave0フォルダをまるっとVS Codeで開いてみました。

CleanShot 2025-12-23 at 13.43.06.png

f0 - 全てを耕す.pyとなってますがこれは僕がゲーム内でカボチャを作るときに僕が作って名前を付けていたものです。ゲーム内の名前がそのままファイル名になってるんですね。

while True:
	move(North)
	for i in range(get_world_size()):
		move(East)
		if can_harvest():
			till()

実際の連携ですが、該当するファイルを変更して保存するとゲーム内のプログラムも動的に変更されます。

これはVS Code側でコメントアウトした様子。

ファイルの削除や新規作成時の更新のタイミング

  • ゲーム内 to VS Code

ゲーム側でファイルを削除したり作成したりした場合、セーブをしたタイミングでVS Code側には反映されました。セーブするまではSaveフォルダ内にはいない模様。

  • VS Code to ゲーム内

逆にVS Codeでファイルを作成した場合はロードをすることでゲーム内に持って行けました。

CleanShot 2025-12-23 at 13.54.13.png

おわりに

まだ触って少しですがプログラミング教育やアルゴリズムの勉強にすごく良さそうです。

プログラム書いた後は放置ゲーなので忙しい社会人にもおすすめできます。

牧場物語とかのシミュレーションゲームもプログラミング的思考の育成になってたんだろうなーってこのゲームをやって感じました。

VS Codeまでやれるとバイブコーディングいけちゃいそうですね... 苦笑

この辺は最後までやってみてからですかね。

18
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?