Fuzzy Farmers

Engine: Unreal Engine 5

Intended Platform: PC

Approximate Date of Development: October 20th, 2024

Genre: Simulation

What is it?

Fuzzy Farmers is a game that I initially created for my GAM 303 course, which I took at the start of 2024. The course focuses on the fundamental ideas of game development and design, and teaches basic skills using blueprints only.

My goal after the course was to start from the beginning and apply the knowledge I gained as I took more courses and learned more about game development and Unreal Engine. Additionally, the first version of the game was in Unreal Engine 4, and I wanted to get more experience with Unreal Engine 5.

The resulting product displayed here is the most recent version of the prototype. It shows off main gameplay features and a general feel for the world. At this point the gameplay is brief, but the foundation has been laid to continue development.

Description of Gameplay

In this prototype, the player’s goal is to capture as many fuzzies as possible within 5 minutes. The player can find fuzzies by listening for sound cues and watching for visual cues. When the player approaches a location that they think might have a fuzzy inside, they press and hold the E key to search. Once they’ve finished searching, if a fuzzy is inside, it will pop out and start running away from the player. The player then chases the fuzzy, presses E to catch it, and their score is increased.


A dirt spot on the ground bursts to indicate a fuzzy hiding inside.
A bush produces a burst of leaves to indicate a fuzzy hiding inside.
A fuzzy pops out of a bush after shaking it.
Chasing and capturing a fuzzy

Fuzzy

One of the main features of the game, if not the most important, is the Fuzzy. It’s a simple sphere static mesh with a groom asset attached. The gif below shows what the fuzzy looks like before dynamic materials are applied and modified. The default colors are intentionally clashing so that if there is an issue with the materials, it’s easy to see when the game is simulated.

Before creating the groom asset, I experimented with making the Fuzzy out of larger hair pieces, using regular meshes and inverse kinematics. But this was difficult and didn’t achieve the look I was going for.

So I decided to learn how to make hair in blender! It turned out to be much more straightforward than I had anticipated. I went through many different versions of the hair, but I knew I wanted a “clumpy” style to eventually resemble the low-poly style of the environment.


Above is some of the code that modifies the materials for the Fuzzy.

Spawnpoints

Spawnpoints are the locations/objects that Fuzzies can spawn from. There are four different options:

Trees

Trees

Trees produce a burst of leaves from the top section. To add variation to the game, the color of the leaves can be either orange, red, or green. This value is determined at the start of the game, before Fuzzies are spawned into the level.

Bushes

Bushes

Bushes produce a burst of leaves from the top when there is a Fuzzy inside. The color of the leaves and the mesh are randomized before the game starts.

Dirt

Dirt

Dirt spots are small brown spots scattered throughout the level. They produce small dirt particles periodically to indicate the presence of a Fuzzy.

Grass

Grass

Grass clusters are scattered throughout the level, similarly to dirt. Initially there was an issue with the Fuzzies being hard to detect if they were hiding inside these. As a result, I increased the scale of the grass spawnpoints that contain Fuzzies.

The Code

Each spawnpoint is a child of the parent class, Spawnpoint Parent. Because each spawnpoint overall has the same intended purpose and functionalities, it made the most sense to build one class, and make any modifications necessary in the child class. This was a great opportunity for me to really understand the principles of Object Oriented Programming.

Reveal Code


Environment

I experimented a lot with the environment of this game. While it wasn’t a priority, since gameplay was more important at this stage, I wanted to make something that was visually appealing and fit the theme.

I used a combination of assets I made myself, assets from Itch.io, and assets from the Unreal Engine Marketplace. Inside the editor, I utilized the foliage tool and a custom landscape material to achieve an interesting and effective level. Aside from aesthetics, I aimed to make it clear to the player where the game area was, which I did with fences.


What’s Next?

Since Fuzzy Farmers is a prototype, there is a potentially long way to go for this game. And like many games, this one’s gameplay will most likely dramatically change as development continues!

Bug Fixes

First on the to-do list is bug fixing and other game-breaking or experience-ruining problems. I’ve discovered these through playtesting myself, and having friends and colleagues assist with playtesting.

Priority issues include:

  • Fuzzy launch impulse is too great.
  • FOV needs to be modified to reduce motion sickness.
  • Provide a visual indicator for audio clues.
  • Make visual clues more obvious.
  • Tree clues burst upwards, which causes the player to frequently miss them.
  • E key must be lifted up before the Fuzzy will spawn.
  • Menu music is too loud

Gameplay Improvements

After the priority bug fixes have been completed, I can start planning and making changes to the gameplay.

Plans for future development:

  • Golden Fuzzy – A new Fuzzy type that is worth 300-500 points (instead of just 100 for the regular Fuzzy). It moves faster, and has smarter AI to dodge the player. It has a gold color and has a particle effect to show it shining.
  • Spoiled Fuzzy – A new Fuzzy type that is worth -100 points. While it spawns less frequently, if the player finds this Fuzzy they lose 100 points.
  • Fuzzy Collection Method – Currently, the player just presses E to collect a Fuzzy. In future versions, the player will need to capture the Fuzzy in a net. This will make gameplay both more engaging and more challenging.
  • Powerups – If you shake a spawnpoint, there is a chance that instead of a Fuzzy being inside, it’s a powerup. This powerup can grant you bonus speed, temporarily slow down time, or enable you to temporarily instantly collect a Fuzzy when it jumps out of a spawnpoint.
  • Point system overhaul – Currently, the player earns 100 points per Fuzzy collected. However, in the future, the number of Fuzzies collected in a gameplay session will be added to a total sum of Fuzzies collected. Normal Fuzzies and Golden Fuzzies and any other additional Fuzzies created will have their own counts. As the player collects more Fuzzies and the count increases, they will be able to unlock permanent upgrades.