return to table of content

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

Laremere
6 replies
1d4h

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.

jagged-chisel
2 replies
23h58m

Third death being a reset to the beginning is indeed a harsh punishment.

krisoft
0 replies
20h41m

Yeah, that is where i said to myself “f-this, you are not paying me enough to put up with this” and closed the “game”

SlightlyLeftPad
0 replies
15h49m

I was expecting to have three balls but the UI makes me feel like I should 4.

s3krit
0 replies
1d1h

For the last level, you can get onto the moving platform on the first cycle if you're quick

lwansbrough
0 replies
21h5m

+1, tilt should be dampened towards the natural orientation the phone was in during initialization

hombre_fatal
0 replies
19h31m

I think setting a different “up” point ruins the metaphor and you’re trying mentally map tilting into arrow key inputs.

I’d recommend instead forgetting that your phone has an up. Hold it in landscape and rotate it as needed to get the angle you want before tilting.

shawabawa3
5 replies
1d6h

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

risenshinetech
3 replies
1d2h

So to clarify:

With infinite lives, it would have guaranteed you made it to the end, at which point you would stop playing anyway.

So in both cases you stop playing, but at least in one of the cases the game remains hard for people who like a challenge. Win win!

latexr
0 replies
1d

A win win would be if both types of people were happy, but the status quo frustrates one of them. It’s only a win if you stop playing because you’re satisfied, not because you’re annoyed. Games are supposed to be fun.

Plenty of games have a “zen mode” or “story mode” or “explorer mode” or any other kind of name to enable an option where’re you’re not severely punished by mistakes. Better yet, they usually allow you to switch modes mid-game. Which means you can progress at your own pace and appreciate everything without getting stuck and rage quitting.

Anecdotally, even if I never turn those modes on I find that the games who have them tend to be more fun and better designed in terms of difficulty progression. Examples include Celeste and Cross Code.

For this game, such a mode would even allow someone to see all the levels or practice in one where they’re stuck and then try again with lives turned on. That would be a win win.

jncfhnb
0 replies
1d

Modern game design would suggest it’s better to simply put a death tracker for those who want a challenge rather than impose tedium on those who just want to play the game casually

“Stop playing” is not a meaningful metric

VS1999
0 replies
17h5m

This is some insane logic. The goal of the game isn't just to get the player to stop playing. Obviously two players haven't reached the same point just because one quit because he doesn't want to replay the starting levels again. This is known as "artificial difficulty".

bogtog
0 replies
1d5h

The fear of needing to start all over adds a lot of suspense, which is cool

Waterluvian
5 replies
1d7h

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.

andrelaszlo
2 replies
1d6h

My neutral position is tilting away from me, even. Not ideal but fun game either way. Reminds me of Oxyd: https://en.m.wikipedia.org/wiki/Oxyd (I've only played the nineties mac version)

Waterluvian
1 replies
1d5h

Oxyd was core to my childhood gaming as a Mac-only household. Theres a free version called Enigma that has the Oxyd levels by the way!

spuz
1 replies
1d5h

I feel like that would make intuitively finding the zero point hard. At least with the zero point being horizontal, all you need to do is look at the world around you and see which way things fall.

Waterluvian
0 replies
1d5h

You can always have a “bubble level” showing you the orientation. Anything is better than requiring a player to orient themselves very specifically to play at all.

yashg
4 replies
1d4h

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.

amadeuspagel
3 replies
1d2h

I felt the same way at first, but it's ten levels, so you'd be done in one session if you could redo every level infinitely. This extends the fun a bit.

stavros
0 replies
14h30m

I think it very much extends the non-fun bits of the thing.

rjmunro
0 replies
23h15m

After 10 levels, it could be the same levels again, but with a time limit that gets shorter for each cycle, or something else to make it harder, like wind that blows the ball off course and changes direction all the time.

jncfhnb
0 replies
1d1h

It’s ok to be done in one session

Replaying a level is boring

maremmano
4 replies
1d7h

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

bitdivision
2 replies
1d7h

It's accelerometer based, though arrow keys do seem to work for me on Chrome / Linux

paranoidxprod
1 replies
1d6h

Arrow keys also seem to work on Firefox 126 Beta / Linux for me

dotancohen
0 replies
1d6h

Yeah, the arrow keys also work on IE4 in Win98. No accelerometer though.

ttrrooppeerr
0 replies
1d6h

Worked for me using A/S/D/F

dmos62
4 replies
1d4h

Doesn't work in Firefox for Android.

k1t
1 replies
1d3h

You may (like me) have been trying to interact by tapping/dragging/etc.

You need to physically tilt your device to play.

dmos62
0 replies
11h21m

No, tried to tilt, no effect. I didn't get any permission prompts either.

toss1
0 replies
1d4h

Also doesn't seem to work on FF for Windows. Can click thru initial [Start] screen, but no clicks are effective on the initial game screen showing the layout and [start] (at least none that I could find).

nebulous1
0 replies
1d

It worked FF/Android for me, but it froze for a second every so often.

sen
3 replies
1d5h

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

sunday_serif
1 replies
1d4h

For me, this took me back to Marble Blast Gold. An early 2000s game with essentially the same concept.

Great fun :-)

codingdave
0 replies
1d4h

Marble Madness vibes.

Those are the exact words I head in my head while playing as well. I'd love to see a remake on modern devices.

luplex
3 replies
1d6h

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

Kind of fun

hanniabu
1 replies
1d5h

I'm on chrome on android and it's not working for me.

I see 3 dots on the left, a 1 on the right, but nothing seems to happen when clicking/swiping

TulliusCicero
0 replies
20h17m

You have to tilt your phone.

logrot
0 replies
1d6h

And Firefox

tromp
2 replies
1d6h

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?

risenshinetech
0 replies
1d2h

This is what we like to call a "skill issue".

otteromkram
0 replies
1d6h

Get better, then you won't have to redo any of them ;-)

nasso_dev
2 replies
1d

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

thsksbd
0 replies
21h57m

Awesome. Thanks. I made it to level 10 like that

Liftyee
0 replies
20h26m

Can confirm. "Finished" all 10 levels in a minute on my first try of this strategy. Maybe the end detection area is too high...

kosolam
2 replies
1d6h

Nice. How did you build it?

skilled
1 replies
1d6h

Looks to be React with Three.js. No GitHub repo but source can be seen using dev tools.

andai
0 replies
1d6h

Three.js games run fine on my old phone. Even with physics! Buttery smooth.

React games however (even 2D ones) are a slideshow.

cuechan
2 replies
1d6h

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

bee_rider
0 replies
1d4h

I wonder what could be done with a Super Mario Maker style community of people who make obscenely difficult maps. I guess maps where you have to hover the ball by rapidly flipping the phone would be just the start.

2dvisio
0 replies
22h51m

Came here to say the same. Also one can combine that with extreme tilts to accelerate massively and win easily

wanttosheeddp
1 replies
1d6h

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!

recursive
0 replies
1d1h

Arrow keys! Thank you! I could not figure out how to do anything.

sufficer
1 replies
1d2h

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

dfc
0 replies
1d2h

Works like a charm on my Pixel 7.

logrot
1 replies
1d6h

I like it!

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

developer1000
0 replies
1d1h

very good idea

SamBam
1 replies
1d5h

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.

ppezaris
0 replies
18h11m

Tempest had the best implementation of this. Every 3-4 levels was a checkpoint and with 3 lives as long as you cleared at least one level, you can start at your last checkpoint. If you died 3 times without completing the level, you have to start at the checkpoint below.

M4v3R
1 replies
1d6h

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

yzzyx
0 replies
20h51m

This is awesome! Makes me wanna play Monkey Ball!

xyst
0 replies
1d

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

udev4096
0 replies
1d6h

Finished all levels without falling at once. Great game!

swagmaster8008
0 replies
1d4h

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.

stpedgwdgfhgdd
0 replies
1d3h

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

spxneo
0 replies
19h14m

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

speg
0 replies
1d4h

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

pyryt
0 replies
19h40m

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.

oxcabe
0 replies
1d6h

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.

mopierotti
0 replies
1d3h

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

meowster
0 replies
8h27m

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

Looks good!

matthewhartmans
0 replies
21h19m

Absolutely love this! Well done OP!

lovegrenoble
0 replies
1d5h

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.

lifeisstillgood
0 replies
21h33m

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

joshstrange
0 replies
1d6h

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/

jonnycomputer
0 replies
1d3h

Nicely implemented; controls felt very intuitive on the keyboard.

holoduke
0 replies
1d3h

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.

grasseh
0 replies
1d4h

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.

ghnws
0 replies
1d3h

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

georges_gomes
0 replies
1d5h

The keyboard controls are particularly satisfying. Well done.

georges_gomes
0 replies
1d5h

A leaderboard for speed runners would be interesting :)

encypruon
0 replies
9h44m

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.

dlivingston
0 replies
1d2h

What engine / library was used to make this?

developer1000
0 replies
1d1h

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.

darepublic
0 replies
9h35m

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

brospars
0 replies
1d4h

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

brightball
0 replies
1d3h

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.

atum47
0 replies
1d

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

alabhyajindal
0 replies
11h40m

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

ReptileMan
0 replies
1d6h

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

Amazing job.

JohnSSS1978
0 replies
1d6h

Very cool game!

IshKebab
0 replies
20h53m

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.

Aromasin
0 replies
1d4h

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