Dynamic Geometry

Creators: Alexander Bruce
Engine: Unreal Tournament 2004
Modification: UT2K4 Level Component

Last Update: 17th June 2007
Current Status: Working. Mostly hardcoded.
Further Development: Including further configurability to remove hardcoded components.
Download: Not yet available

Description: Reconstructing the world you play in...

Demonstration / Purpose Translating the Snake Metaphor Background Information Recursive Interaction Compound Recursion Dynamic Fading Textures Further Development

Page 3 - Implementation - Some quick background information


This is not a complete tutorial, as the majority of work is already done with no reason to repeat it. Unlike Recursive Space, we're not just dealing with pre-existing elements and making them work together to produce a result. The system itself will eventually be available for download, so I'll only step through some of the more interesting developments.

If we really wanted to, we could create our own tiles from scratch, however, that defies part of the purpose of modding. It would be doing a whole lot of work when we can start with something closer to what we need. In Unreal we've got movers. This may seem a little bit odd, given that the tiles that were just demonstrated don't actually move anywhere at all, but there are some functions we can salvage for the kinds of interactions we need.

Unfortunately, we still only have a basic starting point, so I needed to do a fair bit of my own code to get the kinds of interactions that I want. I started by modifying the StandOpenTimed state, given that the initial idea was all to do with tiles reacting when stood on, though this is now essentially irrelevant, as I practically rewrote the entire state anyway.

For development purposes, we should make the tiles to respond to weapon fire as early as possible, as its much faster to remove tiles like this than it is to run around on foot. Movers already have a TakeDamage function, so we just modify the conditions of this to say "always open if called, and the tile is closed". For our tile itself, we can either create our own mesh, which I eventually did anyway for rendering purposes, or we can start with something like HumanoidHardware.Beams.jribbedcolumn01HA.

Back Home Next