Hedge Hug

Details

  • Engine/Platforms: built in Unity for PC, Mac, available on Itch.io
  • Team Size: 11
  • Duration: 9 months
  • Tools Used: Unity, C#, Perforce
  • Role: Engineer

Overview

Hedge Hug is a 2D, single-player, narrative-driven role-playing adventure game. The game explores low self-esteem and social anxiety issues with interactive narrative puzzles and emotional gameplay elements, through the lens of a caring and sensitive hedgehog, Emma, a ceramic artist who struggles with loving and trusting herself in her daily life.

Inspired by movies like Kiki’s Delivery Service and games like The Average Everyday Adventures of Samantha Browne, Hedge Hug strives to create likable characters to evoke empathy, and portray realistic daily life moments, along with compelling and interactive gameplay experience.

My Role - Engineer

  • Implement the designer-friendly Dialogue System
    • Utilized spreadsheet for designers to add and change dialogues conveniently.
    • Added type-writer effect.
    • Implemented text-skipping feature.
    • Polished to improve usability.
  • Polished existing event systems in-game
    • Debugged and exposed parameters to support designers.
  • Improved cursor system
    • Refined detection on different 2D layers for specific functions (e.g. mouse click movement and mouse drag objects).
    • Implemented cursor shift feature that changes cursor for different interactions (e.g. walkable area, interactable objects).
  • Prototyped Breathing gameplay mechanic
    • Refined old implementation.
    • Smoothed controls.
    • Added a dynamic difficulty feature to help struggling players succeed.

The biggest challenge I faced working on Hedge Hug was the fact that I did not join the team at the beginning. Some systems had already been developed and scripts had been written. Never had experience working on a game midway through development, I spent a lot of time trying to understand the code base. This was a great experience since now I have learned that it is common in the game industry and being able to understand any code base quickly is a crucial skill.

Dialogue System Showcase

After understanding the code already written for dialogue, I first improved the system by utilizing spreadsheet to store dialogue texts in the editor following advice from my director. I faced some expected issues with special symbols (quotation marks). I solved by simply ignoring it. It wasn’t a pretty solution (luckily no dialgues had quotations) but it was a quick one. Just like what my Game Engine professor Artem Kovolovs said: “a solution doesn’t need to be pretty if it works fine, leaves it there.”

I continued to polish and add new features on the dialogue system based on needs. One of the convenient features was the ability to skip text typewriter effect if the player wants to go through the dialogues quickly. It was harder than I anticipated to implement as it required deeper logics on Unity’s coroutine which I wasn’t familiar with. The knowledge I gained from this was helpful for my future projects as well.

While ultimately Kach did not have a similarly fully physical environment, this prototype set a great foundation for our examine mechanic.

Breathing Prototype Showcase

The breathing mechanic was a quick puzzle triggered in game when Emma is stressed (it is like a breathing exercise to calm oneself down). How it works is that the player holds the mouse to expand the sphere, and releases it when it hits the ring; upon hit, the ring will change its size, and the player continues to hit it until it is over. The player must hit all rings consecutively. An old prototype was already developed when I was assigned to take over. My task was to make its gameplay more natural and more challenging.

The old system was already well-established so I built upon it. To make it more natural, I changed the mechanic to now that expanding sphere had to hit the inner side of the ring and the shrinking sphere the outer side of the ring (before both were hitting the inner side). This change actually killed two birds with one stone. Now the breathing felt more natural with better player feedback. It felt more “rhythmic.”It also dramatically raised its difficulty, now the speed of the game went much faster and the player might now react quickly enough to hit the ring consecutively.

In fact, the breathing puzzle became too difficult. To adjust this, I tweaked the area of collision for the ring and added a dynamic difficulty feature. The game would keep track of the number of times missing hits. Upon reaching some threshold, the area of collision would enlarge giving the player more frames to react. This simple fix prevented the player from being stuck in this quick puzzle. There was a quick slowdown in time the first time player is about to hit the ring. It served as a quick tutorial for the player.

Cursor Change System

The cursor change system in Hedge Hug allowed artists to add cursor sprites quickly in the editor (some eleven required multiple sprites for animation). I also wrote up documentation for artists and designers for them to understand the system more clearly.