About the Project
This is a project I began to stay sharp and learn more after university. Although this project unfortunately remains unfinished, it is a fully playable game and is just missing a lot of the polish, such as 3d assets, and 2d art for the UI.
The game is a "hack and slash" zombie-esque arcade game with abilities the player can charge up and use to help defeat the enemies.
Level Design
To the right is a picture of the initial level plan. The library (where the enemies main spawn is) is directly at the other end of the map from the church (the building in yellow and the player's starting location) along the main road. This is to prevent the player from getting lost and disorientated as the game is top-down. This way, the library is always north, and the church is always south, so no matter where they are they will always be able to find their way back to where they know.
The overall design has a lot of inspiration taken from the Deep South in an American suburb. Funnily enough, many of the reference images are taken from the same small town in Alabama where the church and library are on the other sides of the road.
The edges of the map are blocked off by trees or roadblocks to prevent the player and AI leaving the area.

Mechanics
Enemy Spawn
There will be 3 spawn points at the beginning of the game but only 1 will be turned on at game-start with a new one being turned on every minute of gameplay. These are main spawns which churn out enemies at a more frequent rate and cannot be destroyed. Instead they can be deactivated for a short period of time.
Enemy spawn points which can be destroyed and spawn enemies at a slower rate spawn randomly across the level. This was somewhat difficult to setup initially as I had to have the spawn points only spawn in areas where the enemies can move out of and not halfway inside other objects.
As the game is top down the player can not just see where these spawn points are, instead they need to follow the stream of enemies coming from it and determine where it is and destroy it.

Achievements
Achievements can be earned in-game and track progress across multiple playthroughs. This was a very complex system to setup as I had scripted it in a way that allowed me to add more achievements or edit existing achievements at any time and the menu would be automatically updated to accommodate it.
Although this took a long time to get working perfectly and adds little to actual game-play, it taught me a great deal.
There is a lengthy video below describing what I did and how I did it.

Update#9: Achievements
Abilities
The abilities are the player can use all have to be charged up before they can be used. The first ability which launches a projectile at an enemy, instantly killing it, charges over time, but can be sped up by picking up collectables.
The second ability brings down lightning from the sky and kills all enemies in a very small radius at the cursor location. This is charged up by resting your player. Resting your player prevents you from attacking or moving but charges the ability and slowly heals your player. Stop resting has a small animation delay before you can attack or move again.
The third ability kills all enemies in a large radius around the player. This is charged up by killing enemies.