TimeSplitters 4/Elemental Tech

**Technical specifications for elemental interactions**

This document is a programming specification for the physics / elemental interaction required for TS4. The main aim is to fully describe the scope of interaction required on a per-element basis, so that, when coding begins, the programmer knows right from the start the range of behaviours and interaction with the world.

**Limitations**

Most of the behaviour described will be specific to interaction with props and not the static background, unless specified otherwise. This is a realistic performance limitation.

Fill rate is expected to be a real issue – lots of props contributing to lots of particles – where possible, LODs for the effects / shaders will have to be employed.

## Fire

Each prop will have flags to define:

* Rate of flammability
* Ability to propagate fire – this is a difficult gameplay issue to get the right balance. The propagation of fire in TS2 was problematic. Character propagation of fire from limb to limb? Maybe can only propagate fire in the initial stages of combustion. Will need global flags and per object type flags for propagation control.

Appearance – A burnt shader that blends during the burn process. Once burnt, some objects:

* Will collapse into physics objects that fall and then fade.
* Collapse into generic burnt gibs that fade away.
* Remain intact, maintaining volume, just look charred.

## Steam / Gas

* Really just a transient effect.
* Good looking steam, requires a high density of particles, that have obvious fill rate issues. We are hoping to experiment with some full-screen fogging to minimize performance issues whilst the player is in a steam volume.
* Gas volumes will have to have LODs build into them.
* Contact with steam causes health damage.
* The difference between gas and steam will be colour.

## Ice / Water and Puddles

* Puddle technology. Water puddles that can be frozen. Puddles are essentially decals. The hope is that we do not need to label the background to indicate floors that can have puddles. Worst-case scenario is that we use the low-poly physics mesh to label puddle floors.
* Puddles will have a linked list structure to allow linking of puddles to create frozen pathways.
* Frozen puddles will thaw back to water and water puddles will ‘evaporate’ and fade away.
* Some puddles will be permanent (a flag), e.g. from a background roof leak.
* As with most things in the game world, there will be a limit of puddles that can be generated at any one time, which will handled by deleting oldest puddles not in the players view, etc.
* Creating icicles from faces which have normals pointing downwards would be a nice effect.
* Puddles should also have environment maps – the issue here is what environment map to attach to the puddle. At the moment, the plan is for the editor to create a low-resolution environment map per room.

## Electricity

* The code and effects for electricity in TS:FP would be a good starting point.
* X-ray effect would be good – although it would require a bone skeleton model for each different skeleton.

*To-Do: AI responses to elements, Player and NPC, Skidding…*

## References

* technical\_specifications\_for\_elemental\_interactions.doc (18/05/2007)