Genre : Serious Game
Language : C++, OpenGL
Our so far biggest project is FireSpark, a searious game about network security. We used the name not only for the game, but also for the engine we wrote for it. In the end it stuck with us as a team name.
FireSpark is a serious game created to impart an understanding of computer networks and network security to the user.
To achieve this, the user slips into the role of a hacker. As part of an underground hacking organisation he tries to bankrupt a group of evil companies. On the way to his goal he uses several basic hacking techniques like DDOS attacks, SQL injections and packet sniffing.
A database node.
But the player not only learns about network security, but also experiences an exciting story and can wrap his mind around demanding puzzles. The creation of realistic looking terrains is an important part in the movie industry as well as in computer games and simulations. Realistic and visually appealing landscapes help the consumer to immerse themselves in the virtual world.
To implement our game concept we developed our own game engine. We used modern C++ and OpenGL. Our general architecture is an entity component system. This system follows the Composition over Inheritance principle and allows a greater flexibility during programming.
All our components are C++ classes that are derived from the common base class
Component. To determine a component's type, we use the C++ RTTI (Runtime Type Information), this allows to easily add new types of components, by creating a class, that inherits from
Component or any existing component.
We also implemented our own way of referencing objects in the engine, for this (almost) every class is derived from the base class
DestroyableObject. Instead of normal pointers, we use the template reference class
R. So for example
R<Transform> references an object of the class
You can download the current version of the game here. Just decompress the .zip file and run FireSpark.exe. If you find any bugs, contact us with the firespark.log file. All required libraries should be part of the .zip file.