Map Editor Mirroring

Add comment!

March 20th, 2009

One of our goals is to make the Overgrowth editors simple and intuitive to use. But, we also want them to be powerful. Sometimes these goals conflict. Back when we posted the map editor tutorial video, one of the commenters, Lhorkan, noticed that it was difficult to align a symmetrical roof and suggested adding a mirror object function. This was a great suggestion. But, it caters primarily to modding powerusers who want lots of control. For casual users, I was worried mirror would just add bloat. So, I didn't want to devote a whole tool to it.

Instead, my first inclination was to just add a miscellaneous keypress that would trigger flips. Unfortunately, it quickly became clear that one button would not be enough (a basic solution would require at least three: one for x-flips, one for y, and a third for z), and this approach could quickly turn into a full fledged tool. I next considered working mirror functionality into one of the available tools. From this perspective, an easy solution presented itself. Mirror transformations, it turns out, are geometrically the same as negative scale transformations. Thus, I was able to put mirror functionality directly into the scale tool.

In the first part of the video the rocks are being free-form mirrored by right-clicking with the scale tool. In the second part of the video, the blocks are being mirrored with snaps on (just hold ctrl), thus creating identically sized mirror images.

Please feel free to watch in HD.

I like to think of the functionality of the editors as a crossword puzzle. Just as each new word in a crossword puzzle overlaps and contributes to each surrounding word, each new function of the editors should overlap and contribute to multiple surrounding functions. Mirror and scale overlap in this way. The modifier keys -- ctrl, alt, and shift -- similarly interlock. And, as showcased a few days ago, the distinction between groups and selections provides a convenient framework on which to overlay a distinction between shared axis transformations and individual axis transformations. I'm hoping that continuing in this direction will make the editors dense, but easy to learn.

What do you guys think of this approach. Do you like how the mirror tool currently works?