Skip to content

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
What else does a map file hold?

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.

Sources

  • GBX.NET — the reference GBX reader (version 2.5.0); its class and chunk tables and generated readers