top of page

Own Game Engine

The major functionality of the engine was split into subsystems/services to limit the number of dependencies for better encapsulation. This makes it easier to maintain, update and test the game.

Implementation - Sophie Amelin

Guidance - DI Roman Divotkey

2.PNG

TECHNICAL DETAILS

A simple Asteroids game was developed to test the different features and display the functionality of the game engine.

The most important features are explained below.

SERVICE LOCATOR

It organizes and provides access to these services. Any service can request the access to another service via the service locator. It is responsible for the startup, update and shutdown of all services.

ENTITY MANAGEMENT

Another important part of the engine, which is a service, is the Entity Management. It provides component-based entities for the game. Game entities are elements within the game which (generally speaking) move and have a position within the game world.

One entity can have several components such as a physics body, a collider or a certain visualization.

DOWNLOAD CODE SAMPLES

STATES AND EVENTS

Managing states and automatically carrying out state changes is enormously helpful. State changes are triggered by events. In this game, these states represent different levels. These are triggered by events like finishing a level or dying.

GRAPHICS ABSTRACTION LAYER

Graphic engines need to be implemented for a concrete target platform and programming interface. Hence, each graphics engine needs to be used in its own way. The graphics abstraction layer allows to offer general services which provide common visualization tasks independently from the graphics engine used.

GIT REPOSITORY

Java project created with Eclipse Neon.3: 

https://github.com/sophie333/GameEngine.git

Once cloned:

- Run 'GameLauncher'

- Navigate with arrows

- Shoot with space

Do not hesitate to contact me to discuss a possible project or learn more about my work.
bottom of page