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 ofmats/base/foo.vox
isbase/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
.
- 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
- 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.