Echelon Game Engine
Project type: Game engine
Made: January 2016
My fields: Programming, software architecture design
Time spent on this project: 1 semester
Tools used: Eclipse, LibGDX, UMLet
DOWNLOAD:
Echelon Game Engine
About this project:
Component-based game engine written in Java.
During the course “Game Architecture”, I developed a small 2D game engine from scratch in Java using the LibGDX framework. The goal was to learn about how to structure and organize an engine according to the entity-component-system paradigm. Instead of using inheritance and base classes, the idea is that you can create specific types of entities by adding components/modules to customize their behaviour and functionality. Specialized systems then take care of updating each of the separate components.
Echelon Engine supports the following features:
- Adding and removing components to extend the functionality of an entity
- Individual systems to update specific component types
- Editor functionality: single- and multi-selection; move/rotate/scale
- Collision detection: using either brute-force method or the sweep and prune algorithm
- Simple physics system that can use forces, such as springs
- Persistence: store and restore the state of entities by encapsulating them as commands
- Debug mode that can be toggled on/off to show additional information about the entities
- Spritesheet animations
Source code is available on GitHub.