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.

Real Hall of 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.

Game Hall of Mirrors

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:

Infinity

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