GameBox (Nadeo)
Nadeo’s games keep their data in GBX files. A file holds nodes, each an object of a class named by a 32-bit class ID, and a node is read as a run of chunks whose IDs are the class ID with a chunk number in the low bits; a class also reads the chunks of the classes it derives from. Sourced · GBX.NET The wiki records one game on it, TrackMania Nations Forever, from its install’s packs and its maps.
A map is a grid of blocks, each naming a block model by its collector ident; a model is a solid, a tree of visuals, collision surfaces and lights, drawn with materials that name template shaders; the map’s decoration leads to a mood that sets the latitude and the day. Observed · the install’s packs and the 65 campaign maps
| System | Page |
|---|---|
| Data model | Nodes, references and collector idents |
| World | Map blocks and block models, TMUnlimiter map data |
| Geometry | Solids, trees and visuals |
| Materials | Materials, shaders and bitmaps |
| Lighting | Lights, decorations and moods |
| Collision | Collision surfaces |
| Animation | MediaTracker triangles and key functions |
| Gameplay | Ghosts |
The GBX header and body layout, the reference table’s own layout and the map’s other chunks are not described here yet.
Pages
Data model
- Nodes, references and collector idents — How GBX nodes refer to one another: node indices, external files, nodes stored in place, the deprecated node lists, the classes that read no chunks, and the collector idents that name block models.
World and streaming
- Map blocks and block models — How a Stadium map places its blocks: the world frame, the block grid, a block's direction, coordinate and flags, how the flags choose the model's mobils, and the block models' units and mobil lists.
- TMUnlimiter map data — The chunks TMUnlimiter, a community extension, adds to TrackMania Nations Forever maps: their versions, the version 7 order, the challenge flags, parameter values, block kinds, embedded models and the encrypted chunk 0x3F001000.
Geometry
- Solids, trees and visuals — How a block's or object's geometry is stored: CPlugSolid and its CPlugTree hierarchy, the visual classes, the geometry flags, the packed and unpacked vertex layouts, index buffers, sprites, 2-D quads and texture coordinates.
Materials
- Materials, shaders and bitmaps — How a Stadium surface gets its look: CPlugMaterial and its template shader, the shader names the campaign uses, CPlugBitmap and its chunks, the classes whose chunks a bitmap or shader also reads, texture transforms, normal maps and the image files.
Lighting and sky
- Lights, decorations and moods — The Gx light classes and the chunks each reads, the spot lights Stadium blocks carry with their stored values, and how a map's decoration leads to a mood with its latitude, day times, directional light and light-map settings.
Collision and physics
- Collision surfaces — CPlugSurfaceGeom, the collision shape of a tree: its chunk, the shape kinds (mesh, ellipsoid, box), the mesh's cooked triangles and octree, and the material ID that follows.
Animation
- MediaTracker triangles and key functions — The keyed data of map files: the MediaTracker's 2-D and 3-D triangle blocks with their per-key vertex positions, and the key-function classes CFuncKeys and CFuncKeysReal.
Gameplay data
- Ghosts — CGameCtnGhost, a recorded run: the compressed sample stream of car states in chunk 0x0303F005, the 61-byte version 9 car record, and the input events, versions and seed of chunk 0x03092019.