Small issue: I accidentally right-clicked one of the arrow buttons and it stuck in the pressed position, causing the snake to curl into itself and end my game before I could left-click out of the context menu.
`<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...
(() => { let count = 50; const delay = 100; const interval = setInterval(() => { addSnakeNode(); if (--count <= 0) clearInterval(interval); }, delay);})() { let count = 50; const interval = setInterval(() => { addSnakeNode(); if (--count <= 0) clearInterval(interval); }, 100) }great work
maybe add a sound effect :)
Reminds me of this video, where the dev compares spherical and hyperbolical geometries (albeit a dimension higher):
Paired that with cnv.requestFullscreen() for a much better experience.
Then I started noticing the dropped frames every few seconds due to GC pauses.
> Major GC
> Duration 43.52 ms (self 26 μs)
> Collected 53.1 MB
Ouch!
I see a person or two I know in there haha
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.
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...
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.
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
Extend the capability to include timer, boost of speed and even levels with enemies.. I would love to also try having a kind of multi level support for moves.. Like 3 layers to explore the 3d navigation with layers of ground for moves.
Awesome experiments that could easily become viral! :)
- is small compared to human level speeds (say 2km/h / 1.25mph)
- things could move faster than the speed of light.
I really wonder how it would feel to explore this world visually. For example:
- an object in front of me accelerates from 0 to above the speed of light
- I'm in a car, looking backwards, going from 0 to above the speed of light
I guess one could easily simulate that in a virtual world, no?
I wonder if you could make it multiplayer and then get the effects of time dilation?
In my imagined world I also wanted to explore speeds above the speed of light. You could just stick to galilean transformation, take a very low speed of light and go from there. The world you get should be pretty bizarre.
PluriSnake is a snake-based color matching daily puzzle game.
Color matching is used in two ways: (1) matching circles creates snakes, and (2) matching a snake’s color with the squares beneath it destroys them.
Snakes, but not individual circles, can be moved by snaking to squares of matching color, as long as their paths are not blocked by other snakes.
The goal is to score as highly as you can. Destroying all the squares is not required for your score to count.
Of course, there is more to it than that as you will see.
Try it out:
https://testflight.apple.com/join/mJXdJavG
Any feedback would be appreciated. Have fun!
Colorblindness isn’t exactly fixed by filters, for a few reasons. They help for some colors, but not others. And each person’s experience is different based on their specific deficiencies.
Anyway, this is a color-based game and that’s probably what it needs to be (unless size or shape could vary enough to substitute), so I’m not in the target audience.
You can fix that with a simple css prop.
Very cool btw
as things get more difficult it becomes increasingly important to control space-use and the resultant territory occupied by the snek; at a certain point I switched priorities from "get the target as quickly as possible" to "maintain a regular controlled movement"
Something that leapt out at this point was, there is no tension or penalty for doing so.
Opportunity to increase game challenge/skill requirement: introduce an incentive to get the target as quickly as possible.
One interesting way to do this would be to make the ball get bigger over time, with bigger balls adding more segments to the snek.
I like this sort of approach because it leaves supports two distinct play styles/cases:
- some players would see this as incentive to get to the target ASAP, to avoid growing more than necessary, thus prolonging their survival at the same difficulty
- others would see an incentive to let avoid the target, especially if it grows non-linearly, so as to jump to increased difficulty ASAP
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.
Easiest pattern to get some more length is to do some sort of spherical sinusoid by following the meridian and then some optional final fill loop for the poles.
Overall it feels a bit slow to get to the part where it becomes tricky
For optimal fill you might end up with something like a tennis ball/baseball pattern instead.
see fig 5 here
Nice game though!
One way to get dots evenly spread out over the surface of a sphere is to use a phyllotaxis spiral pattern.
https://demonstrations.wolfram.com/PhyllotaxisSpiralPatternO...
https://github.com/kevinAlbs/SphericalSnake/blob/b907738476d...
Alternatively, keep the current controls, but rotate the whole world to match the snake's direction of movement. Current mix of non-rotating world with rotating controls makes the game more difficult, most snake variants I have played opted for non-rotating world with non-rotating controls (e.g. press right to go right, independent of current snake heading, as opposed to turning clockwise).
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
Thanks for a fun mobile friendly test run!
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!
Snake (video game genre) https://en.wikipedia.org/wiki/Snake_(video_game_genre) has a picture of Hyper-Wurm on a TRS-80, which looks curved or spherical
Is there already a Snake on a Plane?
tilting the phone as the control...
Here's a demo of the control since mdn didn't have one:
Also a more practical thing while we're doing this is a thumb drag control, that'd make this a hit.
Like flappy bird level.
https://toucharcade.com/2009/04/24/snakegalaxy-puts-a-new-sp...
Would love to be able to start with n-length via url params (should be disqualify from LB if start w/ n-length.
plehoux•1d ago