#tubclub

One
#tubclub
One
Fun with friends
One
Splitscreen action
One
Up to 4 player
One
Prepare for disappointment!
One
Two
Three
Four
Five

Links

GitHub
Download: Itch.io

Engine

Unity 5

Project Type

Jam Game

Duration

48 Hours

Team Size

4 people

Curent status

Finished

Overview

As the largest local game jam I have participated in, at TOJam I had the opportunity to work with both a 3D artist and an audio engineer in addition to one of my programming friends from uWaterloo. The theme of the Jam was ‘prepare for disappointment’ and we built a split screen multiplayer game that puts players in control of cute rubber ducks in a bathtub that's slowly draining. Players must use the vortex current in the middle to get the jump on their opponents.

I have completed work on the following areas:

  • Floating objects
  • Game camera
  • Game feel: velocity curves, steering curves
  • Asset management
  • Input

Much of the behavior of the floating objects was written by me including placing them correctly in the water (position and angle), having them bob up and down, stunning the player when they hit one, having them get sucked towards the center, etc. This behaviour, other than stunning and getting pulled in, was shared with the player character.

The game camera was also written by me. Using the first rule from the GDC talk: “50 camera mistakes…”, I decided to avoid making a fully dynamic third person camera if I could avoid it. As such I made a limited third person camera that mapped it’s rotation angle to that of the joystick. In the end, I found this to be very sub optimal, people had challenges aiming and it felt that you were always fighting the camera since it would snap back when you released the joystick. Being a game jam, unfortunately I didn’t have the chance to change it, but it did serve as a valuable learning opportunity.

The movement was largely written by the other programmer, we had originally wanted to have a force based rotation system so that you could move closer to the center to ‘fling’ yourself and gain a burst of speed, but after much experimenting, he couldn’t settle on something that felt good, so he ended up writing a kinematic solution. I modified his solution to improve the feel of movement and the challenge of the game. This was largely done by adding curve assets which controlled the velocities and amount of control you had while steering. Similar techniques were used for the floating objects to control they rate they got sucked into the center of the tub.

I ended up spending a fair bit of the game jam working closely with the 3D artist to import, hookup and manage the 3D art inside the game. Since we were both fairly new to the process, we were slower than I had hoped but I was pleased with the result.

All input management was written by me. For the most part, we used an input wrapper I that had written for XInput originally created for Shots in the Dark. This allowed force feedback (rumble) in addition to much a much cleaner method for handling input.