Abraham Charara

Software Engineer & Developer

Farthest Harvest
Music Composer
Farthest Harvest is a custom level for the popular 2017 indie title, A Hat In Time. This was my first time jumping into a 3D engine. In this case, it was Unreal Engine 3. I created this mod to see what I can do as a level designer, computer engineer, and music composer. What I am most proud of with this project is that I saw it through all phases of development on my own, from planning to maintenance. I also implemented all of the features that I had documented from the start.

Here is the official page for
Farthest Harvest
My biggest goal for this level was to have an explorable hub world with three different levels. The player can play the first two levels in any order, but must complete both to access the third and final level. I also knew from the start that I wanted a warm and welcoming farm theme for the hub world to give the player a sense of home comfort when they return to it.
To require playing through the first two levels and blocking off the final level, I designed the two levels with collectables in mind. These collectables would be required to open a vault in the hub world and get a key to the final level. The vault object cannot normally contain a key, so I instead modified the vault to spawn a key when it opens.
Level Design
Just like with any project intended for public use, the user must be considered at all times. These levels were designed to give the illusion of challenge, but in reality, are helping the user throughout most of it. This way, the user can have a smooth and non-frustrating experience while also feeling like the content has purpose. The most common examples are easy-to-make jumps, arrows indicating where the user should go, and markers on the ground showing where the user can safely stand.
Another example of an illusion of challenge is in the exploration and secrets. The levels are deceptively linear, and any deviation from the linear path will always lead to a secret reward, so the feeling of being lost is replaced with exploration. The user won't be able to tell, but it's impossible for them to play the level without accomplishing something.
The three levels that the user must access are found around the hub world. The camera in the introductory cutscene plays an important role in hinting at their locations. Not only does it use its short runtime to show all three doorways, but it gives the user information through its perspective. The first door is looked down on to show it's on the ground, the second door is looked up at and from the left to show that it's high up and on the right side of the farmhouse. The third door is perfectly centered to show its finality and the user can surmise that they unlock it by opening the safe in front of them. The user will subconsciously use these hints without knowing it.
In the hub world, the player camera functions differently, allowing the user to look up when they normally cannot. This not only allows the user to see climbable platforms on the farmhouse, but it also suggests that user should be looking up in the first place.
A Hat in Time's checkpoint system is made for a purely linear experience, meaning that checkpoints must play out in a numbered order. If the user reaches checkpoint 2, they cannot use checkpoint 1. This was a problem for me because I wanted to the first two levels to be completable in any order. After days of brainstorming and testing, my solution was to have two checkpoints in the first level, checkpoint 1 and checkpoint 3, while the second level holds checkpoint 2. checkpoint 3 can only be unlocked by completing a certain part of the second level, so that way the user does not invalidate checkpoint 2 by immediately jumping to checkpoint 3. Basically, if the user goes to the first world first, they will use checkpoints 1 and 2. If the user goes to the second world first, they will use checkpoints 2 and 3. The final level, being reachable only if the first two levels are completed, uses checkpoint 4.