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:

  1. Double Jump

  2. Dashing

  3. Changing height and width

  4. 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:

  1. Multiple types of bosses

  2. A basic walking enemy

  3. Moving Platforms.

  4. Momentum based movement

  5. 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:

  1. A story mode where players progress through 14 levels evading bosses and gaining their powers. (The abilities mentioned above)

  2. 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).

 
 
Previous
Previous

Vestaboard Project