Show HN: Balancing game for the mobile browser with increasing difficulty

nargaw | 338 points

Nice work! Some thoughts:

The camera is tilted instead of looking straight down, and my phone needs to be flat to be in the no movement neutral position. This is unpleasant in to ways: How I'm sitting right now makes it hard to look at my phone while it's flat; it would be much nicer to be able to set my neutral point so I could play with the phone mostly vertically. The combination of flat phone and camera angle is awkward, as when you're looking straight down at the flat phone it looks like the level is tilted, and the ball should be rolling. If you're sticking with flat always being neutral, the corresponding camera angle should be from directly above, imo.

After trying the phone and dying, I ended up playing on the desktop with the arrow keys, much more pleasant.

Your light is coming from a direction where the magnitude is the same in x,y, and z. This means there's no difference in shading between three of the visible faces. (Or, you're using shaders which does this for some other reason.) This may be an intentional choice on your part, but I think it'd probably look better with a light angle which gives more definition to the geometry. Especially the level text suffers from this.

On the last level, is the spinning obstacle at a slightly offset pace from the first moving platform? When I first saw the level, they were very poorly timed with the obstacle sweeping past where you'd go to get on to the moving platform right as the moving platform came closest. Waiting a bit seemed to slowly improve the situation, and I eventually got tired of waiting and just went for it. Still unsure if they're actually in sync or not.

I died the third time on the last level, and called it quits when it put me back at the start. A very harsh punishment.

Laremere | 10 days ago

Awesome! Make it a daily Wordle-style game! I need something new in my morning routine.

I think having a universal 3-life max is very harsh. I died on level 9 and was sent back to level 1. No way am I going to do the first 9 again, so I won't find out what was on 10.

I think it would be more casual friendly to have infinite repeats in every level, but you could have a total count of deaths, for people who care about their score.

SamBam | 10 days ago

One of the first big games on the original iPhone after the App Store was shipped was “super Monkey Ball”, a port of a popular console franchise. It was basically this but with fancier graphics, many more levels and mechanics and cute characters. I remember being amazed how well it worked with the phone’s accelerometer and how good it looked back then. Hard to believe that was ~15 years ago already.

[0] https://supermonkeyball.fandom.com/wiki/Super_Monkey_Ball_(i...

M4v3R | 10 days ago

It is cool, but having to redo from the first level after 3 drops kills the fun for me. Of course some would like that aspect, but for me as a casual fun game it's a no.

yashg | 10 days ago

Marble Madness vibes. One of my favorite nostalgia games.

I think having 3 lives per level with it resetting just that level might be better for starters, then the 3 lives for the entire game being a “hard mode”.

sen | 10 days ago

Very cool! An issue I immediately had is that it seems to be coded for a horizontal plane being zero. This means I must hold my phone looking down at it, which isn’t how I want to hold my phone.

One idea is to sample orientation for a little bit at start, then consider the average to be zero. Then have a button that zeroes motion to whatever it currently is as a backup.

That way I can play your game without getting up from bed just yet.

Waterluvian | 11 days ago

You can get the ball off the ground if you turn your phone upside down. Then you can just sort of fly over the places where you'd normally fall. Takes maybe a minute or two to complete all the levels.

pyryt | 10 days ago

In zoom meetings, I prefer this one, based on "Knot Theory": https://brainteaser.top/knot/

Not sure I learned anything about Knot Theory from playing this, but that was fun.

lovegrenoble | 10 days ago

When you put Smartphone upside down, the ball will fall up

cuechan | 11 days ago

Idea: It would be super cool if the camera angle also shifted a bit when you tilt your phone, making the level look more like a real object. You would have to assume the relative position of the phone from the viewer, but that assumption is already being made (given that the view of the level is not from directly overhead currently).

mopierotti | 10 days ago

I lost a bunch of times on level 7 and then was sent back to level 1. Is there a way to avoid redoing completed levels?

tromp | 11 days ago

BUG: If I make it to under the finish square by accident (falling off right before the end of a level), it still counts as a win when it should count as a death.

swagmaster8008 | 10 days ago

having only 3 lives for all levels is a bad idea imo

Gave up once it started again from scratch, its not fun just re-doing all the levels to try again

shawabawa3 | 11 days ago

I'm so grateful for all the feedback and suggestions. Thank you!!!

Here is a link to the repo: https://github.com/nargaw/Balanc3d_game

Twitter: https://twitter.com/nate_dev_

If you had a great time and want to support the project: https://natedev.gumroad.com/l/balanc3d

nargaw | 10 days ago

you can speedrun by playing with the phone screen facing down. tilt it slightly and the ball will go super fast. you can sort of "fly", too, and climb up walls. i got to level 9 in like 30 secs like this

nasso_dev | 10 days ago

Didn't work on Brave on Android, but it did work on Chrome :)

Kind of fun

luplex | 11 days ago

I liked it - thank you.

Can I suggest that you put something like “hold your phone flat and face up” On the instructions / landing page

And make sure the start button can be seen in landscape mode

I gave up and it’s only because HN gave me those hints that I got tomplay at all

But - well done - you shipped ! Brilliant :-)

lifeisstillgood | 10 days ago

Doesn’t work on ipad? I can click Start, but in the next screen nothing reacts to input.

stpedgwdgfhgdd | 10 days ago

Cool game!

Level 9 made me realize there's some inner dread deep within me when it's about playing web-based games with mazes.

Especially for those where you can fall off the path.

oxcabe | 11 days ago

It doesn’t have a privation aspect but if you like games like this you might want to check out “Road to Ballhala” [0]. I haven’t completed it yet but I’ve been enjoying it quite a bit. The “dialog” is very well done.

[0] https://store.steampowered.com/app/425410/Road_to_Ballhalla/

joshstrange | 10 days ago

Finished all levels without falling at once. Great game!

udev4096 | 11 days ago

A leaderboard for speed runners would be interesting :)

georges_gomes | 10 days ago

What engine / library was used to make this?

dlivingston | 10 days ago
[deleted]
| 10 days ago

Managed to make it through by only losing a life on Level 6. The last two were very scary (and I think I got very lucky on the last one).

But I guess I played enough Super Monkey Ball as a teen to still have a lot of practice for this.

grasseh | 10 days ago

I was laying on my back. Started up the game without resetting my phone to a flat state. Then the ball fell off the map. No automatic reset like the other levels.

Maybe this is a speed run tactic that can be used later ;)

xyst | 10 days ago
nayuki | 10 days ago

I did it with arrow keys on desktop. Got lost 2 lives at level 9 and got frustrated so I hit full throttle ahead and basically bounced over all of the gaps. Then on mobile got to level 5. Cool! Thanks!

wanttosheeddp | 11 days ago

Nice. I made one where you should guide a sphere into a hole a few years ago. It was in 2D and I don't think it worked all that great. I'll see if I find it and post it here

atum47 | 10 days ago

Awesome work Nate!!!

I’ve been following your work ever since that Lightning talk on Three.js at the Carolina Code Conference. You’ve got a lot of talent and motivation, which is a killer combination.

brightball | 10 days ago

Create a webapp from it. The typical usecase for an installable version. Add service worker and a manifest.json. that way on android phones you have an icon.

holoduke | 10 days ago

Needs to have some visual feedback of the orientation. Also the ball is too heavy & slow. And as someone else said the perspective is wrong.

IshKebab | 10 days ago

The ball can pop over the sides near the start. When this happens it falls forever without triggering the next life

pbronez | 9 days ago

Very responsive; can't say the same for most browser games so well done.

I managed to complete it in one shot. The old dog still has it :)

Aromasin | 10 days ago

I'm extremely disappointed to learn that Firefox allows access to motion sensors by default and provides no option to make it ask for permission. It can only be disabled completely but this silently breaks legitimate uses like this one. This is a privacy nightmare. There is so much that can potentially be inferred from motion data, like user identity, mode of transport (maybe even location), what they're likely to be typing in the url bar or in an iframe, emotional state, a bunch of health information...

edit: Nice game, though. I wonder what it's made with. There seems to be a huge amount of generated shader code in the js. I wonder if that could be avoided.

encypruon | 10 days ago

I like it!

Unsolicited improvement suggestion: When I finish a level, let me see how well I did compared to others.

logrot | 11 days ago

Extremely well done! I didn't know you could access gyroscope from the browser.

alabhyajindal | 10 days ago

Suggesttion: Have a button where people can "zero" their phone orientation.

Looks good!

meowster | 10 days ago

Nice. How did you build it?

kosolam | 11 days ago

Doesn't work on Chrome for android. Mid range android phone though

sufficer | 10 days ago

Nice and very precise. I was expecting controls to be less reactive.

brospars | 10 days ago

Nicely implemented; controls felt very intuitive on the keyboard.

jonnycomputer | 10 days ago

Nice! I would like it more without the "lives" though.

ghnws | 10 days ago

The ball just falls off and then endlessly falls through space…

speg | 10 days ago

The keyboard controls are particularly satisfying. Well done.

georges_gomes | 10 days ago

I'm unable to go forward. I'm using arrow keys.

maremmano | 11 days ago

very nicely done with all the graphics and motion. One thing i would add is autofocus attribute on the next button so that i just have to hit enter.

developer1000 | 10 days ago

This is awesome! Makes me wanna play Monkey Ball!

yzzyx | 10 days ago

very cool, I enjoyed this. One stupid random idea -- have a tiny pet or human running in the ball.

darepublic | 10 days ago

Absolutely love this! Well done OP!

matthewhartmans | 10 days ago

got to level 8 and gave up but this was very fun could be better with changing camera angles

spxneo | 10 days ago

this has the feel of an old game called Ballance ... it was amazing and begging for level editor.

Amazing job.

ReptileMan | 11 days ago

Very cool game!

JohnSSS1978 | 11 days ago

Doesn't work in Firefox for Android.

dmos62 | 10 days ago

[dead]

jamesbond009 | 11 days ago

[dead]

wanderbuilds | 9 days ago