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.
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.
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.
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
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.
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
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.
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:(
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.
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.
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.
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.
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.
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 :)
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.
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!
Thanks for a fun mobile friendly test run!
[1] https://mathworld.wolfram.com/Hypersphere.html
https://store.steampowered.com/app/619210/4D_Toys
[0] https://github.com/kevinAlbs/Checkers
Deleted Comment
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
Deleted Comment
`<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">`
1. https://github.com/kevinAlbs/SphericalSnake/blob/b907738476d...
https://theoryoffun.com/
https://mitpress.mit.edu/9780262240451/rules-of-play/
https://www.sciencedirect.com/book/monograph/9780123694966/t...
https://en.wikipedia.org/wiki/Chris_Crawford_on_Game_Design
https://en.wikipedia.org/wiki/Game_Design_Workshop
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
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.
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
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.
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...
Reminds me of this video, where the dev compares spherical and hyperbolical geometries (albeit a dimension higher):
https://www.youtube.com/watch?v=yY9GAyJtuJ0
https://hyperrogue.miraheze.org/wiki/Land_of_Eternal_Motion
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