This article relates to the game "Dota 2". Click here for more information.
This article relates to the SDK/Workshop Tools for "Dota 2 Workshop Tools". Click here for more information.
This article's documentation is for Source 2. Click here for more information.

Dota 2 Workshop Tools/Level Design/New Tilesets

From Valve Developer Community
Jump to: navigation, search

English (en)中文 (zh)
... Icon-Important.png

Overview

Progression of a tile with ground, then ground plus a path, and finally ground with a path and water added.

Tilesets are VMAPS that are referenced by the Tileset editor inside Hammer. They're the DNA of the tileset system. A few default tilesets are provided as examples to use, dissect, and rename/edit to create custom ones.

The supplied tilesets reside in dota_core/maps/tilesets. Each tileset is stored within it's own VMAP file but a map can be assigned multiple tilesets. Additional custom tilesets should be saved to their specific addons.


Tileset Walkthrough

Outliner panel

The next section will step through the various aspects of a tileset and how the various components interact with each other.


In Hammer, open the radiant_basic tileset VMAP. This can be found in dota_core/maps/tilesets


Within the Outliner panel shown to the right there are several "Tileset" groups listed and within each of these contain multiple "tiles." Expanding the "Ground - Tileset" for example will reveal the individual tiles.

Notes

  • Each tile is its own group simply named "Tile." These can be named if desired; it has no effect on the tile editor.
  • The tile system is organized by grouping geometry, props, proxies, etc, under individual tiles.
  • The parent tiles are defined by which folder they are organized under (Ground, details, trees, etc.).
  • Non-ground tiles can be referenced by other groups, primarily ground tiles, for more complex procedural behavior and organization.


To see how things are organized, left click on the "Ground - Tileset" and note that the majority of the scene in the "radiant_basic" tileset is comprised of this group.


All of these tiles have various bits of data embedded in them which govern how they interact with each other within the Tile Editor.

All of these selected tiles are part of the "Ground" tileset group.

Ground - Tileset

The Ground - Tileset is the root group that all terrain tiles are grouped under and contains the basic building blocks of a tileset scene. It defines all of the available possibilities of ground tile height and contour variation, the visual style, and collision function of the set. It also defines procedural prop placement, paths, ramps, and water when those elements are combined with terrain.

Example of a basic ground tile.
An unselected ground tile.
Selected tiles highlight orange and displays height and path nodes.
  • A blue frame around each tile encompasses all tileset types.
  • While in Group selection mode, left click LMB on an individual ground tile frame. The tile frame will turn orange and reveal a few key inputs such as height and path nodes (covered below).
  • If frames and nodes are not displaying, press Shift+O to toggle Editor-only object visibility


Height Nodes

Height nodes are displayed as small cyan squares at the corners of selected tiles. Height nodes define the corner heights of each tile defining valid connectivity between all of the tiles.

Height nodes can be raised or lowered by specific increments


Left-click LMB drags them up or down in increments of 128, from an origin of 0 to 768.


Currently ground tile corner heights are limited to a max distance of 384 between any two corners sharing a tile edge. This is intended to keep the number of required ground tile variations to a reasonable number.


Path Nodes

Displayed as small orange circles at the corners and mid points of selected tiles. They define path directions across tiles that have been visually authored to serve as path variations of non-path tiles.

The circled path nodes shown here are enabled, thus solid. Note the other six disabled nodes.


  • Left click LMB path nodes to toggle them on or off.


An example ground tile with combined height and path node definitions. The top half retains a normal ground tile look while the lower two edges are marked as path necessitating a smooth incline and stairs model.

Proxies

Proxies are the blue question marks placed at various positions on tiles or nested within other proxy groups. Proxies are variable instances that can randomly load a detail variation from a classified group. There are two types of proxies, Tile Proxies and Group Proxies, which are covered below.

  • When selected, Show Preview can be checked under the Object Properties panel (lower-right sidebar), which will enable the preview reticle at the origin of the entity.
  • Mouse-wheel with the reticle highlighted (small grey square under the question mark) to scroll through the available variations for the selected proxy. Also under Object Properties for each proxy is a probability (to appear) variable. 0 = never / 1 = 100%.
Various proxies on a set of tiles.
The show preview option to see

Tile Proxies

Tile proxies are an integral part of ground tiles, useful for aligning procedural object lookups to terrain height change contours. They reference tile categories from the details-tileset folder in the outliner.

For this example a detail tile can be used.

  • From the 'Tiles' menu, choose 'Create Tile Proxy'.
  • Under Object Properties Alt+ Enter, a Tile set category can be chosen from the drop down at the top of the list. (See images below)
  • For now, a details tile category will be chosen.
A newly created tile proxy with undefined Tile set category.
Once a category is chosen the proxy will reference it visually.
The Tile set property tab now displays specific choices for the chosen tile category.
  • With details chosen under the Tile set pulldown, new fields become available that are specific to the chosen tile type. (See the above right image)
  • All proxy types have the probability field that allows them a lower chance to appear when used within the editor.
  • The shape field (seen above right) is specific to details tile proxy types. It consists of category Values that are definable by the user.
  • For information on creating these category Values see Details - Tileset below)


Shapes are a combination of a set of procedural groups, plus a user defined, ghosted geometric shape (generally a section copied from a ground tile for height profile reference), and allows tile proxies to be precisely matched along walls, or inner and outer corners. They can be given custom classifications and placement rules to keep them flexible to suit the needs of custom ground tile contours.

Tile proxy sources can be defined as catagorized rows of tiles that contain objects, other proxies, and a ghost image referenced from a mesh (seen at the lower left).
This placed tile proxy is referencing the catagory in the image to the left. This is an example of the ghosted geo being used to align with a specific terrain configuration.

Group Proxies

Group proxies are useful for loading variable single objects or simple grouped objects from a larger group.

  • With a desired set of objects selected, press Ctrl+G to group them, then with that group selected, choose 'Create Group Proxy' from the Tile menu in the top left.
  • Once created this entity can be placed, grouped under tiles, or duplicated to other tiles.
Eight fish are all grouped under one group proxy which will choose one of them either entirely randomly or based on their probability.

Details - Tileset

The details - tileset folder is used to categorize tiles that are referenced by other tile types (eg. Ground, Trees, etc.) Detail tile proxies are generally clumps of environmental props that are created to align with cliff edges, tree bases, etc.

Categories can be added or removed with the properties tab.


In the above image, The radiant_basic tileset has a shape Property defined (left field), which contains different values for tile proxie groups (right field).

  • Shape contains Values (groups) of variations for parallel usage , and thus share ghosted geo for reference.
  • Shape values can be added or edited from the Tile Set Properties tab by left clicking LMB details - Tileset in the Outliner (upper right in hammer UI), and pressing Alt+ Enter. (See image above)
  • Edit Values with the Add Value+Remove Value buttons at the bottom right of the tab. (removing Values will break any associations with tile assignments)
  • Value entries can be double-clicked to rename them. (Renaming them will automatically update any tile assignments that reference them)


Categories can be added or removed with the properties tab.


Above, once Values have been edited in the Tile Set Properties tab for the details-Tilesets group, they can then be assigned to individual tiles under details-Tileset.

Trees - Tileset

Trees - tileset contains tree specific tiles that are similar in structure to detail tiles (tile proxies). These do not need to be referenced by other tiles since they are sprayed down in the tile editor with the tree tool.

Tileset new trees properties type.png
Tileset new trees properties size.png

In the above images, the Trees - Tileset has a type and size property defined (left field), which each containing different values (right field). For tree behavior in the tile editor, size and type are used together. So there will be a small/medium/large version of trees within the pine_summer category.

  • Values can be added or edited from the properties tab by left clicking LMB Trees - Tileset, and pressing Alt+ Enter.
  • Edit Values with the Add Value+Remove Value buttons at the bottom right of the tab. (removing Values will break any associations with tile assignments)
  • Value entries can be double-clicked to rename them. (Renaming them will automatically update any tile assignments that reference them)
Tileset new trees type size assign.png

Above, once values have been added in the Tile Set Properties tab of the Trees-Tileset group, they can then be assigned to individual tiles under Trees-Tileset.

TreeDetails

This folder is user defined and does not have a specific role within the tile system. Various user defined folders like this can be added when needed to any tileset scene to keep non-grouped elements from cluttering the Outliner. In the radiant basic tileset it exists simply to organize individual elements used as proxies within tree tiles.

Plants - Tileset

Plants - tileset contains plants and rock tiles that are similar in structure to detail tiles (tile proxies). These are not referenced by other tiles since they are sprayed down in the tile editor with the plant tool.

Tileset new plants properties type.png
Tileset new plants properties water.png

In the above images, the Plants - Tileset has a type and water property defined (left field), which each containing different Values (right field). For tree behavior in the tile editor, type and water are used together. So there will be sparse / moderate / thick versions of plants that are either standard, or set for use in water.

  • Values can be edited from the Tile Set properties tab by left clicking LMB Plants - Tileset, and pressing Alt+ Enter.
  • Edit Values with the Add Value+Remove Value buttons at the bottom right of the tab. (removing Values will break any associations with tile assignments)
  • Value entries can be double-clicked to rename them. (Renaming them will automatically update any tile assignments that reference them)


Tileset new plants type water assign.png


Above, once Properties or Values have been edited in the Tile Set Properties tab of the Plants-Tileset group, they can then be assigned to individual tiles under Plants-Tileset.

PlantDetails

This folder is user defined and does not have a specific role within the tile system. Various user defined folders like this can be added when needed to any tileset scene to keep non-grouped elements from cluttering the Outliner. In the radiant basic tileset it exists simply to organize individual elements used as proxies within plants tiles.

Props - Tileset

props - Tileset is used to categorize prop tiles. Prop tiles are not referenced by other tiles since they are placed in the editor by the prop tool.


Categories can be added or removed with the properties tab.


In the above image, Props have a type Property defined (left field), which contains different Values (right field).

  • Values can be edited from the properties tab by left clicking LMB details - Tileset, and pressing Alt+ Enter.
  • Edit Values with the Add Value+Remove Value buttons at the bottom right of the tab. (removing Values will break any associations with tile assignments)
  • Value entries can be double-clicked to rename them. (Renaming them will automatically update any tile assignments that reference them)


Tileset new props properties type assign.png


Shown above, once Values have been edited in the Tile Set Properties tab of the Props-Tileset group, they can then be assigned to individual tiles under Props-Tileset.