Horde: Zombie Destruction
Hyper-Casual Action Game Inspired by .io games
Role: Designer, Developer
Team: Size: 4
Genre: Top-Down\ Action Game
Development Time: 6 Months
Horde: Zombie Destruction is a top-down, hyper-casual action game. Inspired by ".IO" games like Hole.io. Where your horde is your health, stalk across the neighborhood and destroy everything in your path. Consume civilians to grow your horde and avoid the police along the way.
Designed and iterated on the core game-play loop
Created the "Civilian NPC" spawning and behavior system
Wrote the destructible environment and prop system
Designed and built the objective system
Set up physics and navmesh layers
Level and environment design
Using a joystick not rendered to the screen, the player drives a reticle about the world. The reticle serves as a destination for the zombies to follow, converting its world space coordinate to a zombie specific nav-mesh destination.
Initially using Unity's default NavMesh system, we migrated to the High-Level NavMesh Components available in Unity's Git Repo. The NavMesh Components enable runtime rebaking of the navmesh and the use of multiple navmeshes. It was important to separate the Civilians and the Zombies so that the that zombies can run through props and other navmesh obstacles in the world that civilians navigate around.
Populated with dozens of unique props and items. The feeling of destroying the environment was core to the zombie fantasy. Very early on we found it was satyifying to run through fences and topple kitchen tables full of dishes. Keeping props from colliding with eachother, jittering in place and other unpredictable physics iterations I designed and implemented a trigger based kinematic switcher for all props.
Navmesh agents are very inexpensive on the cpu, you can populate the map with hundreds of them. Skinned mesh renders are not the same and even having them off screen can be costly. Creating a system to spawn them when you approach their location was critical.
Making props shrink away moments after the initial satisfying knock back was an effective way of clearing space and preventing large prop pileups and making the environment become unreadable and crowded.
Clearing the world of its props assists in guiding the player and tells them where they have been before. It was difficult for the player to novagiate when every area looks messy and cluttered.
Part of the zombie fantasy is chasing people as they run away. To achieve this, I gave the civilians their own navmesh that considers all the props that the zombies ignore. With some
To successfully complete a round of Horde: Zombie Destruction the player must locate and destroy 3 key objects placed on the map. This encourages the player to explore the world in a hunting fashion.
Through play-testing we found that without a sense of space, the player will aimlessly roam the map without considering direction. Giving them the ability to locate either Civilians or the Objectives was critical to crafting a fun experience. Otherwise people get lost and stop having fun
Very early on in development we found that the without any indicators or color coding, the screen was difficult to parse. Its important that the player can collect the vital game state information in the first read, simply by glancing at the screen.
A key problem is that all the humanoid models share a silhouette, at a glance they look the same and its hard for the player to make the important decisions they need to make. To prevent the player from mistaking a Cop as a Civilian, and dying because they assumed they were safe. Or mistaking civilians as zombies and thinking their horde was larger than it was we implemented a simple color-coded
This was my first time working with micro-transactions and designing ethical and profitable reward structures. Working with the App Store and Google Play Store to create purchasables was eye opening. Creating an engaging reward structure and increasing a player's desire to continue playing with a macro objective of collecting optional skins was really enjoyable and I look forward to design more systems like this in the future.