Genre: 3D Platform Defense, Physics-based Arcade
Team Size: 4
Development: 3 months
Technology: Unity, C#, Maya
When: 3rd semester of Game Design (B.A.) at HTW Berlin, 2018
Play it: https://axmjd.itch.io/unbalanced
System Design: Designing the main game loop, creating and balancing the enemy wave spawn system, testing with players
Programming: Developing a fully playable prototype, then focusing on player character and enemy behavior
Tools Programming: Developing a tool for enemy wave creation via Drag & Drop
Unbalanced is a physics-based platform defense game that emphasizes light-hearted and quirky gameplay.
Waves of enemies drop onto your platform and shift the balance, try to push you off or even destroy the platform itself! Throw them off the platform, stuff them into holes to repair the damage they’ve done, or push them all off with a mighty shockwave. The next high score is just around the corner.
The development process
I am happy to say that we managed to design and develop Unbalanced by sticking to a plan of 8 hours a day. In the beginning, we experimented with different mechanics and even with a version where the player controlled two player characters with one controller, prototyping them in Unity and testing them for their potential.
But after lots of playtesting, we found that a main game loop based on balancing, enemy waves and platform destruction was by far the most satisfying, so we continued to flesh it out with power ups, different enemy types, special events and platform changes.
While Emely and Jo worked on the Art Style, Cyrill and I developed the game in Unity. I spent a long time figuring out the right approach to enemy waves and special events, coming up with the Enemy Wave System that selects randomly from pools of handcrafted waves. This way, I had tight control over the difficulty curve, while at the same time ensuring that the game loop never felt repetitive, even if you play Unbalanced more than a hundred times.
As in all of my projects, I conducted many systematized playtests to balance the game for fun and satisfying gameplay.
I programmed and iterated over player character and enemy behavior and controls, implementing power ups and timing special events to provide a change of pace.
I am very glad with how Unbalanced turned out. We received a lot of positive feedback, and many players would not stop playing, trying to beat their own highscore.
Working with a team of 3 younger team members, I learned to find a good balance between giving everybody the space to bring in their ideas and a more leading role in project management.
I learned a lot about pacing a game experience by varying the flow and rythm of enemy encounters and special events. I spent a lot of time balancing the game by performing systematized tests with lots of players of different game preferences and skill levels.
I also learned that implementing visual feedback and sound early on helps in judging the potential of ideas for game mechanics.
Continuing to code with another programmer, I realized that in situations with clear goals but complex implementation, paired programming can lead to faster and more robust solutions. On the other hand, when I am for example prototyping a new gameplay element which is still subject to a lot of change, it can be important to have the space and calm to try out a few solutions on your own.
This is a flowchart I created to plan the platform change before implementing it.
The Enemy Wave Creation Tool I created so all team members could easily create enemy waves via Drag & Drop
Unbalanced was made by:
Thanks to our coaches
Prof. Susanne Brandhorst
Prof. Thomas Bremer