Blox Farm

Blox Farm LogoBlox Farm is a puzzle game for Windows. Originally, I made this as a way to learn DirectX, but later rewrote it and polished it into this refined version. It demonstrates basic principles of teaching players rules and strategies, while maintaining a proper interest curve and player feedback.

Overview – Project Details

Development Time: 1 Month
Platform: Windows
Roles: Designer, Programmer, Artist
Tools: Zero Engine (DigiPen), Python, C#, Visual Studio, Photoshop

Gallery – Screenshots

Video – Gameplay


Overview – Synopsis

In Blox Farm, the player takes the role of a chicken tying to reach some corn. Various obstacles block your path, and you must push rocks and other objects around to reach your goal. There are often multiple solutions to each puzzle, and an optional hint system to prevent the player from getting stuck. Each level is designed to teach a concept, and build upon the lessons learned previously.

When I first created this game, it was with the primary goal of learning DirectX. After I had completed the project, I found that I had created a fun little puzzle game, that with some polish, could be pretty nice. So I rewrote the game in DigiPen’s proprietary “Zero Engine” (similar to Unity), gave it a proper interface, and reworked many of the levels. What you see here is the result.

The playtesting and iteration process of this project was especially interesting to me. Watching people’s faces, and see consistently where they get that “Ah ha!” moment was really exciting. This project was an excellent lesson in refinement through playtesting.


Details – Design Process

In a puzzle game like this, you can build so many different challenges with just a few simple rules. With just objects you can move, terrain you can’t pass, and terrain movable objects can’t pass, there’s enough to create some pretty challenging levels. The challenge comes from teaching the player, and getting them into the right mindset for the later levels.

The early levels introduce the game rules, one at a time. First the objective, then being able to move rocks, and so on. The concepts are introduced one at a time, so as not to overwhelm the player. After two very simple levels, real puzzles occur during these lessons, keeping the player engaged during this basic training.

This level reinforces a mindset for future levels.
This level reinforces a mindset for future levels.

The first non-tutorial level (pictured to the right) is really interesting to watch people play. It is almost universally the first level that stumps people for a couple minutes as they figure out “How on Earth do you get a rock to push the corn?”. They can see the corn has to be pushed down to the bottom, then pushed to the side. But figuring out how to get a rock down to the bottom to push the corn to a reachable space is difficult. This is the first time in the game the player can’t just directly push a rock where they want it to go – they have to maneuver around obstacles first.

And that’s the training of this level – without being explicitly told, the player is taught an important concept for future levels. This is actually one of the most important levels in the game for teaching the player. I tried removing this level, and even though players were able to get past future levels, they almost universally did so much slower than players that first played this level. Effective level design isn’t just about the layout, it’s about the mindset of the player.


Details – UX Design

The challenge in a puzzle game is figuring out what to do, but the player should never be placed into a position where they feel like they can’t figure out what to do. When the player does, their interest goes down, and all is lost. Anything that doesn’t go smoothly, or gets in the player’s way can add to the player’s frustration, and contribute to their sense of being stuck. So it is essential that a puzzle game’s UX be as smooth as possible.

The player should not ever have to think about controls. WASD, arrow keys, and the mouse all work. In the settings menu, they can adjust the chicken’s speed to a rate they prefer. Menus are clean, simple, and intuitive. None of these things should ever cross a player’s mind at all – if they do, then something can be improved upon.

Since the player can only push objects, and can’t pull, it’s possible to push objects into a losing state. The player needs to be able to undo a wrong movement, or even just plain start fresh if they think they’ve made a mess of things. Two buttons for these tasks are always displayed at the bottom of the screen, rather than just being pause menu option. This keeps the option in the player’s mind, and makes it feel like less of a bad thing to go back.

Since it is possible to get into a losing state, the player needs to be made aware that they’ve lost. Nothing could be worse than solving the puzzle, but realizing you pushed the last rock you need into a corner way back at the start of the level. Just throwing up a giant “You Lost!” message can contribute to a player’s sense of frustration though. To alleviate this, I made the chicken squawk and briefly flap around when a losing move occurs. The player’s made aware that they have done something wrong, but is provided the agency to undo on their own. I had the chicken keep flapping around, and eventually outright tell the player what went wrong (there won’t be enough rocks to reach the corn, the corn is blocked off, etc). Which some players appreciated it, some playtesters felt this was too much. I made this an option in the settings menu, to allow the player the choice.


Details – Post-Mortem

I’m very pleased with the way this game turned out. By far, this game benefited the most of any of my games from iterative playtesting. Many levels underwent major overhauls, and the game is much better because of it. This was a great learning experience at understanding thought processes and seeing how people discover.

If I was to go back to this project, I’d like to flesh it out more. While it certainly accomplishes what I set out to do, and is an entertaining experience, it’s pretty short. I’d like to add more levels, and introduce more objects and terrain with different rules. I could certainly see the potential for a great mobile game from this foundation.


Download – Full Game

The full game is available as a standalone executable. Click here to download.