Readit News logoReadit News
kevinAlbs · a month ago
I was pleasantly surprised when a friend texted me after work to say this game was on Hacker News. I hope it brought some small joy to your day. Some comments helped identify some minor tweaks. I do not expect to have time or motivation to make bigger changes soon. Feel free to make GitHub issues.
bryantwolf · a month ago
You might find this fun. There this sonic the hedgehog special stage from sonic three that takes place on a sphere. Recently I made a remake of it and they project a 2d grid onto a sphere, but the projection adjusts as you move, so no matter where you go, you never end up at a pole. The poles always stay on your sides.

The other interesting bit is that you can have an arbitrary map size and just repeat it. The game is 32x32 but it could be whatever.

https://blue-sphere.fly.dev/play?map=s3-01

Anyway, great stuff you have here!

petermcneeley · a month ago
Is this AI made?
hirsin · a month ago
I was unsure of the licensing, so happy to take it down if it's not open - but I forked this to test some agent features on GitHub mobile and was happy with it. https://hpsin.github.io/SphericalSnake/ and the PR I single shotted for testing https://github.com/hpsin/SphericalSnake/pull/1

Thanks for a fun mobile friendly test run!

kevinAlbs · a month ago
Nice :) TIL you can use an agent on GitHub mobile. And this reminded me to add an open source license. I added an MIT license.
antirez · a month ago
Absolutely great. Seems easy at first then you start realize you need very different strategies when the snake is very long. Thanks :)
JumpCrisscross · a month ago
Hypersnake! We need hypersnake! Snake on the surface of a hypersphere [1]! (Cubes can come too.)

[1] https://mathworld.wolfram.com/Hypersphere.html

iamcreasy · a month ago
financetechbro · a month ago
Came here to say this! I need to see this in a hypersphere
subset · a month ago
Thanks for writing this game! I came across it after seeing your Checkers written in Rust for WASM game[0], and thought it deserved an HN submission of its own.

[0] https://github.com/kevinAlbs/Checkers

ImJasonH · a month ago
I just want to say I love this idea and execution. Great work, please make more :)

Deleted Comment

bogtog · a month ago
The game looks really good, although I think it'd be improved if the sphere was a bit smaller. It feels like it takes too long for the game to become difficult
re · a month ago
Here's a console command you can run to increase the snake length immediately, and thus the difficulty:

   (() => { let count = 50; const delay = 100; const interval = setInterval(() => { addSnakeNode(); if (--count <= 0) clearInterval(interval); }, delay);})()

londons_explore · a month ago
Why wrap in a lambda?
elicash · a month ago
Speed should slightly increase with each new apple
Wowfunhappy · a month ago
I strongly disagree, I like that the challenge comes from the snake getting longer as opposed to speed.
giarc · a month ago
Agree - my millennial brain got bored quickly and it was still very easy.
progbits · a month ago
Easy up to ~70, interesting between 80-110, very hard around 120-130. I think scores above 200 are pretty sus, there is very little room on the sphere at that point (using the cheat from sibling comment). Anything >400 is definitely made up.
wowczarek · a month ago
Love the game, it just ramps up pretty slowly.

Looking at the comments and people trying to verify what the real maximum score is. I wrote a (Cartesian) snake for fun once, that was Pascal and an obscure 8-bit platform, but most fun was the pure mechanics of it; the rest was just boring, completionist details. As dopamine plateaued, I barely just worked out a formula for a curve to spread the maximum snake length across a set number of levels so that it ends at 100% of gameplay area and remains winnable. But maximum score? No idea, I couldn't be arsed to work it out. But I finished the project! https://github.com/wowczarek/dlp-misc/tree/main/spacew0rm

umvi · a month ago
Yeah, would be nice to have a "start at level 100" button so you can skip to the challenging part

Deleted Comment

Stevvo · a month ago
It starts getting tricky at 50, 100 is the kinda like end, you win.
Ecco · a month ago
Really cool game, but please please fix the viewport to prevent accidentaly zooming on the page on a mobile device!
xp84 · a month ago
And while you’re at it fix it so you can’t do a text selection of the game area. I’m having both zooming and selection happening and they make it unplayable.
kevinAlbs · a month ago
I can reproduce a zoom on an iPad Safari when double tapping. Updated with a fix to prevent default double click events. It fixes on my environment.
wanderingstan · a month ago
Yes. And it’s so easy:

`<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">`

arscan · a month ago
It has something like that already[1]. I'm curious what's wrong with that.

1. https://github.com/kevinAlbs/SphericalSnake/blob/b907738476d...

byearthithatius · a month ago
Is there a place I can read about taking unique creative approaches to original topics/games/concepts like this? "Thinking Different with Basics". I like this so much but its because it gets at an essence of creativity applied to the obvious I don't know how to learn or search for:(
wonger_ · a month ago
I watched this GDC talk recently about practical creativity: https://www.youtube.com/watch?v=zyVTxGpEO30

I like his perspective that creativity = using an existing pattern in a new context.

You can be more creative by first consuming lots of different patterns in all sorts of contexts (e.g. playing lots of games, and also reading and experiencing lots of topics unrelated to games).

Then you try all the different permutations of patterns in your mental toolbox. Kinda like how the sibling comment rattled off different what-ifs.

EDIT oh and oblique strategies might be helpful to come up with variations on an existing theme: https://stoney.sb.org/eno/oblique.html

byearthithatius · a month ago
Thank you for this!
rustystump · a month ago
Sadly i dont know if this can be learned persay as it wobbles along the “creativity” line.

Id say that youd need to have a genuine curiosity along with a “what if” mindset that is hard to teach. The path to these ideas is often a train of what ifs, what if snake was 3d? Then what if it was 3d on a planet? What about a cube?

You can take the same thought to other games. What if pong was 3d or on a sphere? What if pong supported 100 people playing together? How would that work?

Often what ifs will be deadends or uninteresting. It is like sales, a volume game. But u got to like the process or you wont get far.

vunderba · a month ago
Definitely. This is a pretty common approach: take an existing game, break it down into its constituent mechanics, then swap one of them out for a mechanic from an unrelated game. Rinse and repeat.

Case in point:

I built a twin-stick version of Snake that requires you to control two snakes simultaneously, called Twins of Caduceus. I even have a custom arcade box with two four-way joysticks so you can control one snake with each hand though you can play it with a regular keyboard. It’s a lot of fun, but you practically need the kind of hands that come built-in with localized neural ganglia to get a high score.

https://mordenstar.itch.io/the-twins-of-caduceus

tuetuopay · a month ago
Snake was my very first OpenGL program (well, past a cube). You learn quite a bit about the basics and why one more dimension is not always better.

Fun times, this takes me back quite a bit. Definitely from the "what if" mindset, I was seeking something complex enough for learning and simple enough to actually finish. I must have been 15 or 16 at the time.

sumibi · a month ago
I made a multiplayer 3D pong in a cube years ago: https://cubeball.araxor.com/

It was a VR game for google cardboard. It worked pretty well at the time.

Sadly, it's not available anymore in the google play store. Maybe one day I'll port it to the web and open source it if I can find the time...

ocrow · a month ago
Yes! Curiosity is the way to open these doors. The first step is to keep a log of your thoughts. Anything that pops up, write it in your ideas book. Having ideas isn't an all or nothing. It's a practice. Get into the practice of writing down your small ideas and you will develop the ideas muscle.
Aardwolf · a month ago
Obviously 666, 1337, 9223372036854775807 etc... in the leaderboard are fake, so if I had to try to figure out what the highest legit score is, I'd guess milkman with 227. Unless someone was clever enough to make an inconspicuous fake number :)
byearthithatius · a month ago
kinda like that hacker news hacked it pretty quick haha
neanderzander · a month ago
Cool. It would also be interesting to see a hyperbolic snake.

Reminds me of this video, where the dev compares spherical and hyperbolical geometries (albeit a dimension higher):

https://www.youtube.com/watch?v=yY9GAyJtuJ0

myhf · a month ago
The Land of Eternal Motion in HyperRogue is an example of a hyperbolic snake game. You can continue moving indefinitely with an infinite tail.

https://hyperrogue.miraheze.org/wiki/Land_of_Eternal_Motion

nomel · a month ago
Very neat. Would be cool to see in 3d (cross eye option [1]!? :D)

I think an accelerated initial growth is needed. Maybe start with a growth of 5 and have it decrease so it's a 1 at around 50. It takes a bit too long to get to something non trivial, especially since it seems there is a bias to put dots on the opposite side, causing the first 5 minutes to be mostly going in a straight circumnavigations.

[1] https://www.kula3d.com/how-to-use-the-cross-eyed-method