Alien Invasion is entirely written in C#, using DirectX 10 with SlimDX and a self-made rendering engine, asynchronous resource management, the FMOD audio engine and utilizes a component-based game architecture. We even have a little Lisp interpreter for our resource files! (yes, we are totally aware that this is absolute overkill for a small game like that. But this wasn’t about the game, it was about the learning experience and trying stuff we wanted to do. 😁)
In order to run Alien Invasion, you need the following system requirements:
- .NET Framework 4.6
- SlimDX End User Runtime for .NET 4.0
Starting in summer 2010 (wow, was it really that long ago?) a couple of friends and me started developing a small game just for fun. We wanted to do it from scratch as a learning opportunity and to have complete freedom. Because it is recommended to start very small we chose to create a Space Invaders clone. You can never go wrong with the classics, can you? 😊 Since we did this in our free time casually aside from studying or working it took a little bit longer than it would usually take. The most parts were finished during the course of 2011, including the first graphical assets. In the following years, there were some pauses and times of slow progress alternated by times of high productivity.
Basically, the game was finished by the end of 2011. But as the rule of 80-20 (also called the Pareto principle) suggests, 80% of the time is consumed by the last 20% of the project. So during 2012 until the time of writing this (2015), most of the team was busy with life, but we still kept at it, polishing and refining the game until we were satisfied. Only a few graphical assets are missing (like proper laser graphics when shooting, a sprite for the mystery ship and a nice looking in-game HUD), but we decided its time to finish this one and move on to other projects.
The source code can also be found on GitHub including the full commit history. Have fun with it!
Credit for the amazing concept art goes to Isolde Scheurer for the alien designs and Daniel Friedenberger for the player ship.
My contribution to the project was mainly the following:
- implementation of an Entity Component System
- implementation of the gameplay logic in the form of component-based behaviours
- implementation of a swapping Event Manager
- integration of the FMOD audio engine
- implementation of the Windows Forms UI
I would like to express my sincerest gratitude to all people who contributed to this project. These are, in no particular order:
My special thanks goes to Hansheinz Müller Philipps Sohn for providing the server infrastructure.