Top
Best
New

Posted by iceberger2001 2 days ago

Starfling: A one-tap endless orbital slingshot game in a single HTML file(playstarfling.com)
477 points | 122 comments
0x3f 6 hours ago|
I would make restarting much much faster than it is now. That's the most annoying part and it breaks the satisfying chain completely for me. I miss and then have to watch it slowly fall, or struggle to find the reset button. And even if I hit the reset, I have to go through the menu.

At the very least, put the reset and play again buttons in the same spot, so I can just keep tapping/clicking there.

Super Meat Boy is how all games like this should be.

cachius 6 hours ago||
I nearly stopped playing because of this, before reaching 11. Just leave out the interstitial when clicking restart at the bottom.
Cort3z 42 minutes ago|||
I would add long-press to restart
igravious 4 hours ago||
Tampermokey userscript -- <space> to launch and restart <esc> to give up

```javascript

   // ==UserScript==
   // @name         StarFling Spacebar
   // @namespace    https://playstarfling.com/
   // @version      2026-04-11
   // @description  Spacebar to launch and restart StarFling
   // @author       Claude Code
   // @match        https://playstarfling.com/*
   // @icon         https://www.google.com/s2/favicons?sz=64&domain=playstarfling.com
   // @grant        none
   // @run-at       document-idle
   // ==/UserScript==

   (function () {
     'use strict';

     document.addEventListener('keydown', function (e) {
       if (e.code === 'Escape') {
         e.preventDefault();
         // During play, click give-up to trigger the death/restart screen
         const giveup = document.getElementById('giveup-btn');
         if (giveup) giveup.click();
         return;
       }

       if (e.code !== 'Space') return;
       e.preventDefault();

       // If the game-over screen is visible, click retry
       const gameOver = document.getElementById('game-over');
       if (gameOver && !gameOver.classList.contains('hidden')) {
         const retry = document.getElementById('retry-btn');
         if (retry) retry.click();
         return;
       }

       // Otherwise simulate a tap on the canvas (start from menu / release orb)
       const canvas = document.getElementById('c');
       if (canvas) {
         canvas.dispatchEvent(new PointerEvent('pointerdown', {
           bubbles: true,
           clientX: window.innerWidth / 2,
           clientY: window.innerHeight / 2,
         }));
       }
     });
   })();
```
hirako2000 2 hours ago||
I got so annoyed I fixed the annoyances.

https://orbitup.surge.sh/

- FPS tweak to fix variable speed - Can bounce - Life points instead of sudden death - Levels - A few effects - Better adjusted difficulty

arcza 2 hours ago|||
Nice! Some ideas: Please can you remove the text that hides the main game view. This is the biggest annoyance on both games and slows you down a lot. Also the gravity / physics feels off. Orbit is too slow.
beAbU 2 hours ago||||
No attribution to the original game?
hirako2000 2 hours ago||
yes, I should. In case someone outside this thread comes across that 'fork'.

Edit: I added due credit. thanks for pointing that out.

CyanLite2 1 hour ago|||
you removed the "spacebar" functionality
iceberger2001 2 days ago||
Hey HN, I built STARFLING, a simple hyper-casual space game you can play right in your browser.

You orbit a star with a ball. Tap anywhere to release and sling it through space. Catch the next star to lock in orbit and keep going. Miss and it's game over.

The whole thing is just one HTML file with vanilla JS, Canvas, and Web Audio. No frameworks, no build step. Loads in under 2 seconds on phone or desktop.

There's a combo system if you release quick, a skip bonus for jumping over stars, and it gets harder the longer you last. When you die you get a cool trail art picture of your whole run that you can share.

Audio is all generated on the fly and it has haptics too. Pretty satisfying once you get the timing down.

Play it here: https://playstarfling.com?utm_source=hn&utm_medium=showhn

Would love your thoughts on the feel, difficulty, and whether the trail art is fun or not.

Thanks!

Cort3z 35 minutes ago||
I really like it. Here is my 2 cent:

- the gravity is weird in my opinion. There is basically a gravity going down the screen. I would have expected there to be some "pull" towards the planets. I get why though, you try to prevent mega-long straight shots upward. Perhaps experiment with some drag, where the ball slows down over time. Or perhaps have the walls be gravity points, pulling the ball towards them.

- i would add a long- press to restart immediately, so restarting is faster.

hn_throwaway_99 8 hours ago|||
I liked this game a lot!

One thing I noticed is that I found the game to be pretty hard if I just tried to tap based on where I thought was a good "launching point". But then I realized I could use the dashed lines in the orbit circle as basically "arrows" pointing to where the ship would go if launched at that point in the orbit, and I instantly got much better if my strategy was (a) pick the dash in the orbit circle that points to the next planet, and (b) just then only focus on tapping when the ship hits that dash in the circle.

I think a "hard mode" would be to get rid of the dashes in the orbit circle and just make it a solid line.

hapidjus 3 hours ago|||
I did something similar, tried to click when the ship was at an 90 degree angle to the line connecting the planet to the next.
porterde 6 hours ago|||
This comment instantly made me 10x better player
circadian 21 minutes ago|||
Lush, perfect to take my mind off existing for a few minutes. Always a strong sign of a winning concept. Kudos :)
bhollan 4 hours ago|||
I cannot express to you how much fun this simple little game is! I'm really enjoying it!

If I got to work on this game for 90 seconds, I would move the "bonus text" down to the bottom. It gets in the way of tviewing the literal most important thing SO MUCH!!!

olelele 29 minutes ago|||
Love this. Hit me up if you want a chill soundtrack for it, I can make something for free.
metalrain 9 hours ago|||
I noticed that gameplay speed depends on the window size. I'm assuming that larger canvas takes longer to render. It seems too fast at small window sizes and maybe too slow at 4K, not sure what is the intended speed.
bspammer 8 hours ago|||
This is a really nice little game. My feedback is that on mobile at least, the text that pops up often blocks vision of the ball, which is quite frustrating. I would move it down a bit
cheschire 8 hours ago|||
The "better than X%" of players seems way off. If I get zero, somehow still better than 32% of players? and 25 planets is >99% of players?

The dotted line starting wide and slowly shrinking to the real orbit is a great touch. It makes the quick/fast/blazing/insane moves harder and more satisfying when they work. The angles encourage skips frequently enough to feel good.

I think the only improvement I would make to the look is perhaps the background. I still think the cyberwave aesthetic works and isn't played out quite yet, especially on mobile. But maybe instead of a boring flat grid, some very faint parallax points moving across the background might work better to give the game a bit more depth.

The pause->restart flow is way faster than clicking the restart button at the bottom of the screen. If your intent is to capture the end of every game to advertise the upcoming mobile game, then you might want to capture that method of restart as well.

Great game, thanks!

jonwinstanley 10 hours ago|||
Really like this game. A few bits of feedback:

- Can you add a keyboard key that also launches, rather than always have to be a click - Can you make it so it restarts without having to click the play again button? Maybe use the same keyboard button as above? - When fail, why does the ship fall to the floor? Maybe a gentle curve away would be more "realistic" - Why is the bg squares? Maybe it should be more of a subtle space bg

Thanks for making it!

gregsadetsky 7 hours ago||
+1 on keyboard to launch and restart!!
flkiwi 33 minutes ago|||
There was an old flash game called, I think, curveball that was kind of like 3d perspective, 2d plane Pong. I could play that gave for so, so long and not get tired of it. This might end up being a replacement.

EDIT: Uh oh. I found it again. I'm screwed.

adito 3 hours ago|||
Thanks for making this, fun game, but the contrast is too low for my old eyes. I can't see the orbit most of the time. Maybe add options to make the orbit more visible?
tuyiown 10 hours ago|||
It’s great but the animations when catching a new orbit (sparks and combo announcements) is making hard to follow the ball, I realized I missed many shots due to this after some games.
bjackman 7 hours ago|||
Nice work! Really low frame rate on Firefox on Android (pixel 10), might be something worth checking.
nmstoker 5 hours ago||
On a Pixel 10 Pro with Firefox it's not too bad but it's definitely a touch less responsive than on Chrome also on that same phone
cush 3 hours ago|||
Love it! Thanks for sharing!
jonwinstanley 10 hours ago||
Oh, and it’s completely different on mobile. Game is slower and much easier to score well.

My feedback above was on desktop.

onion2k 3 hours ago||
I gave Codex 5.4 Playwright MCP access to the site and a prompt of "Use Playwright CLI Skill to open https://playstarfling.com/ and load the game. Work out how to play it, and devise a strategy to win." After a about half a dozen attempts it had figured the game out. Then I prompted it to "Score as much as you can." It wrote itself an auto-play script that just keeps going.

I stopped it running at 10866. That's currently the high score. I appreciate that this is pointless and proves nothing, but I've been experimenting with automating testing games (I work at a gaming company at the moment) so it felt like an opportunity to try an experiment.

jstummbillig 2 hours ago|
Do tell? How did it play the game, did you watch? Just took forever with every shot, or how did that play out with the LLM induced latency?
onion2k 1 hour ago||
It didn't exactly play it using the LLM, but it used Playwright to execute code in the browser to work out how it works and then wrote a script to inject into the page to play it. It was basically perfect AI getting skip * 2 on every shot even after a hundred planets. I didn't expect it to do quite so well with only 2 prompts.
imglorp 3 minutes ago||
I love it.

But why make apps for it? The web page is perfect as is

cpcallen 11 hours ago||
I am completely confused about the orbital mechanics in this game. They seem completely broken; at any rate they do not work remotely like any other simulation I've played with (e.g. Gravitation or Kerbal Space Program). The bodies other than the first body appear to actively deflect the spacecraft away!
andai 10 hours ago||
You have elucidated a real gap in the marketplace: physically accurate mindless tapping orbital mechanics sandbox.
oezi 8 hours ago|||
19:50 Put codex and claude (thinking high) to work in parallel to see who could come up with the better physically accurate mindless tapping orbital mechanics sandbox.

20:10 Both codex and claude finish pretty much at the same time, but my kids say claude's version is more fun.

20:50 Claude runs out of its 5h session limit while finetuning some things, while Codex has 80% left (!).

https://coezbek.github.io/orbital-tap/

RobotToaster 7 hours ago|||
Unfortunately it doesn't let you skip planets.
oezi 5 hours ago||
I tried it, but it doesn't make for good gameplay, it just gets too easy. Could maybe subtract points, but that also feels strange. I updated gravity to do things, but orbiting isn't permitted.
em-bee 5 hours ago||
i love the gravity. but sometimes the orbital speed is to fast to be able to make the next jump. that's frustrating.

a slow mode, or an option to hit the brakes might be nice. or going slower as the orbit decreases. smaller orbit is harder but slower speed is easier. you just have to find the right moment

the quick bonus should not be more than one point. maybe an extra point for hitting 5 quick jumps in a row.

throwthrowuknow 7 hours ago||||
I like this version of the game more, keep at it!
progval 7 hours ago||||
It's still pretty far physically accurate because there is infinite acceleration the moment a ship reaches the target orbit.
pigpop 4 hours ago|||
That sounds like it would be a completely different game and probably not as fun since you'd have to use some very fiddly controls to manually get into orbit. If you eliminate orbit entirely then it's just a slalom race. "Hitting" each star/planet is the immediate feedback that makes it fun.
oezi 7 hours ago|||
True. Hard to square it being a game, fast-spaced and accurate.
love2read 5 hours ago|||
This version is better than OP’s
TeMPOraL 7 hours ago||||
It's a gap, but not due to lack of trying.

I made https://github.com/TeMPOraL/cloze-call a little over 16 years ago, and this itself was inspired by something then at least that much old.

Screenshot: https://jacek.zlydach.pl/old-blog/download/projects/ClozeCal...

Wonder if I can turn this into browser-playable version with just LLMs.

EDIT: Put Claude Code on the task (reason for choice: Claude Desktop lets me just throw it at a folder with unzipped bundle of sources and assets I found laying around my blog archive).

EDIT2: Holy shit it worked. Will upload it somewhere soon.

EDIT3: Here it is, in its full 800x600, 30 FPS cap glory: https://temporal.github.io/ClozeCall-Web/

The process I used was, have CC run over the original sources and create this document:

https://github.com/TeMPOraL/ClozeCall-Web/blob/main/design.m...

Then after verifying it matches what I remembered and clarifying some decisions (section 4 and 5), just told it to make a static client-side no-build-step no-webshit-frameworks game deployable to github.io, and it did it in a single shot (+ a second small request to add a fix to transparency of some assets). Personally, I'm impressed at how well it went, what a nice highlight of the weekend for me.

TeMPOraL 3 hours ago||
Past my edit window, so - a modernized port true to the spirit, but with some QoL updates, more performant and works half-decently on mobile:

https://temporal.github.io/ClozeCall-Web/index-ng.html

FranchuFranchu 8 hours ago||||
There's a 2014 game that is just that. Lim Rocket: slingshot around planets while also avoiding crashing.

https://dan-ball.jp/en/m/pc_lim/

wafflemaker 8 hours ago|||
Not really. Flight of Nova fills that gap, and I think I know how I'm going to spend this afternoon now.
wolframhempel 10 hours ago|||
I don't think it has any expectation of being an astrophysics simulation. I mean, if the "spaceship" misses, it falls towards the "floor"...
Applejinx 7 hours ago||
Yup. I figured it out and went from zero to five immediately when I figured out it wasn't in the least orbital, but rather it was Undertale: you had to click when it was exactly tangent to the target, and then hitting anywhere within the target area was a win.

That's also when I lost all interest, which isn't quite fair in that it's still a slingshot game, just not in the least orbital. It's just a slingshot. No stars required.

muti 14 hours ago||
Fun. Not sure if this applies on desktop, but on mobile the quick/fast/blazing/skip text often blocks vision of the ball making it harder than it should be to make combos
tux3 10 hours ago||
Very much applies on desktop. The restart button is also strange on desktop, it plays animations instead of restarting. I recommend pressing pause and restarting from the pause menu, which is instant.
high_priest 11 hours ago|||
Major problem
disillusioned 13 hours ago||
This precisely.
Twirrim 13 hours ago||
Fun, but dark grey text on a dark background? Bit hard to read a bunch of the text.

It also seems like there's gravity coming from off screen assets (or maybe it's the bottom of the screen?) causing the projectile to curve in unexpected ways, and not be captured as strongly by the gravity of the visible objects as I'd expect.

yuppiepuppie 13 hours ago||
This is good fun! I’ve added it to the HN Arcade :) https://hnarcade.com/games/games/starfling
ericskiff 14 hours ago||
Fun, but the way they fly doesn't quite match my intuition. Why would an object curve when I send it out on the tangent? Wouldn't that be a straight line unless it's affected by a different gravity well?
lemagedurage 13 hours ago||
Yes, you have to imagine a much bigger star beneath the viewport.
kaffekaka 13 hours ago||
I imagine it as slingshotting my way up a tree.
OneMorePerson 4 hours ago|
I like it! One complaint is that if you are going fast it starts to display a "Quick!" (or something like that) message on top of the middle of the screen. This makes me want to continue going quickly, but the message is blocking me from properly seeing the orbit, so I end up trying to keep the streak going and most often launch and miss cause I can't see. Maybe display it off to the side in empty space?
More comments...