Room-Bot Rumble was my first foray into scripting my own game from scratch. As such, the focus of this was scripting and game feel, and not on art. I wanted to make a game that was easy to pick up, simple to play, achievable, and most of all, fun!
I was inspired – after watching videos of cats on top of Roombas – to make a party game about robots on top of Roombas, punching each other. My goal was to make the game with intentionally clumsy, weird movement controls. I knew that this would be a delicate balancing game: if it was too hard to control, people would be frustrated, rather than have fun.
My initial idea was to make a 2v2 party game, where one player controls the Roomba and the other controls the robot on top, punching. This idea didn’t last long; the fact that you needed a minimum of 4 players felt too limiting, however, I did like the general control scheme, so I adjusted it so each robot was controlled by a single player.
Before moving into engine, I started with paper prototyping. I knew I wanted to have the punches knock back other players, and for it be a king-of-the-hill style party game, so I started with a paper prototype, simulating the gameplay by having players reveal their actions simultaneously.
Mock up of the paper prototype
I also tested using my classmates and roller chairs, pushing each other around and pretending to throw punches at each other. As ridiculous as it sounds, it helped me process ideas and come up with a control scheme that I was happy with.
Players are constantly moving forward. Players can aim and throw out punches with their left and right hands, but in order to wind up a punch, they must also rotate in that direction.
My initial prototype looked like this:
Testers found the punching to be very fun and satisfying: it felt great to punch your friends around. However, beyond that there wasn’t much to it yet: feedback I received indicated that the level was too plain and boring, and at this stage I hadn’t implemented an objective yet. Most players also felt the camera was too far away, which made it hard to see where you were and control yourself.
After 3 weeks of iteration, the game looked like this:
Based on feedback, I improved the level design, added more player feedback – glowing lights to indicate a punch is ready, and a pointer showing which way you were facing, added a score UI – and continuously tweaked the player controller variables.
- Physical prototyping is important: takes a lot less effort than coding, and is quicker to iterate on, try out new things and throw away ideas
- Getting feedback is important. It’s never too early to get feedback; you might discover something you never even thought about
- I need to plan out my scripts better. I ended up with a convoluted web of scripts, and far too many separate scripts that could’ve been combined into one
- Punching your friends is fun!