Oh fiddlesticks
Something's gone wrong here. Try again and see if it works, if it doesn't you're allowed to shout at me.

Bathtime Battle

Posted: June 24th, 2012

In the second year of my Computer Science course we had a module called Team Java, where four or five were teamed up and tasked with creating a LAN-multiplayer game – this was the only rule, the rest of the game was up to the team. Our entry was dubbed Bathtime Battle.

In my team of five, we began by discussing simple games we enjoyed – obviously focusing on smaller mobile/arcade games – and found ourselves discussing several 2D top-down shooters. In particular, one members suggestion of a 2D top-down Wii game interested us, since we could all see the appeal of some of it’s mechanics despite not having played it.

Anyway, we began building. A basic update loop and some game objects were together quickly, so we had some wireframes to look at at least. I was responsible for the collision detection/response – I’m reluctant to call it physics, because if reality behaved like my code we’d be in Dali clock-melting territory. Very basically, I tested collisions between circles and rectangles, and forwarded any collisions on to the objects involved so they could deal with their own response. The characters, for example, would stop moving when they hit a wall, while projectiles bounce off with the same speed, but with their directions mirrored by the collision normal. An early prototype video is below.



With most of the “game” part of the game done, we implemented a multi player system which allowed us to control players via LAN commands, and a basic menu structure. We used a simple server-client relationship, where one player created/hosted the game and the others used the computers IP or network name to join. A basic chatroom was created for this lobby so players could chat while waiting for others, and once everyone has joined the host player starts the game.

At the 11th hour (the night before our demo), having quashed most of the bugs I decided to add a new feature: A map selector. Our final demo had 4 hastily-assembled play areas, chosen by the games host.

The theme we settled on for the project – and I don’t really know why – was rubber ducks fighting each other with bubbles, and thus it was named ‘Bathtime Battle’. During the project demo, four of us played each other in one of the computer labs, and allowed others to come by and play too. Ours was one of the most popular, but we narrowly missed out on “winning” best game. A video of the final version is below.