Posts tagged Component-based Architecture
Starting in summer 2010 (uh, 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 to have total freedom and to learn something in the process. To keep things simple, we chose to create a Space Invaders clone. We did this in our free time casually aside from studying or working, so 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 higher 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 now, 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 move on to other projects and finish this one.
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 as I already said before this wasn’t about the game, it was about the experience and trying stuff we wanted to do 🙂 )
So, without further ado, here’s the game:
Alien Invasion by Starforge Games is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.
To build and run the source code, you need Visual Studio 2015. Additionally, you have to copy the “data” folder from the game into the “AlienInvasion” project folder.
As of 11.06.2016, the project can also be found on GitHub at the following location: https://github.com/StarforgeGames/alien-invasion
Have fun with it. 🙂
In order to run Alien Invasion, you need the .NET Framework 4.6. Additionally, you may need to install the SlimDX End User Runtime for .NET 4.0, available on the official SlimDX website in the download section.
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.