Echelon Game Engine

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.

Echelon Engine

Echelon Engine

Echelon Engine

menu

editor

Echelon Engine

collision2

springs

Echelon Engine