Original Post
Ok, I've been working on the editor for my engine (designed for strategy RPGs -- turn based or real time), and I've come to a critical design decision. Right now I've got my editor operating ala "Sim City" -- you have tools to raise, lower, level, push left, push right, etc. You can apply these deformations to either all vertices within a given radius, all matching materials within a given radius, all vertices (deform the whole map about the origin), all matching materials, or only the currently selected faces. You can also add faces using a few different primitives (sheets, cubes, and probably some others that I haven't implemented quite yet). This is simple enough. What I'm contemplating, however, is not quite so simple. Would people generally prefer something like this for maps of this type (mostly outdoors, and likely played from an overhead view), or would it be more intuitive to have a CSG type editor? I'm not really familiar enough with CSG to implement a fully-fledged editor just quite yet, but I understand the concepts well enough that I think I could do it given a few weeks (months...) The way I see it, there are a few advantages: - Easier to do BSP / portal culling. This really doesn't matter much since a simple octtree is good enough for occlusion culling in the current implementation. - By storing brushes, it's easier to quickly make "exact" changes to geometry, as opposed to the 'deform in x direction' style currently being used. - easier to adapt the engine to other gameplay styles (especially first-person). And a few disadvantages: - Lose the ability to do quick deforms about an arbitrary location in space. - Perhaps slower to develop levels of this type. So, what do you guys think? Should I keep going the way I have been, or should I try to implement a CSG-style editor? I suppose I could retain elements of both and give users the option of how they want to edit the geometry...but that'll likely make a mess of the code. Hrmph.