A downloadable game for Windows
What is Relative Hell?
Relative Hell is a collection of two games, taking place in the de Sitter (dS) and anti-de Sitter (AdS) spacetime, with 2 space dimensions. These can be seen as the relativistic counterparts of spherical and hyperbolic geometry. In our real-world, you cannot tell how fast you are moving (for example, we do not perceive the spinning of Earth and its movement around Sun); however, the physics in most non-Euclidean games do not have this property: the curvature of the space would make movement relative to the space obvious for any wide object (this is why in HyperRogue all the large enemies are narrow; see also here or here for some visualizations of this effect).
The Anti-de Sitter game is a multidirectional shooter -- a bit like Asteroids, but completely different. The space is not wrapped, but things appear to go in circles due to AdS properties. Shoot asteroids for points and to restore your resources. The game uses a similar model as HyperRogue: the more score you have, the harder the game gets.
The de Sitter game is more in the "bullet hell" style. Avoid white energy balls flying around you. In de Sitter space, freely moving objects diverge exponentially from each other. You must be careful to keep close to the main star -- if you lose it, you will never catch it again!
What do resources do?
Cyan hearts is hull health, it is used up when you are hit. Red rockets are ammo, it is used up when you shoot. Green octagons are fuel, they are used up when you accelerate. Blue tanks are oxygen, they are used up proportionally to your proper time. In AdS, there are also golden stars, which you should collect for score.
How is the screen displayed?
The set of spacetime points at time = 0 is a sphere in dS, and a hyperbolic plane in AdS. This set is displayed on the screen in the azimuthal conformal projection (i.e. Poincaré model in AdS, stereographic in dS) by default (Relativity Hell uses the RogueViz engine, so all its projections are also available; Beltrami-Klein makes the AdS tessellation look like the Poincaré model of the hyperbolic plane). The frame of reference changes because of the passage of time, acceleration, or moving the camera in the pause mode.
Why are the objects stretched so weirdly?
This is Lorentz length contraction.
Is it really what we would see?
No -- we would of course only see things as they were when the light left them. While in the real world we could not see what is currently going on elsewhere because information cannot travel faster than c. this is not a problem in Relative Hell because the simulation is deterministic except the player movement.
In the views menu you can select "view the visible state" to view things as they were when the light left them, or "view the future" which is the opposite, as well as some cool 3D spacetime/dual views.
Also, in the pause mode, when you advance/revert the time, you can see a dark circle -- this represents your "future", that is, the area reached by the light you emit currently (you can theoretically affect this future), or "past", the area you would have seen by now. There are also other visual effects which are not represented (see Slower Speed of Light).
Could the missiles move faster?
They move (by default) at about 0.995c. So they could, but not by much. The reason why nothing can move faster than light is that there would be a frame of reference in which it would move to the past. You can experiments with this as follows: 'p' to pause the time, 't' to display the proper time for every object, 'wasd' to change the frame of reference.
What about Minkowski spacetime for comparison?
There is no Minkowski (nor Galilean) spacetime currently, but in AdS you can reduce the scale of the game, which reduces the effects of curvature. You can also play Velocity Raptor of course.
Why is everything spinning in the AdS game?
While in standard hyperbolic geometry only the space is stretched, in AdS both space and time are stretched. Suppose we play the game without moving (only the time passes). Imagine an object behaving in such a way that it is displayed at a fixed point of space. Its time would run slower (the further from the origin, the slower). All objects in Relativity Hell, except the player, move through the spacetime along time-like geodesics; our imagined object would not, time-like geodesics are "attracted" towards the center. Due to the dilation of time, spinning makes everything synchronized and stable.
Can I turn the spinning off in the AdS game?
Yes, there is such an option, but it is less intuitive then.
What's going on with the weird blue-and-orange cells in AdS?
These are gates. They damage you when they are closed. Every point of the gate is opened/closed simultaneously, according to the gate's proper time. (So from the player's point of view, the whole gate does not appear to be opened/closed at a fixed time.)
What's going on with the Earth texture in dS?
This is a visualization of how the space expands in dS. Every point of Earth moves along a time-like geodesic. All objects in Relativity Hell, except the player, move through the spacetime along time-like geodesics*.
* However, the specific points of game objects in dS do not, as otherwise they would have to expand.
Why do the visuals glitch after I lose track of the main star in dS?
Numerical errors are much more serious in hyperbolic/dS/AdS spaces because of the exponential expansion. The current implementation of the dS game avoids precision issues when the player keeps close to the main star, but not otherwise. (RogueViz knows how to deal with numerical issues in hyperbolic space, and this carries over to AdS, so this problem should not happen there.)
Where can I learn about how these spaces work mathematically?
Maybe we will make a video, write a paper or something... for now you can read Wikipedia or the expository articles linked there.
What about multiplayer?
Interestingly, a real-time relativistic multi-player game does not seem possible -- the dilation of time would make the in-game time run differently for both players, which is hard to simulate in real world.
Could the world of the AdS game be wrapped like in Asteroids?
If the space is closed, the time is closed too... a game like this could not work with closed time-like loops :)
What about 3D?
AdS and dS are defined in any dimension, although we believe two dimensions are better to showcase ideas like this. Also the spinning trick used to keep the AdS stable works only in even-dimensional spaces AFAIK.
This AdS looks similar to the "universal cover of SL(2,R)" Thurston geometry.
Indeed, they are quite related -- in that Thurston geometry, the time dimension is changed into a space dimension, losing a bit of symmetry in the process. The implementation of AdS is based on the implementation of twisted H2xR geometries in RogueViz.
The framerate is low on my computer.
Yeah, not everything is optimized yet. In the AdS game, try to reduce the "tiles to generate per frame" and/or "tiles to draw per frame" in the game parameters. In the dS game, try reducing the quality of the Earth texture, or disable it by setting the intensity to 0 (particle/texture settings).
Is the source code available?
Yes. (See the top comment in ads-game.cpp to learn how to build.) Have fun!
0.2: New alternative views (light cones, spacetime, dual). Joysticks should work (if you configure them via RogueViz). Minor fixes.
Leave a comment
Log in with itch.io to leave a comment.