-
Notifications
You must be signed in to change notification settings - Fork 0
Models
This is a work in progress, and is unimplemented
The concept of a model must first be defined. A model is a non-procedural set of blocks representing some kind of "feature". For safety, models will not be executable, but rather flat files containing the necessary information.
A model in itself does not know anything about rendering or determining placement, this is all the responsibility of the user's generation script (or perhaps, in conjunction with the spawned generator object used for terrain, if one exists).
Models need to have set attributes in order to be useful. These may include:
- Width, Depth, Height - Precalculated. Useful for quickly checking whether a model will fit into a given area.
- Biome(s) - List of biomes the model could should be allowed to spawn in. If this attribute is empty, or isn't set, the model should be allowed to spawn in any biome.
- Chance to spawn - This will likely be an identifier such as "small", rather than a straight number. It will represent the likelihood of the model spawning in an area that is big enough for it.
- Tags - A list of words or phrases, selected from a predefined list, representing the model. For example, a model of an obelisk with a monster spawner in the middle might be tagged with "landmark,structure,monster_spawner" or something similar. Worlds could then be generated while excluding or including certain tags.
Fundamentally, a model is composed of those attributes and the block definitions themselves. The exact format of the block list needs to be specified. Blocks are to be positioned relative to a corner point.
- A user wants to create a fallout-style world, complete with small, dirty towns, vaults, ruins, and more. The user has defined biomes to replicate the rocky, dilapidated world, such as desert and rubble biomes. Now, to really bring it to life, the user creates a set models representing various structures. Vaults, shells of buildings, nomad shelters, custom caves, robot plants, etc.
- Dynamic models - Dynamic is dangerous, because the more power you give the creator, the more potential to do harm to your system. This suggestion requires additional thought given to safety, but would amazing.