This video Is. Not. Good. due to various last minute issues with recording softwares.

There is a functional demo available at (or when DNS propogates)

Awful demo shot on phone: Play testing video beforehand:


HackCambridge went really badly and we just wanted to redeem ourselves. So yeah, we went full try-hard mode. We even have a whiteboard covered in post-it notes!!

What it does

Platform Panic is a web-based multiplayer platform game. There are various objectives within the game, including collecting the most points (with items throughout the levels) and getting through the level to the end gate first. The game is split up into individual levels that are loaded in with configurable text files, and is entirely modular - a new map can be built quickly, without any fuss.

We created a load of interactive objects that we could slot into the levels, such as hidden doors triggered by a button, fire spitting machines and spikes! Lots of spikes. So. Many. Spikes.

How we built it

We had a node.js backend serving a plain Javascript/HTML/css frontend with jQuery. We used a library called 'matter.js' for our physics engine, which was really good. The server acted as both a matchmaking server and the go-between for clients in a game together. We used websockets to connect to the client computers in real-time.

We've hosted the project on Google Cloud Compute, and it seems to be running nicely! The domain ( hasn't propogated yet, but it should do soon.

The project lent itself to a very modular design approach. Sam worked mostly on the node.js server and the matchmaking system. Lauren primarily led the effort on programming the animations of the various sprites into the game. Alfie focused on the physics engine. Joe wrote a lot of the data model for the maps and their reading in.

Challenges we ran into

aaaaAAAAAAAAAAAAAAAAAAAAAA Matter.JS is a really good physics library but it has... it's own issues. We like it, really we do. But when we spend three hours writing a really neat optimisation of our tilemap and it just decides it can't be bothered to round numbers properly? Not a great time.

Git was surprisingly less of an issue compared to the past, but we still had our fair share of vaguely terrifying merges.

Accomplishments that we're proud of

Really happy with the way our team worked together on this - we had an idea and we followed through on it, and we've come out of it with a decent finished product that actually works!

The game is fully functional and hosted on Google Cloud: (or when DNS propogates)

What we learned

Learnt a lot about physics engines, game loops and animation timings. Mixing synchronous and asynchronous code is not a great idea. Feel a lot more comfortable around web apps. Javascript classes s u c k

What's next for Platform Panic

  • More levels
  • More interactive objects
  • Level designer
  • Long-term scoreboard

Built With

Share this project: