Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines
A jam submission

ballsView game page

Submitted by mehimme — 3 minutes, 52 seconds before the deadline
Add to collection

Play game

balls's itch.io page

Results

CriteriaRankScore*Raw Score
Presentation - how does it look/feel?#162.5002.500
Creativity - how original is the idea?#172.6672.667
Overall#172.4442.444
Entertainment - how enjoyable is it?#212.1672.167

Ranked from 18 ratings. Score is adjusted from raw score by the median number of ratings per game in the jam.

Leave a comment

Log in with itch.io to leave a comment.

Comments

HostSubmitted(+1)

Thanks for making something with Hoot!

Submitted(+1)

Ran fine in Chromium, like all Hoot things it errors in Safari. But after spamming balls (“balls!”) for a while, it lags, then locks up. There’s physics going on, but you need to cheat a bit or put guards in to stop it from breaking the game.

Submitted(+1)

Like the glowy skeleton look. Physics performed well. Small suggestion, a "tink" sound effect when the balls collide would be nice.

Developer

Thanks! I guess I ended up with the look of that water ring toss game where you mash a button to get a bunch of submerged rings to land on pegs. I do have bigger plans for this game, sound would be a nice addition.

Submitted(+1)

I remember those! I might even have one stuck in a cupboard somewhere... Looking forward!

Submitted(+1)

Neat creation. It’s a very fun little physics engine to play around with.

Developer(+1)

I'm glad you had fun with it! I wouldn't call it a physics engine yet lol, but now I am thinking about making the physics a reusable component for other guile hoot projects since that doesn't seem to exist yet

Submitted(+1)

Idk what constraints you decided to use when programming the physics from scratch--but they are good ones implemented well! Doing this in a single weekend is even more impressive!

No engine deals with solving perfectly, thanks to delta-time, and from what I've seen in GDC talks, the most graceful undesired behavior is objects under constant collision slowly pushing into each other... as opposed to source engine boxes going crazy, skyrims ragdolls shooting into space, or at worst, no-clipping out of bounds. The fact you're getting 0 no-clips at the framerate of my poor old computer in a web browser is amazing honestly.

Funny story, I wanted to make a pinball game. If you run our game, you can see a cartridge called "Balatzee" on the shelf in the top left. Similarly it will spawn balls that drop and only wall collisions are implemented. The frame rate issues with love.js and my own amateur coding of constraints with 0 research meant having the game function well in a week would be impossible. You got waaaaaay farther than I did in less time! Seriously awesome job!

Developer(+1)

This is my first time making anything resembling a game (unless you like playing with engineering simulations), so I appreciate it! 

I started with a pretty naive implementation where normal/tangential impulses are applied to velocity only, followed by a single position update which integrates velocity at each time step. This probably would've worked better for very small time steps, but at 60Hz it caused all sorts of no-clip issues, balls slowly sinking, balls being pushed through walls by other balls, etc. 

Apparently a solution for this is called sequential impulses, where you update velocity/position multiple times each frame to iteratively separate colliding entities, but obviously it hurt performance (I don't think it helped that I was using float64 for everything either). I ended up just adding a step right before integration where any two objects still intersecting will have their normal velocities clamped to 0 (I only did ball-wall intersections for the submission, but ball-ball also ended up working pretty well).

Your game looks so much more polished and like a game, can't believe you had time to squeeze my game into yours :P

Submitted(+1)

Thanks for the thorough explanation! I'll have to give it another go later. Maybe I can fix my broken sim and make it as cool as yours! :)

Submitted(+1)

It's a nice start, feels fluid

Developer(+1)

Thanks! I didn't realize how hard it would be to properly implement rigid body physics from scratch lol. starting with 3 days left also not a good idea