56 comments

  • Laremere 10 days ago
    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 9 days ago
      Third death being a reset to the beginning is indeed a harsh punishment.
      • SlightlyLeftPad 9 days ago
        I was expecting to have three balls but the UI makes me feel like I should 4.
      • krisoft 9 days ago
        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”
    • hombre_fatal 9 days ago
      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.

    • lwansbrough 9 days ago
      +1, tilt should be dampened towards the natural orientation the phone was in during initialization
    • s3krit 9 days ago
      For the last level, you can get onto the moving platform on the first cycle if you're quick
  • SamBam 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.

    • ppezaris 9 days ago
      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.
    • xandrius 9 days ago
      [flagged]
  • M4v3R 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...

  • yashg 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.
    • amadeuspagel 10 days ago
      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.
      • jncfhnb 9 days ago
        It’s ok to be done in one session

        Replaying a level is boring

      • rjmunro 9 days ago
        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.
      • stavros 9 days ago
        I think it very much extends the non-fun bits of the thing.
  • sen 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”.

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

    • andrelaszlo 10 days ago
      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)
    • spuz 10 days ago
      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 10 days ago
        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.
  • pyryt 9 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.
  • lovegrenoble 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.

  • cuechan 10 days ago
    When you put Smartphone upside down, the ball will fall up
    • bee_rider 10 days ago
      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 9 days ago
      Came here to say the same. Also one can combine that with extreme tilts to accelerate massively and win easily
  • mopierotti 10 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).
  • tromp 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?
    • risenshinetech 9 days ago
      This is what we like to call a "skill issue".
    • otteromkram 10 days ago
      Get better, then you won't have to redo any of them ;-)
  • swagmaster8008 10 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.
  • shawabawa3 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

    • risenshinetech 9 days ago
      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!

      • jncfhnb 9 days ago
        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

      • latexr 9 days ago
        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.

      • VS1999 9 days ago
        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 10 days ago
      The fear of needing to start all over adds a lot of suspense, which is cool
    • letsSpy 9 days ago
      [dead]
  • nargaw 9 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

  • nasso_dev 9 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
    • Liftyee 9 days ago
      Can confirm. "Finished" all 10 levels in a minute on my first try of this strategy. Maybe the end detection area is too high...
    • thsksbd 9 days ago
      Awesome. Thanks. I made it to level 10 like that
  • luplex 10 days ago
    Didn't work on Brave on Android, but it did work on Chrome :)

    Kind of fun

    • hanniabu 10 days ago
      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

    • logrot 10 days ago
      And Firefox
  • lifeisstillgood 9 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 :-)

  • stpedgwdgfhgdd 10 days ago
    Doesn’t work on ipad? I can click Start, but in the next screen nothing reacts to input.
  • oxcabe 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.

  • joshstrange 10 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/

  • udev4096 10 days ago
    Finished all levels without falling at once. Great game!
  • georges_gomes 10 days ago
    A leaderboard for speed runners would be interesting :)
  • dlivingston 9 days ago
    What engine / library was used to make this?
  • grasseh 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.

  • xyst 9 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 ;)

  • nayuki 9 days ago
  • wanttosheeddp 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!
    • recursive 9 days ago
      Arrow keys! Thank you! I could not figure out how to do anything.
  • atum47 9 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
  • brightball 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.

  • holoduke 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.
  • IshKebab 9 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.
  • pbronez 8 days ago
    The ball can pop over the sides near the start. When this happens it falls forever without triggering the next life
  • Aromasin 10 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 :)

  • encypruon 9 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.

  • logrot 10 days ago
    I like it!

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

  • alabhyajindal 9 days ago
    Extremely well done! I didn't know you could access gyroscope from the browser.
  • meowster 9 days ago
    Suggesttion: Have a button where people can "zero" their phone orientation.

    Looks good!

  • kosolam 10 days ago
    Nice. How did you build it?
    • skilled 10 days ago
      Looks to be React with Three.js. No GitHub repo but source can be seen using dev tools.
      • andai 10 days ago
        Three.js games run fine on my old phone. Even with physics! Buttery smooth.

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

  • sufficer 10 days ago
    Doesn't work on Chrome for android. Mid range android phone though
    • dfc 10 days ago
      Works like a charm on my Pixel 7.
  • brospars 10 days ago
    Nice and very precise. I was expecting controls to be less reactive.
  • jonnycomputer 10 days ago
    Nicely implemented; controls felt very intuitive on the keyboard.
  • ghnws 10 days ago
    Nice! I would like it more without the "lives" though.
  • speg 10 days ago
    The ball just falls off and then endlessly falls through space…
  • georges_gomes 10 days ago
    The keyboard controls are particularly satisfying. Well done.
  • maremmano 10 days ago
    I'm unable to go forward. I'm using arrow keys.
    • bitdivision 10 days ago
      It's accelerometer based, though arrow keys do seem to work for me on Chrome / Linux
      • paranoidxprod 10 days ago
        Arrow keys also seem to work on Firefox 126 Beta / Linux for me
        • dotancohen 10 days ago
          Yeah, the arrow keys also work on IE4 in Win98. No accelerometer though.
    • ttrrooppeerr 10 days ago
      Worked for me using A/S/D/F
  • developer1000 9 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.
  • yzzyx 9 days ago
    This is awesome! Makes me wanna play Monkey Ball!
  • darepublic 9 days ago
    very cool, I enjoyed this. One stupid random idea -- have a tiny pet or human running in the ball.
  • matthewhartmans 9 days ago
    Absolutely love this! Well done OP!
  • spxneo 9 days ago
    got to level 8 and gave up but this was very fun could be better with changing camera angles
  • ReptileMan 10 days ago
    this has the feel of an old game called Ballance ... it was amazing and begging for level editor.

    Amazing job.

  • JohnSSS1978 10 days ago
    Very cool game!
  • dmos62 10 days ago
    Doesn't work in Firefox for Android.
    • toss1 10 days ago
      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).
    • k1t 10 days ago
      You may (like me) have been trying to interact by tapping/dragging/etc.

      You need to physically tilt your device to play.

      • dmos62 9 days ago
        No, tried to tilt, no effect. I didn't get any permission prompts either.
    • nebulous1 9 days ago
      It worked FF/Android for me, but it froze for a second every so often.
  • jamesbond009 10 days ago
    [dead]
  • wanderbuilds 8 days ago
    [dead]