Home
Team: 1 programmer, 1 assisting developer.
Project period: 2020, Weekend GameJam.
My role: Gameplay Programmer
My contribution:
  • All of the code
  • Some assistance with Unity related stuff for my friend (assisting developer)

The Game
This game was a Game Jam project made for the GMTK Game Jam 2020. I made this together with a friend of mine who wanted to get into game development. I ended up making all the code besides a couple of the effects that get applied onto the player.
The theme of this game jam was "Out of control". The way we implemented this theme is by applying random effects to the player.

Click Here to go to the games page

Random Effects System
  • UI track to inform the player of upcoming effects
  • List and timer system in the background that queue's and triggers the effects
Summary:
The main gimmick of the game is the effects system. It picks random effect from a list and puts them on a track at the top of the screen. When it reaches the end of the tract the effect will be applied on the player. It is also possible for a double effect to trigger, visualized by a second elements following closely behind the first. The UI elements are purely visual, in the background a timer / coroutine is used to trigger the actual effect.

Random effects in action, starting with a double effect being applied and another one being queued up Gif missing

Movement/Input System
  • Input manager
    • All input detection
    • Delegates for each input event
    • Centralised, making debugging easier
    • (While it is a game jam, which is normally less complex, I wanted to try out a system like this so took the opportunity)
  • Player controller / movement system
    • Improvement from previous attempts (verry little experience at the time)
    • Physics based movement to avoid issues like phasing through objects
    • Physics materials to improve the feelof the controls
      • While standing still, add more friction to avoid sliding
      • While moving, add less friction to avoid sticking to walls and getting stuck on bumps
Summary:
The input in this project is centralized in a single InputManager class. The benefit of a centralised system like this is to make input related bugs easier to find and solve.

This was also one of the first player movement systems I made, Previous attempt had several issues with physics and smooth movement which I intended to address in this one. To make the player move I modify the players velocity instead of position which I had done in previous projects. This was to make sure movement takes better account of the physics of the game and avoid things like phasing through walls. I also switch out the physics material on the player to a material with less friction. This makes sure that they won't get stuck on small bumps or stick to walls. When the player stands still this material switches back to one with more friction. By doing this the player won't slide off slanted surfaces or slide as if the floor is ice.

Click Here to go to the Github