Project Size
~100 hours, 5 people
Tools & Languages
Unity, C#, Perforce, Hack'n'Plan
Roles
Gameplay Programmer
Game Designer

Description

Bikin' Ice is a couch PVP, where you can challenge up to 3 friends to fight for the most coins. Ride around on your bike while picking up items to steal coins from other players. May the best ice cream win!

Over the course of the semester, this project was developed where each of us were expected to work ~10 hours every week. During the first few weeks, we did brainstorming and created game design and tech documents. The next few weeks were spent prototyping before eventually getting into production and polish sprints.

My Main Tasks

Bike Physics Controller

The core of the controller consists of a Rigidbody attached to a sphere collider, to which forces are applied based on the visual direction of the player. This simplifies physics dramatically, and seperates the physics from the player visuals.

To make controlling a bit easier, there are extra forces applied to slow down and avoid sliding or drifting. The drag and sideways forces are reduced during drift, making the surface feel more slippery.
bikinice physics

Local Co-Op

Using Unity's Input System, I set up multiplayer controls by binding each controller to a specific input user. This makes sure that every controller only receives input from one gamepad.

Correctly binding these controls turned out to be quite tricky as the default player input manager didn't quite cover the needed features. So instead, I wrote a system which is similar to how Unreal Engine handles multiplayer: each player has their own playercontroller which can possess a player, from there it updates the camera viewport and UI accordingly.
bikinice co-op

Player Feedback

During the last few weeks, I spent most of my time adding support for SFX, VFX and general player feedback. The sound system implemented, covers both 2D audio as well as 3D audio with linear falloff based on the nearest camera.

Additional feedback through gamepad vibration and camera shake are handled through the player controller, which keeps track of the highest priority and updates durations before applying the effect.
bikinice physics