Deity: Become One
A physics platformer, inspired by the film ExMachina
-
Date: 23/02/2019
Languages: C++
Keywords: Platformer, physics, level-editor, ASGE
Overview
This game is inspired by the themes of playing god and manipulation shown within the film Ex Machina. In the game, you play as a square in a synthwave world completing platforming puzzles by changing the properties of yourself and the environment like you are a god. These include:
Double Jump
Dashing
Changing height and width
Changing the direction of gravity in the world
The game was built inside of the Awsome Sauce Game Engine (ASGE); a C++, OpenGL framework written by our course leader. It provided a simple rendering engine that allowed sprites to be loaded in and rendered as well as a primitive text renderer.
My Contribution
My contribution to this game was building the physics engine. This physics engine built from scratch included the usual features such as gravity and collisions. However, it also included a momentum-based movement system which allowed for a surface’s friction level to affect the player’s movement. This allowed us to create slippery ice-like platforms which are fairly common in the platforming genre.
Instead of using an inheritance-based system, the whole game including the physics engine was built of a component-based system. This entailed having an abstract component class that all components were inherited from. These components could then attach to a generic game object class using polymorphism. This included a physics object component which when attached would cause the game object to obey the laws of the physics engine such as the player game object.
Features
Due to the component-based system the game was built upon it gave way for multiple features to be implemented. These include:
Multiple types of bosses
A basic walking enemy
Moving Platforms.
Momentum based movement
Icy/Slippery Platforms
Gamemodes
The other core aspect of this game was the level editor. This level editor allowed for the creation and customisation of levels as well as the enemies and hazards within the level. This gave way to two different game modes:
A story mode where players progress through 14 levels evading bosses and gaining their powers. (The abilities mentioned above)
A custom level builder and player. Players could create their own puzzles and then proceed to play them. This also came in useful for creating the story levels.
Videos
As part of the project two videos were created: gameplay footage (left) and a game trailer (right).