Boo.io - BramJam 2 Submission!
(Skip to "How To Play" if you want)
The theme was Multiplayer Halloween, a pretty vague theme for a game jam, but it gave a lot of room to work with. I had lots of prior web programming experience, so I decided to make an .io style web game.
I spent a total of about 7 hours on this (yes I have no life) but it was a great stress reliever, and I strongly suggest you to participate in future game jams if you aren't planning to do so already!
|Day||Minutes||What I Did|
|Oct. 21||45||Basic webserver setup|
|Oct. 22||90||Menu screen + movement|
|Oct. 24||90||Leaderboard + Gum Projectiles|
|Oct. 26||30||Death screen|
|Oct. 28||45||Respawning + Polishing|
You are a ghost who has quite a sweet tooth. Gobble up candy and kill other ghosts using gum pellets to rack up points!
NOTE: Yes this is MULTIPLAYER! You will need to play with your friends or when other people are online
- WASD to move around
- Mouse to aim and shoot
- Space to go invisible
The objective is to earn points and climb to the top of the leaderboard.
- You can earn points through collecting candy which spawn throughout the map, or by killing other players.
- Every candy you collect increases your ammo by one. Your ammo count is indicated through the five dots below your character, with each pink dot indicating an ammo.
- Click to shoot. When you attack, you will use all of your current ammo at once.
- Press space to go invisible. Going invisible costs all of your current ammo, and you can ONLY go invisible if you have AT LEAST three ammo! For each additional ammo you have when going invisible, you get an extra 0.67s of invisibility!
Your invisibility lasts 2.5s - 3.8s, and ends instantly if you attack while being invisible.
Your invisibility has a 10 second cooldown after use, which is shown by the cooldown bar, which appears while the cooldown is in effect.
It is perfectly normal if you experience a bit of lag, I've optimized this game to about 90% so the lag should hopefully be minimal, unless you're using a slow computer.
I created the game with a NodeJS backend, using vanilla websockets,
ws dependency for client-server communication.
mspack-lite for binary encoding/decoding for packet reduction. You can check it out here
I also used
quadtree-lib for optimized collisions. You can check it out here
- Code: Me
- Art: Me
- Music: Me (Yes I made the terrible music)
Many thanks to those who helped beta test!
Q: I am stuck/aiming is stuck
A: Try switching to another tab then coming back, it usually fixes the problem. If not, reload.
Q: Is invisibility overpowered?
Q: Why am I lagging?
A: It's inevitable that multiplayer games have lag.
Q: Can I hack the game?
A: Good luck trying!
Q: Can you add my requested ideas?
A: No this is a game jam submission, I am no longer working on the project
Q: Why does the music suck?
A: Because I suck at making music.
Q: Are you sure I can't hack the game?
A: Yes I am certain :)
Hey, want to help me make something?
Umm,Hello !!! I am here just to say that last u had gave me 23 messages which was u and ur friend talking in my post.So,I wasn't happy.Pls do chat on ur posts.Not others.Sorry if this was rude,But I wanted to give a notice.
Thank You 😀
@realTronsi I mean jittering :D
Jokes aside, the movement appears to be in tons of little steps rather than one smooth motion. The important part of this is that the steps are very inconsistent timing-wise, which leads to the "jittery" feel. The movement also seems very "jumpy" in that it often jumps forward or lags behind.
(And of course, I don't mean the movement of the player ghost since that's fixed, I mean the movement of the grid and the other players.)
Additionally, it's weird how the movement hard-starts when you push a key and hard-stops when you stop pushing a key. A ramp-up/ramp-down would be nice (so pushing a key applies an acceleration instead of a velocity basically).
@fuzzyastrocat ah. The hard starts is intended, and I could add velocity pretty easily but I like the precision of hard starts, and it lets you dodge bullets easier imo.
Yes the movement isn't the best but this was what I was able to accomplish in the span of the jam and I didn't want to spend too much time on this.