How to create a game using hyperbolic geometry? (2020)
roguetemple.com
roguetemple.com
Hyperbolic space has a lot more space in it than flat space. The circumference of a circle grows linearly with the radius in flat space, but exponentially in hyperbolic space. There's a huge amount of room even just a short distance away from some given point.
HyperRogue is based around this property; one wanders the tiles of the hyperbolic plane in arbitrary directions, visiting various biomes with their own mechanics. Switching biomes is as simple as walking in an arbitrary direction until you see a biome wall, but at the same time every biome is endless in all* directions. This wouldn't actually fit in a Euclidean plane.
There's also some mechanics that make use of the properties of the space, like the very difficult late game puzzle of "walk 100 paces, then return to your starting point" or the tricky "find the center of this circle".
*pedant repelling asterisk
That damned holy grail. It's only something like 21 steps from the edge of the circle. How hard can that be, right?
So why can't the effect be simulated in Euclidean space by just using a bigger circle?
I wish there was a way to request hints on my own time instead of getting the flashing after a few seconds. In my experience the flashing hints were coming too quickly for me to even look through the whole board, let alone choose an optimal switch.
Nevertheless, great game! Thanks for sharing.
Maybe you should fix the palette and not have cyan and teal in the same set (for balance you could shift teal in the direction of blue and further).
The principle is similar to that of defining a palette for readability of graphs (we also had interesting submissions on HN on the topic).
Don't get me wrong, I'm glad that it exists and hope that it inspires some more hyperbolic games (and makes it easier for other people to get started), but game-wise it's incredibly thin, and doesn't have much (if anything) going for it apart from some hyperbolic geometry (which makes some things slightly weird or quirky).
Hyperrogue is much more of a game. It's arguably not a great game (it has a bunch of oddities, and I'd argue some pretty severe flaws), but it does much, much more with the concept, and some of the worlds are genuinely quite compelling.
Anyway, when it comes to Hyperrogue's flaws: 1. The menu is incredibly weird and difficult to navigate. I know a few people who never even knew that certain options existed, since they were hidden a few menu options in. I sometimes have to search for stuff if I didn't start the game in a while.
2. Sometimes there are areas which are rather monotonous and easy, and where you'll be tempted to just 'race' through the area by using scrolling as your main movement method. This works great, until it doesn't, because RNG decides to spawn two enemies in the worst possible locations and you're suddenly locked into a game over. Misclicks can also result in an instant game over, and they happen now and then. In theory it'd be possible to just take things slowly all the time, but this can quickly get really boring when covering large distances. The princess quest is a good example: Very cool idea, but the actual quest gets very tedious. Because of the nature of the area you have to play slowly, but it can be a long, long distance until you actually reach the princess.
tl;dr: Dying with 100+ treasures in Hyperrogue is frustrating since it can happen out of nowhere, and avoiding it would force you to play incredibly carefully and slowly, and/or to avoid some of the more interesting/dangerous lands. If you die you have to start over from scratch, but the game imo doesn't really benefit much from that, and it just forces you to redo the early areas of the game, which isn't that compelling, since the gameplay in these areas is always going to be the same.
The author is also making a golf game: https://store.steampowered.com/app/2147950/4D_Golf/?curator_...
Another nice and small hyperbolic geometrical game.
One day, I realized you can do cool stuff if you have geometry data as x, y, z:
t = x + y;
xt = sin(t);
yt = cos(t);
zt = sqrt(xt**2 + yt**2);
You’d only do it that way explicitly in a vertex shader—but congratulations, that’s a coordinate transformation!
Now do it with more xyzwqp’s, then, profit!
In my example, I compressed x+y down to one parameter. You’ll be combining 4 spacial dimensions into combinations of xyz for use with a rendering pipeline.
Or, alternatively projecting straight to xy. Not sure which is preferable.
Haha. But you do have to project to x and y screenspace eventually, if you want to see your work. My take was pretty slanted towards vertex shader techniques rather than xyz representing cartesian spaces (or even euclidean).
One could imagine some scaling factor or something ending up in the shader variable for VERTEX.z that isn’t really z in an xyz mesh.
My afterthought scenario of projecting to XY (screenspace) is probably the more relevant one.
Which is actually quite cool: while so-called "non-Euclidean" games do all they can to show how weird they are, the actual non-Euclidean geometry pretends to be normal (but actually it is way more weird).
My friends tell me, "no. Just use square grids. Nobody's brain wants to process that stuff. It's too complicated".
But I'm still looking. Maybe the hyperbolic. There are definitely advantages. It beautifully combines the efficiencies of top down view and wide-view perspective.
Maybe it could be rendered more prettily.
Hit them with a stick. Tell them that people think that they should be hit with a stick.
The actual topic here seems to be, at this time a classic, "one product that maximizes adoption in a population" vs "an outstanding product for a niche".
Fun fact: just this week I asked gpt3.5 examples of concrete applications of hyperbolic geometry and it suggested designing transportation networks. When I asked how so, the explanation was that subway lines could make sharper turns in hyperbolic geometry.
For a “vibes” intro, The Hyperbolic Geometry of DMT experiences has a good intro in the beginning. https://youtu.be/loCBvaj4eSg
I’m no expert on hyperbolic geometry. These things just helped me “get it” in the sense of “I get why that’s a thing”. Also, seeing it for yourself doesn’t hurt.
If you want to get intuitions about how this tree-like structure works, it is the best to play HyperRogue. For formal math, I guess it is the best to read the relevant papers.
(I guess the hierarchical structure of transportation networks, from hub airports -> ordinary airports -> major roads -> minor roads, could be interpreted as hyperbolic geometry, in the same way as Internet has hyperbolic geometry. A very liberal and abstract interpretation though. I do not see how making sharper turns makes sense.)
* depending on what you mean by "looks the same". How do you perceive depth? In a natural model of depth perception based on binocular vision or parallax, the hyperbolic space looks like a bounded ellipsoid (more precisely, stretched Beltrami-Klein model), so it could not look like an infinite Euclidean scene.
2020 would probably be more a appropriate tag?
Currently working on a more detailed "book" on this :)