During the course of the Axyz project, I created a very flexible entity system, along with a tightly connected in-game level editor that had let us quickly create and iterate upon ideas and easily view the state of the game world from a debugging perspective.
The ECS in Axyz is purely data-driven. Components contain pure key-value data, and systems act upon the components in a cache-coherent manner. A game entity would then be defined as a simple container, containing zero or more components and child entities, creating a hierarchy. Components are strictly defined in XML schema language, making them easily serialize and de-serialized, providing helpful reflection capabilities to the engine.
Due to the reflection capabilities of the ECS, an in-game level editor could be created with ease, where every component and its inner fields could be presented and edited in real-time by the developers, providing helpful debugging and world creation capabilities.
In this video, one of our artists demonstrates the editor’s capabilities by creating a still scene.
Axyz is a team-based multiplayer first person shooter developed over 3 months at Blekinge Institiute of Techonolgy as part of the “Large Game Project” course, by a team consisting of 7 dedicated programmers from the Master of Science in Game and Software Engineering programme, and 5 artists of the Tecnical Artist programme.
You can read more about my personal contributions to this project in my Axyz Editor article!
The source code of the project is available in full on GitHub!
An installer for the final build of the game is available here.
A group exercise in agile methodologies, where a classic “Breakout” game was implemented from start to finish against a simulated customer, working iteratively against deadlines and requirements according to Scrum methodology.
I ensured that cross-platform demands were met for Windows and Linux compability, working to keep parity between a DirectX and a OpenGL renderer, while utilizing the Jenkins Continuous Integration System together with unit testing to verify cross-platform compability across the entire codebase.
The source code is available in full on GitHub!
The final build of the game is available here.