User:Eleazzaar/terrain

See this article for the basics of the transition system

Hierarchy of Tile Categorization
Terrain Archetypes Archetypes are made up (usually) of multiple Terrain Types. Archetypes are what the mechanics part of the engine cares about. This assumes terrain has an effect on game mechanics beyond blocking movement. For instance "dirt" archetype tiles might be more conducive to stealth than "gravel" archetype tiles, though there may be multiple colors of both dirt and gravel, the mechanics of the game don't care about it. Anything below "archetype" in the hierarchy is simply for visual flavor, and has no gameplay effect.

Terrain Type A Type includes all tiles that can use the same set of transitions, and which tile seamlessly, and thus don't use transitions between them. Generic tiles, Detail tiles, Variants, and Transitions all combine to make a terrain Type. For instance all grass tiles of a particular color would be part of the same type. Grass of a different color would be a different type, but both would probably belong to the same Archetype.

Terrain Sub-type Sub-types are the lowest order of the hierarchy that a map designer deals with. For convenience users may consider individual sub-types to be either "generic" or "detail" tiles, but i don't think that the engine will care about that distinction. "Plain Concrete" and "Concrete with a pot-hole" might be two subtypes of the "Concrete" type. Sub-types don't have transitions, but are provided transitions by their membership in a Type.

Terrain Variants Variants are at the level of actual graphics. A terrain Sub-type may have multiple similar tiles that can be used interchangeably. When the map calls for an area to have the "Plain Concrete" terrain subtype, the display engine should randomly cover the area with as many "plain concrete" variant tiles as there currently are. This provides a much less obviously tessellated, and thus more natural appearance than any other tile system can.

The user is not expected to care which of the variant tiles is used in any given square. If the tiles are different enough that the user is likely to want to place them by hand, then the tiles should made a different Sub-types, rather than used as a variant for the same sub-type.