After running into the same problems each time I developed a visual editor for some game, I’m now wrapping selections in an ObjectSelection class. It provides basic set operations such as union, intersection or subtraction, but most importantly handles the selection of any kind of object on an abstract layer. The idea is to have a single ObjectSelection object that stores application-wide information about selected objects, be it GameObjects, Components, Resources or something else. In previous editor designs, each sub-editor maintained its own object selection – this time, it’s the job of the main editor itsself which is not just a pure design decision. By centralizing object selection, I’m also providing an easy way to keep it consistent.
When selecting a Resource in some specialized sub-editor, it will be a single function call to notify the editor which will then fire an appropriate global event; resulting in selecting that same object in a PropertyGrid, Project View and any other Resource related sub-editor. It may sound like some little “nice2have” feature but is actually the cornerstone for any kind of multipurpose sub-editor e.g. a central PropertyGrid widget for editing properties of any currently selected object.
Besides that I was thinking about a proper name for the Duality Editor; while my mind was stuck in the spheres of yin-and-yang-symbolism, a friend suggested to name it “Dualitor” and I think I’ll go with that. (Thanks, fish!) Here is a first draft of its logo. I’m pretty content with the silhouette / grayscale version of it but wasn’t able to work it out to something beyond that. My recent approaches all look somewhat like a box of toys.
If there is anyone with graphics design experience – any help would be appreciated.