Terminology - voxraygames/worldbuilding GitHub Wiki

Main Name (Alt Name) - Meaning

Most basic things used by both World and Sprites (held by ModelStore):

  • Voxel - Smallest graphical cube, single byte palette index.
  • Block (Tile) - 9x9x9 Voxels, voxel color indices 729 bytes of GPU memory.
  • Vox Model - A Magicavoxel .vox model having dimensions that are a multiple of a Block. A grid of BlockRefs referring to a single Generator.
  • Brush Model - Something created by combining multiple blocks/models into 1 in the group editor, functioning as a single solid object in the world. A grid of BlockRefs referring to multiple Generators. Stored as part of the world or shared in brush files.
  • Generator - An algorithm that generates 1 or more blocks and models. May come from file or be procedural. These essentially record the blocks & models available in a world.
    • Generators have a name that must be unique (as names are used to ensure things are not loaded twice). For generators that work from a file in mats this is simply the name without extension, so the name of mats/base/foo.vox is base/foo. Things that are generated dynamically use not existing directory as a namespace, and may use a random 64-bit number for uniqueness, e.g. brush/b89462893463982468926498.
  • BlockRef - A block index relative to a generator, i.e. the Nth Block generated by a generator.

World (mostly static geometry, grid positioned):

  • Object - Model instance (model id + position). Can be looked up from an individual block location.
  • World - List of objects, these may overlap, later models will overwrite earlier, but reappear when later model removed. Also list of Generators.

Sprites (mostly dynamic geometry, arbitrary positioned):

  • Sprite - any arbitrarily positioned rendered thing that is not rendered as part of the world octree. Refers to a Model or Block as definition.
  • Particle - a sprite with no physics and a time limit that automatically removes itself.
  • Monster/Bug - a sprite with attached physics and behavior.

Entities (abstract non-geom non-physical things):

  • EntSpawn - static point in the world used for spawning dynamic things on World creation, such as a Monster.

Controllers of the world:

  • Player
  • Editor

WorldState holds instances of all of the above, and is the holder of either a world definition or a running world instance. Saving or loading these is equivalent to both level loading/saving and savegame loading/saving.