Repository navigation
Home
The project is currently made up of two main modules. The aa.android module and the aa.engine module.
The reason behind this approach is that we aim to develop a multi-platform game that can run on all main stream operating systems (eg. windows, ios, android, macOS etc.)
aa.engine is supposed to be platform independent and contain all the required logic and event handling that the game requires to function. All platform dependent code and UI features are deferred to their own specific module. Every other module correspond the an operating system and are named as aa.<<platform-name>>.
Engine is the heart of this project. It should remain platform independent and be simple yet powerful so that it satisfies the need of all platforms without increasing complexity of the project.
This module itself is made up of several sub-modules and classes that will be explored further.
This is the main class of this module. Each instance of game should initialize this class. Each instance requires an aa.elements.MainCircle to be constructed. Each instance of Engine creates its own dedicated aa.helpers.ExecutionContext, aa.job.JobManager, aa.levels.LevelManger and also a java.util.Timer
Engine is made up of three main functions.
-
play(): creates scheduled timer that runsjobsat fixed time intervals. -
stop(): stops the timer and clears the level. -
getContext(): returns current context of the engine.
Static object that stores shared state of the entire game, with their corresponding setters and getters.