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.
Random Effects System
UI trackto inform the playerof upcoming effectsList and timer systemin the backgroundthat 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
Movement/Input System
Input managerAll input detectionDelegates for each inputeventCentralised, 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 objectsPhysics materials to improve the feelof the controlsWhile standing still, add more friction to avoid slidingWhile moving, add less friction to avoid sticking to walls and getting stuck on bumps
Summary:
The inputin this project
is centralizedin 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 positionwhich 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.