AURORA BRIDGE - UNREAL TOURNAMENT 99
Screenshot-inspired compiled map and editable source
Prepared for Nestel34 / September 2026

OPEN THE COMPILED MAP

1. Copy Maps\DM-AuroraBridge.unr into your UnrealTournament\Maps folder.
2. Copy Textures\AuroraBridgeTex.utx into UnrealTournament\Textures.
3. In UnrealEd, use File > Open and select DM-AuroraBridge.unr.

The .unr contains compiled geometry, lighting and navigation reachspecs.
No T3D import or initial rebuild is needed. Keep the UTX installed.
The build uses UT99 v469e and the classic version-69 package format.
Older editor versions have not been tested.

OPTIONAL T3D SOURCE IMPORT

To start from the editable source, first load AuroraBridgeTex.utx in the
Texture Browser, then use the MAIN editor File > Import command with
Maps\DM-AuroraBridge.t3d. Rebuild geometry, BSP, lighting and paths, then
save a new .unr. Brush > Import is for a single prefab, not this full map.
The complete T3D import may take time in older editors.

THE ROOM

Five curved white structural arches with blue-white light strips; eight
control desks, 24 monitor screens, 16 white chairs with teal cushions,
concentric wall lights, circular ceiling lights, metal floor panels and
grilles, a navigation table, equipment cabinets and a sealed circular door.

The visible room is interpreted from one screenshot. Hidden areas, spacing
and the two end walls are extrapolated. This is an editable architectural
study, with six PlayerStarts and 32 PathNodes. There is no weapon/pickup
placement or tested deathmatch balance. The door is static decoration.

Everything is UE1 brush geometry. There are no imported static meshes,
custom UnrealScript classes, Unreal II/UT2004 assets, or external game art.
Major geometry groups can be selected through the editor's Group Browser.
Detail geometry uses semi-solid brushes to limit structural BSP splitting.

FILES

Maps\DM-AuroraBridge.unr       Compiled map, ready to open in UnrealEd
Maps\DM-AuroraBridge.t3d       Complete brush-and-actor map source
Textures\AuroraBridgeTex.utx  17 original paletted textures with mipmaps
TextureSource\*.pcx          Editable 8-bit source textures
TextureSource\*.png          Texture previews / modern editing copies
Preview*.png                 Renders of the actual authored polygons
Source\build_map.py          Reproducible map and texture generator
Source\render_preview.py     Geometry-preview renderer
Source\validate_map.py       T3D geometry and clearance checker
Source\scene.json            Generated geometry data used by the renderer
Validation.json              Source geometry checks
NativeValidation.json        Native compilation and reload checks

VALIDATION AND LIMITS

The exported T3D was parsed independently and checked for balanced sections,
unique names, closed convex brushes, planar faces, outward polygon winding,
valid texture references and unobstructed player-sized spawn positions.
The navigation markers form a connected network in a geometric clearance
check. The compiled map also includes native engine-generated reachspecs.

The room contains 666 map brushes, plus a builder brush, and 5,354 source
polygons (excluding the builder), plus 45 lights,
6 PlayerStarts, 32 PathNodes and a ZoneInfo. The subtractive room bounds are
704 x 1,344 x 320 Unreal units. There are 17 textures; 16 are used in the room.

The UTX package was independently decoded using UEViewer's UE1 reader.
All 17 decoded textures exactly matched the source RGB pixels. The checker
used a headless build; package and texture deserializers were unchanged.

The map was imported and compiled using the native UT99 v469e editor engine.
Geometry/BSP, lighting and paths were rebuilt, and the resulting .unr was
reopened and resaved in a fresh native engine session. Lighting and save
completed without warnings. BSP rebuild reported small polygon-sliver
warnings; inspect the scene in your editor before further production work.

The Linux build used an offscreen viewport adapter for the lighting pass.
The adapter is only a build-time tool; it is not required by the map.
No compiler, renderer, custom runtime class or game executable is included.
Only the standard Engine/Core packages and AuroraBridgeTex are required.

Interactive collision, in-game rendering and bot behavior have not been
play-tested. Preview images show authored polygons with approximate lighting;
they are not screenshots from UT99. This is a single-room architectural study.

IF TEXTURES ARE MISSING

Check that AuroraBridgeTex.utx is in the Textures directory of the same UT
installation as your UnrealEd. Restart the editor and reopen the .unr.
For a T3D import, load the texture package before importing the map source.

If a particular editor cannot read the generated package, the PCX sources
allow you to rebuild it using the engine's own texture importer:

- Copy the contents of TextureSource into UnrealTournament\AuroraBridgeSource.
- In a fresh UnrealEd session, before loading the map or generated package,
  enter this in the editor's command field:

  EXEC ..\AuroraBridgeSource\RebuildTextures.exec

- Open the resulting AuroraBridgeTex.utx and import the T3D again.

The script imports the original texture names and saves the package into
UnrealTournament\Textures. You can alternatively import the 8-bit PCX files
through the Texture Browser with package AuroraBridgeTex and no group.

REGENERATING THE SOURCE

With Python 3, numpy and Pillow installed, run:
  python Source\build_map.py
  python Source\validate_map.py

This overwrites the generated map, texture package, texture sources and
scene.json inside this extracted project. Back up any edits first.
The optional preview renderer additionally needs moderngl and EGL.

TECHNICAL REFERENCES

T3D representation and map import/build workflow:
https://beyondunrealwiki.github.io/pages/t3d-file.html

UE1 texture/package serialization fields checked against UEViewer source:
https://github.com/gildor2/UEViewer/blob/master/Unreal/UnrealPackage/UnPackage2.cpp
https://github.com/gildor2/UEViewer/blob/master/Unreal/UnrealMaterial/UnTexture2.cpp
https://github.com/gildor2/UEViewer/blob/master/Unreal/UnrealMaterial/UnMaterial2.h
https://github.com/gildor2/UEViewer/blob/master/Unreal/UnCoreSerialize.cpp

All supplied texture images and brush geometry were authored for this map.
The screenshot and its people are not embedded in the map or texture pack.
