Advertisement

non-euclidean 3D game space

Started by August 15, 2012 01:01 PM
7 comments, last by jwezorek 12 years, 6 months ago
My programming skills are minimal, but I'm good at visualizing space. I want to be able to generate a navigable 3D game space, whether or not a game ever gets built into it, just to show my friends and family the kinds of trippy spaces I dream up. I need someone to tell me what tools or techniques to use, I'm clueless.

I want to be able to create faceted space, like the surface of a tesseract; and curved space, like a 3-sphere; and non-orientable space (projective space); and space with hybrid curvature like the curved surface of a spherinder. And I want to put 2D surfaces(land) inside the space for people to walk on. The land may be even more convoluted than the space it's embedded in.

What 3D engines etcetera might enable this? What books might be helpful? Who wants to code it for me so I don't have to? Lol. It really does sound like a lot of work, and I don't know where to start.
Existing 3D engines are obviously all targeted at rendering Euclidean geometry. If there is some specialty engine out there, I haven't heard about it.
Anyway, to do what you want to do, you need to

1. From the mathematical literature, pick a Euclidean model of the non-Euclidean geometry you want to simulate.

2. In your game loop, do your game logic -- update, resolve collisions, etc. -- in terms of the underlying non-Euclidean geometry.

3. In your game loop, convert the results of 2. to the corresponding Euclidean objects given the model you chose in 1.

4. Render the results of 3. using standard 3D techniques.

This an extremely ambitious project in 3D, which actually might involve original research/applied math in non-Euclidean geometry. I say this because I'm not sure to what extent analytic non-Euclidean geometry has been worked out in all cases. Relativity and related subjects use a particular non-Euclidean geometey, but I'm not sure there has been a need for most known non-Euclidean geometries in physics. Basically, I'm not sure that mathematicians have developed the analog of cartesian coordinants in every non-Euclidean geometry you can name and you would need this sort of framework to do a simulation of actors moving around in such a geometry.

That said, why don't you try this project in 2D, where it is a lot more tractable? one thing I have always wanted to do -- and I swear some day will, when I get the time -- is develop a single screen fast-paced shooter like the old coin-op Robotron or something similar but on the Poincare Disk Model of the hyperbolic plane i.e. the model of hyperbolic space depicted in Escher's "Circle Limit" etchings.

P.S. Tesseracts have nothing to do with non-Euclidean geometry. You can have a perfectly Euclidean tesseract if you have four Euclidean spatial dimensions.
Advertisement
The surface of a tesseract is non-euclidean. It is a faceted analogue of the 3-sphere, which has positive curvature. Even tho each cubic cell is euclidean, they connect in a non-euclidean way. Analogous to the way the 3 squares around each vertex of a cube only sum to 270 degrees around the point.
Godspeed to the circle limit shooter, it sounds wonderful.

Interestingly, I believe 3D immersion in warped spaces should be easier than trying to see the 2D variety from above. The projection forces the 2D curves flat, warping the edges of your view. Whereas 3D immersion just really puts you in that space, with no deformity.

If I were doing your shooter, for example, I'd abandon the poincare disk, and move it up to one-level 3D (like one story of a building). To make the math easier, I would use facets instead of genuinely curved hyperbolic space. So each space segment could be, say, a dodecagonal prism connecting to twelve other space segments, as far as you want to extend your universe. Of course, the poincare disk lets you see the whole universe at once, which may be why you choose it, so maybe I should shut up ;p
As jwezorek said, you'll need to work around the limitations of existing hardware and software unless you want a backbreaking task. However that still leaves you a lot of possibilities. If the visual look you want is a simple transformation of euclidean co-ordinates, you could simply write a vertex shader to achieve the look you want. For example, foreshorten objects more than linearly by distance, turn the x co-ordinate into an angle instead of a straight line, etc etc. Higher dimensions could be achieved by appropriately scaling objects according to their size and position in another dimension, e.g. scale a sphere appropriately as you move through dimensions near a hypersphere. Non-Euclidean connectivity has been achieved before through concepts like portals in Portal or wrap-around universes in arcade games.

For an example of something like you spoke about, check out Hazard.
You seem to be mixing geometry with topology there. Euclidean means zero gaussian curvature. You can have have a compact space with non trivial connectivity and still be euclidean.

If you want to make something that complex (it certainly seems like it) you have to define very precisely where you want to go. Just generally something 'trippy, faceted, non euclidean' isn't enough.
Advertisement

You seem to be mixing geometry with topology there. Euclidean means zero gaussian curvature. You can have have a compact space with non trivial connectivity and still be euclidean.

Einnn? I don't know where you got the definition of Euclidean space, but the modern definition is simply the real affine space with the metric induced by the dot product. A cylinder has 0 Gauss curvature, but it's not a Euclidean space.


If you want to make something that complex (it certainly seems like it) you have to define very precisely where you want to go. Just generally something 'trippy, faceted, non euclidean' isn't enough.
[/quote]
I do agree with that.
I don't know where you got the definition of Euclidean space[/quote]

I got the bad habit of referring to "euclidean geometry" as just "euclidean" during my masters.

The surface of a tesseract is non-euclidean. It is a faceted analogue of the 3-sphere, which has positive curvature. Even tho each cubic cell is euclidean, they connect in a non-euclidean way. Analogous to the way the 3 squares around each vertex of a cube only sum to 270 degrees around the point.


So is the surface of a cube non-Euclidean to Flatland's Euclid?

This topic is closed to new replies.

Advertisement