HyperRogue non-Euclidean VR demo

Поделиться
HTML-код
  • Опубликовано: 13 июн 2024
  • When HyperRogue was first released, it had only the traditional-style roguelike "graphics": # for walls, letters for monsters, dots for empty spaces. But it took a rather surprising path, introducing vector-based graphics, then 3D effects, experiments with full 3D geometries, becoming a rather universal non-Euclidean engine, and recently full Virtual Reality.
    This video shows various things possible in HyperRogue with VR. It is rather hard to show VR in a standard video, but let's try!
    0:00 classic HyperRogue view
    This is the classic HyperRogue display, but in VR. VR still makes it fun -- you get 3D effects, you can have a large virtual Poincaré disk wherever you want!
    0:10 Alchemist Lab FPP
    Of course you can also use VR with the first-person perspective.
    0:24 Hell FPP
    0:36 Hypersian Rug
    And with the "Hypersian Rug" model. Hyperbolic crochets are much more fun in real life than any static image or video can show. Hopefully the VR version brings at least a part of this joy!
    1:09 Sphere from the Inside
    The game is played on a sphere around the player.
    1:19 Sphere from the Outside
    And here the game is played on a sphere in front of the player.
    1:28 H3 view
    This is a periodic structure in the three-dimensional hyperbolic space, rendered using raycasting. While HyperRogue is less fun to play in three-dimensional spaces, you can explore non-Euclidean structures, race through various geometries in the racing mode, or draw 3D things in VR in the Drawing Tool.
    1:51 Poincaré ball
    You can also view other three-dimensional models of non-Euclidean geometries using VR. Here is the tree structure of the {3,3,6} hyperbolic honeycomb in the Poincaré ball model.
    1:56 Nil
    Nil is a "twisted" aisotropic geometry. It works differently in different directions.
    2:01 Solv
    Solv is an anisotropic geometry that is not even rotationally symmetric.
    There are many interesting choices when designing non-Euclidean VR visualizations. The geometry works differently in a non-Euclidean space, so some obvious things in Euclidean visualizations (including tons of so-called "non-Euclidean" videos which have nothing to do with non-Euclidean geometry) are, well, no longer obvious.
    Should the relative headset movements be translated exactly to the virtual space? If so, if you move to another place in VR and return to where you started, you are probably NOT in the place where you started in the real world. And vice versa. This is because the geometry works differently!
    How should the binocular vision work? Should we just render the inner view from two points? If so, distances are not perceived correctly, and in anisotropic geometries this does not even work.
    The engine lets you configure various details, such as the above, the length of the absolute unit (i.e. the scale of the non-Euclidean space), and so on. Have fun!
    HyperRogue, the non-Euclidean roguelike: www.roguetemple.com/z/hyper/
    Of course VR also works in other things using the RogueViz engine:
    Bringris, the non-Euclidean falling block game: zenorogue.itch.io/bringris
    RogueViz demos: zenorogue.itch.io/rogueviz
    Music: Graveyard from the HyperRogue soundtrack by Shawn Parrotte
  • НаукаНаука

Комментарии • 44

  • @vanderkarl3927
    @vanderkarl3927 3 года назад +62

    Certain modes of movement already give some people motion sickness, I can't imagine how nauseating HOLONOMY would be on top of that!

    • @totoshampoin
      @totoshampoin 2 года назад +4

      I have tried holonomy myself in spherical geometry in VR (at the very least on a flat stereographic projection)
      I could only do a mild holonomy, but I didn't really feel it. I however definitely noticed it, especially when I came back IRL.
      Now, having both holonomy and a euclidean reference would be very interesting

  • @roccoleader279
    @roccoleader279 2 года назад +9

    After playing for a bit i accidentily got used to hyperbolic geometry and forgot that i was in a different space

  • @roaringdragon2628
    @roaringdragon2628 3 года назад +26

    I tend to be a purist, for example, I love using ASCII graphics for Dwarf Fortress and ADOM. But yeah, I'm super glad that Hyperrogue has more than that.

    • @ZenoRogue
      @ZenoRogue  3 года назад +9

      The ASCII mode still works with VR of course :) (in the 2D visuals as shown in the beginning, and also monsters in the mode from the thumbnail)

    • @moroni8299
      @moroni8299 2 года назад

      I use ascii graphics for dwarf fortress because I'm to lazy to try and change it

  • @tap9095
    @tap9095 3 года назад +35

    This looks like it would be great in 5 minute increments. Someone could probably build a great deal of intuition about how these geometries work by being immersed in them, but would also likely become very nauseous. I'm going to have to look into experiencing this.

  • @drawician3686
    @drawician3686 3 года назад +18

    This looks as amazing as it does nauseating. Can’t wait to try it!

  • @AlexandrePorto
    @AlexandrePorto 3 года назад +6

    Long live Hyper Rogue!

    • @AlexandrePorto
      @AlexandrePorto 3 года назад

      The one at 1:30 is beautiful, I imagine a game in that environment

  • @mendelovitch
    @mendelovitch 3 года назад +8

    Ia ia Cthulhu fthagn! -5 sanity points per minute wearing the goggles.

  • @StickNik
    @StickNik 3 года назад +2

    This is gonna be trippy as hell by the looks!

  • @melwugon3687
    @melwugon3687 3 года назад +4

    This is epic

  • @CuulX
    @CuulX 3 года назад +4

    This looks awesome!

  • @creature2322
    @creature2322 Год назад +1

    Such big tribute to H.P. Lovecraft. He fully deserves it. ♥

  • @raynorshine3388
    @raynorshine3388 3 года назад +2

    This is so cool

  • @moroni8299
    @moroni8299 3 года назад +1

    Cool

  • @y0utuve
    @y0utuve 2 года назад

    This videos are so cool!

  • @elietheprof5678
    @elietheprof5678 3 года назад +9

    Do you move by pointing the sword to the next cell?
    Can you also move using arrow keys?

    • @ZenoRogue
      @ZenoRogue  3 года назад +7

      Yes (if you call the controller ray the "sword").
      For arrow keys, yes, but I do not think it is great at the moment -- not clear from the VR display how the keyboard keys correspond to the directions. But it could be improved.

  • @alansmithee419
    @alansmithee419 3 года назад +2

    This is a bit of a bombardment of questions (and not really relevant to this specific video, sorry), but I'm very confused.
    I expect no response, but thought I may as well post this just in case I do.
    I was mucking about with HyperRogue, and looking through the menus I found one of the options was "infinite triangles around a point."
    Now this seems valid to me - you can have any finite number of triangles around a point, and I don't see why it being infinite would stop you, and the game world itself seems to make sense, even if it's hellish to traverse - but I just can't see how this would work visually.
    Note: To be clear, all of these questions are about how the geometry works, not how it's implemented in the game:
    Can a first-person representation of being in this space be made? I'd love to see it, assuming the answer to the next question is "no."
    Would it look any different to just having 5 triangles around a point? If so, can it be simply described, or would it need to just be shown?
    Since there are infinitely many degrees about a point, does this mean you can never get back to where you started unless you exactly retrace your path?
    Does any object with three dimensions have infinite volume in this space?

    • @ZenoRogue
      @ZenoRogue  3 года назад +3

      Of course, first-person perspective works in this tessellation. It seems it does not work currently in HyperRogue 12.0a, but that must be a bug, not some fundamental issue.
      I think you are missing that the vertices are ideal points -- they are infinitely far away and you can never reach them. (Even though {3,oo} does not currently work in FPP, 3D honeycombs with ideal vertices, e.g., {4,3,6} do work.) So they look quite different from ones where there only a few triangles.
      Indeed, you can never get pack to where you started unless exactly retracing.
      Not sure what you mean in the last question, but the answer is probably no: an ideal triangle has area pi* (even though its edges are infinite), and it is the same hyperbolic geometry as usual, so bounded shapes will have finite volume.
      * in general, the area of a hyperbolic triangle is pi minus the sum of its angles
      (If you have lots of questions, I recommend joining our Discord server)

    • @alansmithee419
      @alansmithee419 3 года назад +1

      @@ZenoRogue The degree to which you interact with your community is insane. Thank you.
      I think I only have one follow-up question, but it requires some clarification on my thought process for the previous final question.
      I would think that when standing inside a bounded object the volume contained by your field of view swept out in front of you up to the boundary of the object would have a finite non-zero volume.
      (I realise by my logic this cone-like object should also have infinite volume since it is also a bounded 3d object, but that just adds to my confusion rather than providing me with an explanation.)
      I would also think that you can always turn to the right and form a new one of these "cones," completely separate to the last, and never return to your starting direction (since you'd have to turn infinitely many degrees to do so, or turn back), so you have infinitely many possible cones formed by simply turning on the spot. If they have finite non-zero volume, and you can form infinitely many of them by turning in this way, the object you're inside must have infinite volume.
      What have I got wrong here?
      I'll use the discord if I have future questions, but I felt that since I only had one follow up it would be easier to just end this here. Apologies if you disagree.

    • @ZenoRogue
      @ZenoRogue  3 года назад +1

      ​@@alansmithee419 Thanks! HyperRogue 12.0b fixes the issue, so it should be possible to explore it now.
      There are two things about these tessellations with infinite order vertices:
      1) the vertex is infinitely far away ("ideal vertex")
      2) the angle at the ideal vertex is zero
      So you can move towards the ideal vertex as far as you can. The closer you are, the narrower triangles you see.
      The 3D analog can be seen e.g. in this video: twitter.com/zenorogue/status/1182672036499513344
      (You can also explore it yourself in HyperRogue/RogueViz of course.)
      We start "close" to an ideal vertex, and we end also approaching another ideal vertex. The angles are so narrow that they look like vertical columns. If we went even closer to the ideal vertex, they would be narrower and narrower.
      So basically, as you get closer and closer to the infinite-order point, the angles get narrower and narrower, which makes them fit inside the bounded volume of your immediate space. And you can never reach it because it is ideal.
      Discord is better for many reasons:
      (1) there are many knowledgeable people who can answer, and many who are interested in this
      (2) it is easy to share links or pictures
      (3) easier to talk

  • @roccoleader279
    @roccoleader279 2 года назад +3

    Would if there was a port to the oculus quest 2 so i could play this in a huge room and explore

  • @SprocketWatchclock
    @SprocketWatchclock Год назад +1

    I want to play a 5D first person shooter

  • @postmetamorph6247
    @postmetamorph6247 2 года назад

    Cool!

  • @Guitareben
    @Guitareben 3 года назад

    Genius

  • @ninjatintin9074
    @ninjatintin9074 2 года назад

    I would like my brain as well as my eyes out of the fryer

  • @SonicHandsK99
    @SonicHandsK99 3 года назад

    YES YES YES!!!

  • @kristoferkrus
    @kristoferkrus 2 года назад +2

    When will we see this type of graphics in HyperRogue? 😀

    • @ZenoRogue
      @ZenoRogue  2 года назад +1

      They are in HyperRogue for some time already. (settings -> 3D configuration -> configure FPP automatically)

    • @kristoferkrus
      @kristoferkrus 2 года назад

      ​@@ZenoRogue Aha, that was so much more difficult! I think I prefer the 2D mode :P By the way, have you written some blog or anything about the theory behind HyperRogue? You must have put a lot of thought into getting the different aspects of the game engine related to hyperbolic geometry right. Specifically I would be interested to know how you represent positions (since I realize that two integer numbers, which would work find on a Euclidean surface, probably doesn't cut it in a hyperbolic surface), how you generate the (as I understand it) infinite game surface, and whether you keep track of everything that has happened everywhere (objects being picked up, blocks being placed out, etc.) or whether that is basically something you can forget about as soon as the character has more far enough from that position? (I also assume that if I walk back the exact same path I came, I will find that it looks identical to what it did before-maybe rotated if I deviate slightly from the path at some place-but maybe it doesn't?)

    • @ZenoRogue
      @ZenoRogue  2 года назад +3

      @@kristoferkrus Yeah, the game is definitely designed for 2D mode. But a visualization of what the character would actually see is quite important, even if we won't try it much :)
      The game indeed keeps track of everything (which may be a problem on devices with low memory, so it may forget a bit there). There are quite a lot of theory articles on the HyperRogue website. The methods you are asking about are described here: www.roguetemple.com/z/hyper/dev.php

    • @kristoferkrus
      @kristoferkrus 2 года назад

      @@ZenoRogue I see! Thanks! Then I guess you also need to be able to detect when the player has walked in a loop (no matter how large that loop is), so you can stitch together the newly generated landscape with the previously generated landscape for the same tiles, right? How do you detect such loops in that case? I guess you store the generated landscape in either a tree structure or a graph structure (i.e., with cycles). Do you make an exhaustive search throughout that tree/graph for cells that are sufficiently close to the players current location (that would take in the order of the size of the tree/graph to make), or can you make that search more efficiently somehow?

    • @ZenoRogue
      @ZenoRogue  2 года назад +2

      ​@@kristoferkrus The tree representation is based on canonical paths to every tile. If we get to the same tile in some other way, the canonical path will be the same, so we know we are on the same tile.
      It may be surprising that it is possible to do this in O(1) memory and O(1) amortized time per tile, but it does work. (It would not work in Euclidean geometry, but it does work in hyperbolic geometry.)
      Note that big loops are not likely to happen, because a loop of radius r will be of length proportional to the circumference of a circle of radius r, i.e. exponential in r. Also the area inside that loop will be the same exponential, so it is not a problem that the tiles inside the loop are generated (still O(1) memory and time per tile on the path).

  • @canaconn2388
    @canaconn2388 6 месяцев назад

    I attempted to use hyperrogue in vr, but support seems broken. The view is rotated upside down and backwards, and controllers only work in menus

    • @ZenoRogue
      @ZenoRogue  6 месяцев назад

      Regarding the rotated view, I suppose this means that the configuration is not correct (some settings make more sense for HyperRogue 2D, some make more sense in FPP mode, etc.) -- the easiest way is to go settings -> 3D configuration -> VR settings -> VR demo and pick one of the options, it should set a reasonable default. Having said that, the "HyperRogue FPP" option (which should look like in this video) is definitely broken, and in a more substantial way than you say. (I got it to work by changing options and back but it definitely should not look like that. I have not tested the controllers but nothing changed there recently.) Thanks for the report!

    • @canaconn2388
      @canaconn2388 6 месяцев назад

      @@ZenoRogue 👍
      I should say I have the valve index, running a ryzen 7 5800x3d and an nvidia rtx 3090

  • @TomtheMagician21
    @TomtheMagician21 3 года назад

    Oooooh

  • @Austinkeith2010
    @Austinkeith2010 Год назад

    where Android port