[HN Gopher] How to create a game using hyperbolic geometry? (2020)
___________________________________________________________________
 
How to create a game using hyperbolic geometry? (2020)
 
Author : bumbledraven
Score  : 78 points
Date   : 2023-06-23 15:31 UTC (7 hours ago)
 
web link (roguetemple.com)
w3m dump (roguetemple.com)
 
| hyperlogic wrote:
| In 2010 I released an iPhone game that uses hyperbolic geometry
| in a similar way. It's a match 3 game inspired by the work of M.
| C. Escher. A few years back I ported it to javascript using
| emscripten. You can play it for free here.
| 
| https://hyperlogic.github.io/circull/circull.html
 
  | spencerflem wrote:
  | This is beautiful!
 
  | zenorogue wrote:
  | Thanks for sharing! I thought that Circull was a game that once
  | existed for iOS and then was lost, did not know about the web
  | version. (Esfera Chess was another iOS game that was non-
  | Euclidean in some sense and is lost.)
 
  | djsavvy wrote:
  | This was really fun to play!
  | 
  | 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.
 
  | goddtriffin wrote:
  | This is very fun! Thanks for linking!
 
| juped wrote:
| The trick with why HyperRogue works as a game does in fact come
| down to hyperbolic geometry; it's not a gimmick.
| 
| 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
 
  | [deleted]
 
  | LanceH wrote:
  | > find the center of this circle
  | 
  | That damned holy grail. It's only something like 21 steps from
  | the edge of the circle. How hard can that be, right?
 
  | immibis wrote:
  | Well, it's also easy to imagine a Euclidean variation of
  | HyperRogue that would use portals (line segments) as biome
  | bondaries, instead of lines.
 
| b33j0r wrote:
| Once I understood non-linear vector spaces and coordinate
| transformations... wait what am I saying?
| 
| 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.
 
  | immibis wrote:
  | In hyperbolic geometry it's hard to even have x,y coordinates
  | at all. Once upon a time I looked at the source code of a
  | hyperbolic 2D game; can't remember if it was HyperRogue or
  | something else. It recorded your position as something like a
  | binary representation of a path down a tree from the origin
  | point.
 
    | zenorogue wrote:
    | More precisely -- you can have x,y coordinates, or (easier to
    | work with) x,y,z coordinates, but you would quickly run into
    | numerical precision issues, and that binary representation
    | prevents that. (Probably it was HyperRogue, other hyperbolic
    | games are wrapped or small enough to work without it. David
    | Madore's hyperbolic maze has a wrapped world so it uses a
    | totally different system. I think Sokyokuban also has tree-
    | based representation of the map, even if the world is small.
    | It could also be Hypermine by Ralith, it is also open world
    | and open source.)
 
| thrownblown wrote:
| HyperRouge! i've got it on my phone!
 
| dang wrote:
| I put 2014 on this because of
| https://web.archive.org/web/20141214000216/http://roguetempl...
| but it looks like most of the content wasn't there yet. Anybody
| want to figure out a better year?
 
  | wincy wrote:
  | Looks like the current version with the really deep dive is
  | from somewhere between 2020-2021 based on manually clicking
  | through archive.org.
  | 
  | 2020 would probably be more a appropriate tag?
 
    | dang wrote:
    | Done - thanks! Pretty cool to work on a piece like that for 7
    | years
 
      | zenorogue wrote:
      | Yeah, it is updated from time to time. Mostly small
      | changes, but the version from 2014 was much less detailed,
      | so better to list it as newer.
      | 
      | Currently working on a more detailed "book" on this :)
 
| avmich wrote:
| https://sokyokuban.com/#1
| 
| Another nice and small hyperbolic geometrical game.
 
| daniel-thompson wrote:
| This is really cool! But unfortunately for me, it gives me
| vertigo after a minute or two. Anyone else have that sensation
| and/or any pointers to resolve? I'd like to keep playing with
| this if possible.
 
| swayvil wrote:
| I too have delved into a variety of fancy geometries for
| roguelike, rts, etc. And still do.
| 
| 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.
 
  | immibis wrote:
  | Hyperbolic is fundamentally different geometry. The
  | circumference of a hyperbolic circle is exponential in the
  | radius. Yeah that's right - add one unit (or at least, a fixed
  | number of units) to the radius, and the circumference
  | *doubles*. If you're thinking about using this geometry you
  | should go and play HyperRogue to get a feel for it.
 
| vslira wrote:
| Slightly off topic: does anyone have good intros to hyperbolic
| geometry? I was imitating drawn by applications related to
| hyperbolic embeddings in NLP, but I'm having a hard time
| understanding why, in what ways and how it could be "better" than
| euclidean etc
| 
| 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.
 
| platz wrote:
| Now what you should _really_ do to make this more interesting
| that just a concept demo of what amounts to an immediately
| obvious gimmick, is to use the underlying hyperbolic geometry,
| but instead of making that the obvious focal point of the game
| /ui, make that geometry a _hidden component_ of the game and
| force the user to deal with it indirectly or as hidden
| information.
 
  | zenorogue wrote:
  | Regarding making geometry a hidden component: it, kind of, is a
  | hidden component in HyperRogue. I mean, yeah, it is in the
  | name. But people play HyperRogue without understanding what
  | hyperbolic geometry is. They think it is a game taking place on
  | a sphere, or a normal Euclidean map with some kind of fish-eye
  | projection. On the other hand, I do not think it is really
  | possible to hide it from someone who knows how these things
  | work, as the perspective works very different in hyperbolic
  | geometry.
  | 
  | 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).
 
  | jere wrote:
  | I have to point out that Hyperrogue is far from a tech demo.
  | Though the controls are simple, there's some 60 lands each with
  | fascinating rules and emergent complexities.
  | https://www.roguetemple.com/z/hyper/gallery.php
 
| jerf wrote:
| If you are interested in this, see also
| https://www.youtube.com/watch?v=pXWRYpdYc7Q&list=PLh9DXIT3m6... ,
| in particular the ones labelled "Devlog". The two complement each
| other nicely; the HN link is heavy on the math, the Hyperbolica
| devlog focuses a lot on the practical considerations, though
| there's overlap in both directions of course.
 
  | TwentyPosts wrote:
  | Ah, Hyperbolica. I just wish it had more going for it. It feels
  | a lot like the sort of cute educational tech-demo game which
  | you'd show school children/teenagers if you (for whatever
  | reason) wanted to teach them about hyperbolic geometry.
  | 
  | 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.
 
    | zenorogue wrote:
    | What would you consider a severe flaw? I see severe flaws
    | even in very popular games :)
 
  | owenpalmer wrote:
  | Ah yes, Hyperbolica. Good stuff.
 
___________________________________________________________________
(page generated 2023-06-23 23:00 UTC)