Tilemap editor mirror line
Summary
We should add toggle-able mirror lines on the x and y axis that will cause any tiles painted to be echoed on the other half.
Particularly when making arcade multiplayer maps, having a symmetrical tilemap is highly desirable. As tilemap size grows, however, this is hard to maintain manually. Mirroring should be an effect that can be turned on without affecting the current contents of the tilemap so that non-symmetrical elements are supported. Only elements painted while the mirror line was active would be mirrored.
Analysis
- Greatly speeds up level creation, particularly with the use to the alt-click and drag rectangular clone support (love the feature already).
- Would have to resolve odd-count tilemap indices. Probably just isolate the center row/column.
- Should it be positional to allow localized mirroring?
Great idea!
Only elements painted while the mirror line was active would be mirrored.
Agreed. Mirror lines should be a tilemap editor feature, and I'd say it should be as easy as possible to create and remove them even while editing.
- Would have to resolve odd-count tilemap indices. Probably just isolate the center row/column.
- Should it be positional to allow localized mirroring?
Can you elaborate on them a bit more? Not sure I understand what you mean.
Here's an idea, inspired by a similar feature in a PCB designer software that I used recently.
The existing clone stamp functionality could be extended, as it could paste the copied tiles
- regularly (as before, that'd be the default)
- horizontally mirrored
- vertically mirrored
- both
Changing between modes could be done with 2 toggle switch, exposed on the toolbar, and also supported by shortcut keys (X for horizontal, Y for vertical for example).
This solution would be fairly easy to implement, and support quite a wide range of use cases conveniently.
This would indeed be an easy first solution for the problem. Still, there could also be value in having mirror lines as a general tilemap editor feature, so users can just draw things and don't have to draw + copy for the mirror effect.
Two possible ways to address this:
- Do the mirror copy tool parameter first as a low-friction implementation for "usability first aid" and add a full mirror line implementation later to supersede the copy tool parameter.
- Take more time for this and do the full implementation right away.
Both make sense. I'd leave this open to be decided by the dev addressing this.
On second thought, maybe I'm approaching the copy tool mirror parameter from the wrong angle here - it could very well become a very useful feature in its own right that could replace or co-exist with potential mirror line features. Really depends on how convenient it is implemented in the end.