Ameen AltajerAI & Search Engineering

Precious Engine/04 of 9

Engine Features

Eight deliberately simple subsystems, scoped to what Precious Drop actually needed.

Engine features of Precious Engine are simple and easy. I didn't want to implement fancy stuff that is hard to understand, and would be unnecessary in a basic game engine. So I wrote these engine features according to my needs, and to the requirements of my game Precious Drop.

  • Simple CPU rendering system with the ability to render in debug mode so you can outline objects for debugging the collision collider.
  • Simple physics system like gravity, speed and acceleration to give the game some sense of realistic motion, along with collision handling and colliders to be able to send collision events to objects in the game.
  • Really basic animation system to display frame-based animation in a decent way.
  • Event handling framework that would allow the user to manipulate various events initiated by mobile phones.
  • Sound manager to be able to manipulate sounds, like playing, pausing and stopping sounds.
  • Scene management to be able to switch between scenes in the game.
  • Basic GUI tools like buttons with the very basic events: Button Down, Button Up, Button Hold. You have text objects that you can use to render text on screen.
  • Timers, so you can implement various functionalities using time.

At the time of writing, scene management had not been completed and was not functioning correctly. OpenGL was not supported yet either - all rendering was done on the CPU, which is kind of slow but works fine with simple games.

As you can see, these were my goals in the very beginning. Very simple, but kind of challenging to implement, especially as Android uses Java as a primary programming language. I know that there is another way to program for Android, through the Java Native Interface. However, for the time being I wanted to exclude all the difficulties and build it with the simple tools in hand. So I left a huge room for improvement in the future.