Inspiration

Farmington started from a simple idea: make a cozy farming game where movement is the interface.

Instead of relying on lots of buttons and menus, I wanted the player to physically move through the farm to plant crops, harvest them, carry resources, bring them to production buildings, sell them, and gradually restore the farm.

I was also inspired by management games where a small number of systems interact in meaningful ways. In Farmington, the player is constantly deciding whether to sell resources now, process them into more valuable products, or invest them back into progression.

What it does

Farmington is a cozy farming and management game built around the loop:

Grow → Harvest → Sell or Process → Invest → Restore

The player starts with a small farm and gradually unlocks more crops and production chains:

Tomato → Ketchup
Corn → Syrup
Apple → Apple Jam
Wheat → Bread

As the farm grows, the player earns money, unlocks new areas, restores production buildings, fulfills customer orders, and works toward bringing the whole farm back to life.

A lightweight tutorial is delivered through Trevor, who introduces mechanics as they become relevant instead of stopping the player with a large tutorial at the beginning.

How we built it

Farmington was built in TypeScript with Three.js.

One of the most interesting parts of the process was using ChatGPT together with Claude Code as part of the development workflow.

I used ChatGPT heavily for game design, system planning, balancing, UX decisions, and breaking larger ideas into clear implementation tasks. Then I used Claude Code to work directly with the project and implement many of those systems.

The game includes reusable systems for farming, crop growth, inventory, customer orders, factories, progression, quests, save/load, audio, UI, and the overall farm restoration objective.

A big focus was keeping systems generic. For example, factories share the same production logic and are configured with different ingredients, outputs, timings, and capacities instead of each factory being implemented separately.

Challenges we ran into

One of the biggest challenges was making movement-based interactions easy to understand.

Because the player does not press an interaction button for everything, the game needs very clear feedback. Planting, harvesting, depositing resources, factory production, customer sales, and progression all need to communicate what just happened without overwhelming the player with UI.

Another challenge was balancing the economy and progression. Resources have multiple possible uses, so prices, production times, unlock levels, and costs all affect whether the player feels like they are making interesting decisions or simply grinding.

Save/load was also more complicated than expected. Crops and factories have timed states, so the game needs to restore things like partially grown crops, active production, inventory, quests, and restoration progress without replaying rewards or completion events.

Accomplishments that we're proud of

I am especially proud that the project grew from a relatively simple farming prototype into a complete playable loop with a clear beginning, progression, and ending.

The movement-based interaction system became one of the most distinctive parts of the game. Planting by moving through a field, walking through mature crops to harvest them, and physically carrying resources between different parts of the farm makes the economy feel connected to the world rather than separated into menus.

I am also proud of how many systems now work together: farming, customers, production, XP, quests, construction, save/load, audio, and restoration all support the same core loop rather than feeling like unrelated features.

What we learned

The biggest surprise for me was how much more accessible game development has become with AI coding tools.

I built Farmington using ChatGPT together with Claude Code, and I did not expect that I could get this far in Three.js without being an experienced Three.js developer.

I could focus mostly on the game design: describe the mechanic I wanted, define how different systems should interact, test the result, identify what felt wrong, and then iterate with AI on the implementation.

Systems that would previously have felt like very large engineering tasks became much more approachable.

AI did not remove the need to make decisions or understand the game. I still had to design the economy, decide what should happen in every interaction, test edge cases, find bugs, cut features, and keep the project focused. But the distance between having an idea and seeing it working in a playable game became dramatically smaller.

That was probably the most exciting thing I learned from building Farmington.

What's next for Farmington

The next step is to continue improving the presentation and feel of the game.

I want to replace more placeholder visuals with finished 3D assets, improve the environment, animations, lighting, VFX, and overall UI presentation, while keeping the core gameplay simple and readable.

I would also like to explore expanding the farm with additional production chains, areas, crops, and management decisions once the existing loop feels fully polished.

The most important thing is to keep the original idea intact: a farming game where the player interacts with the economy by physically moving through the world, and where every new system makes the farm feel more alive.

Built With

Share this project:

Updates