Top Down Shooter Project

[Top Down Shooter Project]
Genre: 2D Top Down Shooter
Platform: Android / IOS
Language: C#
Made With: Unity 5


AI swarming up to Player

One of the first Unity projects I've worked on.

This project is mainly a gateway for us to explore the inner workings of Unity's Game Engine, and how we can utilise the said engine to produce quality games in a short amount of time.

The focus of this project itself is not really to touch on the gameplay elements, but focusing more on the back-end systems to make the entire game as modular as possible.

Throughout all my past projects, I've always made it a point to make my game systems dynamic and easy to implement, so needless to say, I was rather excited to work on this project.

To start things off, we decided to go with the classic top-down shooter game idea in a 2D environment, keeping the gameplay as simple as possible.

The game idea itself is relatively self-explanatory; kill enemies before they kill you.

To spice things up just a little, we also decided to add some unique elements like for instance, protecting the generators placed across the map before the enemies get their hands on them and destroy them.

With the idea in place, I went off to build on the framework for this project.

With me working with raw OpenGL throughout basically the majority of my programming experience, I'm rather surprised by what a game engine can do for you. A lot of things are settled for me without the need to manually code them out in the case of raw programming, and it basically made everything easier. (E.g. Collision detection)

Because of that, I thought programming with Unity was going to be a breeze... It turned out otherwise.

At the start, programming with Unity was rather hard for me as everything was so alien. Simple tasks was hard to implement and I end up going online to look for answers repeatedly.

I had to create new base projects to test out simple algorithms like Enemy AI Way Points and I'm not going to lie, it was rather tedious.

But after all the constant trying (and failing) and experimenting, I finally got used to the engine, and everything went on full throttle.

I went ahead and did all of the back-end systems for our game, including the Input System (dynamic functions returning true if Input is collided with a desired collider), Combat System (Firing Process, etc.), Achievement System (using Unity's Delegate Event Functions), Map Generators (Endless Map Scrolling, etc.), Unit System (Parent Unit Class for all entities to inherit from), Timer Class, Analog Handling, etc etc.

I cannot be more grateful for this project as it basically allowed me to explore Unity's game engine with such great depth. I've also learned how to manage systems effectively and create a good base framework that is extremely easy for the game designer to implement his levels.

Unity became my new best friend.


Particle System Emission after a bullet has collided and "destroyed".


Enemy will always switch its priority to attacking the player should he come close.


Mini turrets placed across the map to hinder the player's process


Modular achievement system that rewards the player upon completion of an achievement

No comments:

Post a Comment