Hi,
I am finding a strong need to have specific additional properties on “placed” tiles on the map. The tiles in the tileset, to me, are kind of like classes and the tiles place on the map are like instances.
Since it seems I cannot add properties to tiles on the tilemap this is creating a significant dillema.
Do I create dozens of duplicate tiles in my tileset with specific properties I need - in a given map.
Or do I try to use the obtuse and cumbersome object layer to carry the properties I need?
These are both very difficult solutions with tons of extra unnecessary work.
Is there a better solution? Or will Tiled reasonably allow for map tiles to have separate/added properties?
The latter would be the obvious and perfect solution.
You could have another layer populated with tiles representing different numeric (or other) values - a sort of visual data layer. Each “property” that needs to be independent of the cosmetic tiles would be on its own layer. A benefit to this approach is that, being separate layers with their own tiles, you can easily visualise the values, as well as assign values en masse using selections and bucket fill, Automapping, etc - way more convenient than even per-cell properties ever could be. Depending on how you set things up, it’s even possible to save some time and memory in-engine by never loading the tileset for these value tiles at all.
If you know what kinds of properties you’ll need on what tiles/cells, you might be able to avoid the need to have a separate layer for each distinct property. For example, if you have movement speed properties only on land, and depth properties only on water, you could place movement speed and depth information on a single layer (deriving whether a given tile represents movement speed or depth from the main tiles, presumably whether a tile is water or not doesn’t need to be per-instance).
It’s also possible to do something similar with Objects instead - instead of assigning properties to cells using tiles, you could instead make Objects that cover entire zones of the map, and assign properties to them.
You can use a mix of approaches. For example, you could use the layer-with-value-tiles approach to communicate movement penalties on a per tile basis, shape objects for cohesive multi-tile areas (e.g. wind zones, mob spawn zones) and tile objects for individual/low-density entities (like NPCs and levers/triggers), and per-cosmetic-tile properties for those properties that can be the same across all instances of that tile (such as footstep sound effects).