Share your repls and programming experiences

← Back to all posts
Boo.io - BramJam 2 Submission!
h
realTronsi

Boo.io - BramJam 2 Submission!

Overview

(Skip to "How To Play" if you want)

With midterms going around and stress from school, I decided to take a break and participate in a jam organized by @bramley

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!

DayMinutesWhat I Did
Oct. 2145Basic webserver setup
Oct. 2290Menu screen + movement
Oct. 2330Candies
Oct. 2490Leaderboard + Gum Projectiles
Oct. 2545Killing
Oct. 2630Death screen
Oct. 2745Invisibility
Oct. 2845Respawning + Polishing

How to Play

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

Controls

  • WASD to move around
  • Mouse to aim and shoot
  • Space to go invisible

Objective

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.

What I Use

I created the game with a NodeJS backend, using vanilla websockets, ws dependency for client-server communication.

HTML CSS JS frontend, pure vanilla javascript with no frameworks. I use 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

Credits

Many thanks to those who helped beta test!

FAQ

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?
A: Yes.

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 :)

If you notice any bugs, please report them to me as well as including details such as what you did when it happened and when it happened!

@piemadd @rediar @adcharity @sixbeeps

Voters
erger561
DigiLab
programmeruser
seanlnge
bgrubert
MarioMiralles
tankerguy1917
ComputingSquid
WilliamLindenbe
TimothyChen
Comments
hotnewtop
RayhanADev

One word, one emoji:

L I T 👻

realTronsi
realTronsi

@RayhanADev can't wait to see your game!

RayhanADev

@realTronsi ha we’re pretty close too. Maybe early morning tomorrow or late night tonight (I need to stock up on coffee again after this xD)

realTronsi

@RayhanADev I noticed you had two mouse pointer icons for local gamemode, how does that work? Two mouse at the same time o_0

RayhanADev

@realTronsi hmhmmhmh
p e r h a p s W A S D a n d A R R O W S

realTronsi

@RayhanADev too bad I have no frens :(

RayhanADev

@realTronsi lol wanna be frens xD.

realTronsi

@RayhanADev well it's local gamemode so we can't play unless you're the dude hiding in my attic

RayhanADev
realTronsi

@RayhanADev jesus christ like 5 random ppl (excluding us) online wow!

RayhanADev

@realTronsi lol that furries unite thing was hilarious xD.

realTronsi

@RayhanADev lol did you have fun. I was "dd" and "Player"

realTronsi

@RayhanADev idk who that Larry guy was but he was extremely pro, literally ambushes you outta nowhere

RayhanADev

@realTronsi hahaha omg I hate you xDxDxD gg. That was really fun, but I feel the scores are a little broken (like at one point I just respawned with .6 k).

RayhanADev

@realTronsi yeah lmao me the not gamer getting killed by everyone lol.

realTronsi

@RayhanADev well when the server restarted that's what I changed. I made it so you respawn with more points and also earn more points by killing. It's better because beforehand everyone was respawning sub 100 and it wasn't that fun

realTronsi

@RayhanADev you were the first to ever reach 1K tho lol

RayhanADev
RayhanADev

@realTronsi really? dang well, I feel honored (should have screenshoted xD). Also I was bored today, made a threeJS globe that was really bad xD.

realTronsi

@RayhanADev I already have hacker and I don't exactly need it, so if I win anything should I organize a Boo.io tourney, and highest score wins hacker? (If i win something that is)

RayhanADev

@realTronsi dude, hands down you’ll win. I say it’s up to you, if you can find a way to make the game slower-paced (the longest I lived was like 2mins), then yeah that would be a dope tournament.

realTronsi

@RayhanADev well it IS supposed to be fast paced, maybe if I made the map bigger by a bit

fuzzyastrocat

@realTronsi ...or added some kind of obstacles/maze-y thing :)

RayhanADev

@fuzzyastrocat nice idea!

fuzzyastrocat

@RayhanADev Thanks!

realTronsi

@fuzzyastrocat @RayhanADev too late now :P

RayhanADev

@realTronsi lmao right Jam submission xD.

Bookie0

Wow pretty cool!

realTronsi

@Bookie0 danke, yours too

Bookie0
[deleted]

Hey, want to help me make something?

realTronsi

@HeadSucksAtLife what is it

[deleted]

Im making a language with coder100 @realTronsi

realTronsi

@HeadSucksAtLife @Coder100 could you explain more about it?

[deleted]

Its a language made in javascript @realTronsi

Coder100

about what @realTronsi

realTronsi

@HeadSucksAtLife well yes but explain more, for example what its purpose it, syntax, interpreted or compiled, etc

realTronsi

@Coder100 he wants to invite me to a language you two are making, I just want to know about it first before accepting or declining

[deleted]

Well, I don't really want to share about it on a public basis so can I just invite you to the team and you can check out the code?
@realTronsi

realTronsi
realTronsi

@HeadSucksAtLife no one is online lo

[deleted]

@coder100 join team repl
@realTronsi

JasonLiu19

No one is on all the time :(

realTronsi

@JasonLiu19 oh there were 8 people online this afternoon, bad timing ig :(

JasonLiu19

@realTronsi i was Larry :)

realTronsi

@JasonLiu19 oh hi then :) you basically ambushed the whole lobby

SixBeeps

I ended up finding a vulnerability >:)

realTronsi

@SixBeeps what is it?

SixBeeps

@realTronsi I'll just leave this here

realTronsi

@SixBeeps how did I forget to patch that. I patched it just now, simple fix

realTronsi

@SixBeeps good catch though

realTronsi

@SixBeeps there shouldn't be any more vulnerabilities now o_0

SixBeeps

@realTronsi I couldn't find anything else. Good game btw.

realTronsi

@SixBeeps alright thanks!

CoolGuy27

@realTronsi awesome!

realTronsi

@CoolGuy27 thanks!

ComputingSquid

this is awesome!

realTronsi
ComputingSquid

yeah how did you make this
(i can't even manage a clicker game with local storage)
@realTronsi

realTronsi

@ComputingSquid nodejs backend using vanilla websockets.

ComputingSquid

um ok. @realTronsi

CodeSalvageON

That was really cool!

realTronsi

@CodeSalvageON thanks! yours too

haha0201

EXCELLENT GAME!
10/10

realTronsi

@haha0201 yey :D

haha0201

also for overlap regions, just do a strokeArc instead, set lineWidth to the current size of the arc then do an stroked arc half the current size, and only go from 0 to Math.PI so like a semicircle
@realTronsi

realTronsi

@haha0201 jesus how did I forget about that, fixed!! ty <3

haha0201

np lol @realTronsi

erger561

Wow this game is amazing!!! Pls make another .io game soon!

haha0201

u afk?

haha0201

tronsi are you afk?

[deleted]

ez. just have an autoclicker and just move around

realTronsi
SachetTheCoder

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

@SachetTheCoder oh sorry np, we just like to talk and I didn't realize it was your post

SachetTheCoder

@realTronsi I know even when I was on Scratch I ended up taking on someone elses post/profile.lol

ComputingSquid

this game is awesome
did it get unlisted or something?
because i can't see it...

realTronsi

@ComputingSquid can you not see the post or the game? I don't believe that this was unlisted, it probably just fell from trending

ComputingSquid

oh ok. @realTronsi

ComputingSquid

whos online
no u elaphant you keep trolling me

realTronsi

@ComputingSquid lol I'm not online

realTronsi

@ComputingSquid it's probably someone else

ComputingSquid

who are you
elaphant?
i was squid
and who was the cookie? @realTronsi

ComputingSquid
realTronsi

@ComputingSquid lol I have no clue, I'm in class atm so I'm not playing the game

ComputingSquid

lol.
i have class but i'm not in it now. @realTronsi

WilliamLindenbe

GG

ShivankChhaya

I have a project to do in school, and I used the EXACT same picture at the top! Also really fun!

realTronsi

@ShivankChhaya cool lol, all graphics were made by me btw

ShivankChhaya
Kookiez

cool!

TheOceanFace

wow cool

realTronsi
DarkswordsmanJG

I have a question:
Is it ok to open many taps and have an army?

realTronsi

@DarkswordsmanJG no not really lol, but if no one else is online then sure. I mean no one is stopping you but try not to abuse it. It was out of my time frame to implement systems to avoid multiple tabs (ip tracking + bunch of other complex stuff)

LoganSpong

M O I S T 👻

LoganSpong

@LoganSpong no copyright on comments, Am I right? lol

realTronsi
fuzzyastrocat

Nice, however it's really jittery for me. Did you use any interpolation?

realTronsi

@fuzzyastrocat no interpolation for this one
1. due to the lack of time and
2. I'm lazy

It's strange that you're jittery though, for everyone who has beta tested they said they game was pretty smooth. Could you explain what you mean by jittering?

fuzzyastrocat

@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).

realTronsi

@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.

fuzzyastrocat

@realTronsi Hmm ok, I see your reasoning there. Maybe just a tiny ramp-up, but it's a matter of preference.

Yeah, makes sense.

realTronsi

@fuzzyastrocat I mean I guess it's reasonable for 7 hours imo

fuzzyastrocat

@realTronsi Probably ye

angrydoge

M O I S T 👻

realTronsi