top of page

Space Shift

ROLE

Independent Designer, Programmer and Animator

DESCRIPTION

This project was a Media Design School assignment, which focused on implementing a 2D game using exclusively C++ and SFML. I designed stealth platformer gameplay alongside menu UI elements from scratch. In order to guarantee my A+ grade, I implemented the following additional features:

  • More levels

  • Data-driven levels.

  • Advanced systems (Noise/Sight based detection)

Additionally, I developed a level editor, which would write a .ini file that the game could read. I decided to develop the editor in Java, even though It wouldn't be marked towards my grade, because of the available UI elements. The editor enabled me to create nine levels when only three levels were required.

I used preexisting art assets I found on the internet and followed a Youtube tutorial to animate them in order to create a SpriteSheet.

DEVELOPMENT YEARS

2020

PLATFORM

Windows PC

1200px-SFML2.svg.png
1822px-ISO_C++_Logo.svg.png
Java-Logo.png
A+.png

Level One

Level Three

AI Systems

Pathfinding

Each guard is registered to a platform when they land upon it, and switches between two predetermined points when Patroling. Once a guard enters the Alert state they generate a new point in between the predetermined points (weighting the points by distance).

Sight

Sight is determined by a rectangle vs rectangle overlap between the player and an invisible vision cone. This cone can be seen via the debug menu and is located in front of the guard. Once a guard enters the Alert state, the cone has an adjusted scale where it can overlap further.  

Hearing

All sounds are registered into a Noise Manager singleton class, which can cross-reference with all registered guards. A sound generated by the player, a guard, and toggling platforms, has a volume which decays each frame. Sounds and hearing ranges can be enabled via the debug menu.

InGame3.gif

Animation

I didn't create the base sprites for the player and guard however I used a youtube tutorial to animate them.

guard.png
player.png
bottom of page