Recursive Space
Creators: Alexander Bruce
Engine: Unreal Tournament 2004
Modification: UT2K4 Level Component
Last Update: 14th July 2007
Current Status: Working. Minor fixes left.
Further Development: Improving interaction with trace weapons
Download: Not yet available
Description:
Bringing an old mechanic to a new dimension...
| Demonstration / Purpose | Problems Encountered | Setting up the Recursive World | Removing the Hall of Mirrors | Detailed Backgrounds | Working with Trace Weapons | Further Development |
Page 2 - Problems Encountered - Why could it fail?
One of the biggest issues hindering the implementation of this idea in a 3D game is the addition of perspective. To explain this simply, imagine looking through a
doorway at a person standing in a room with a mirror on either side. When we are outside the room looking in, we cannot see the mirrors, we can only see the person
and a small view of the room they're standing in. This is effectively what we get when playing a 2D game, such as a platformer. We've got a limited window into the
game world, through the screen on which it is played.
The jump to 3D comes when we step through the doorway into the room. We can now freely look around and see
all sides of the room. Because of this, we can now see the mirrors on either side of the room facing each other, and can see our reflection infinitely bouncing
back and forth between the mirrors.

Hall of Mirrors - Real World
To link this back to our toroidal worlds, we simply replace these mirrors with portals to the other side of the room, such that when looking through one portal, we are
able to see infinitely in that direction. In the game world, this presents a real issue as we cannot render to infinity, and is something that should be avoided.
In Unreal Tournament 2004 there is a limit on how many portals can be rendered at any time. Once this limit is reached, it just stops rendering new information to the
screen where the next portal should be, which leads to another issue.

Hall of Mirrors - Game World
In these examples, we've used two portals or mirrors facing each other. Search around the internet, and you'll find a whole lot of people telling you not to put portals
facing each other. As I've pointed out here, it's obvious why. But I didn't want only two portals facing each other. I wanted the equivalent of a toroidal world, but
with an additional two dimensions, and I wanted it all to render to the screen. Essentially, I wanted to create this image:

Recursive Space in Theory - Image by Malte Marwedel
Before we move onto the solution, there's one more problem that's standing in my way. Several weapons exist within the Unreal Tournament 2004 arsenal that rely on
tracing functions. Unlike projectiles, where an object moves through the game world, these InstantFire weapons trace a line from where the gun was fired, in the
direction that it was aimed, and continue until they hit something. This is an issue, because portals in Unreal rely on physically moving an object from one location
to another.
Portals are non-solid, so that players can move through them to allow this. With these trace weapons, there is nothing to physically move, so the trace
continues through the portal until it collides with the wall behind it. This essentially means that half of the Unreal Weapons would be useless even if we were able
to get Recursive Space working.
| Back | Home | Next |