Mark de Wever <ko...@xs4all.nl>: > Personally I think the map editor should stay a map editor and we better > start a separate scenario editor.
I understand the impulse. But, sadly, a general scenario editor is an unachievable mirage that would only get in the way of achievable improvements. I learned this the hard way on a different project. I once spent a significant amount of time over several years trying to figure out how to write a visual editor for heraldic achievements (coats-of-arms). A visual pick-and-place editor isn't hard, but heraldry has a parallel representation is a restricted dialect mixed from English on Old French called "blazon", which is (in effect) a structured declarative language. Here's an example of blazon: Argent, on a chevron gules between three leopard's faces sable three castles. It describes this image: <http://penelope.uchicago.edu/~grout/encyclopaedia_romana/britannia/anglo-saxon/flowers/images/blazoned.gif> Ideally you want your heraldry editor to simultaneously modify a visual representation and a structural description that can be used as a deep structure for generating blazon. In this case the blazon (or, rather, the structure tree representation from which one might generate blazon) is closely analogous to WML; the visual information is analogies to a map. The heraldry-editing problem is similar to but simpler than the problem of editing WML markup through a purely visual interface (that is, without cheating and opening a window on the textual WML representation). It's simpler because blazon blacks branches and loops (it does have something like variables, or at least backward references). I concluded with regret that there is no good solution. Gestures in a visual interface simply are not a rich enough primitive set to capture even the primitive structures of blazon. They would be even more inadequate to cover WML, which is Turing-complete. To see why this is in the WML case, imagine trying to express an if-then-else in the underlying WML using gestures over the map. You can't do it - just the sublanguage required for expressing the gaurd part is too hard. Thus, I believe design effort spent thinking about a general scenario editor is wasted, and any planning based on it is futile. We'll never get away from editing scenario WML at the markup level; the only realistic goal is to enable visual editing of the parts that actually do fit well into a point-and-shoot interface, and enhance WML so we can separate those parts out of the procedural markup but link them back to it. > > There are two main goals associated with these features: > > > > A) What *can* be edited visually *should* be, in the map editor, > > in order to reduce the complexity of (the quasi-procedural part of) > > scenario WML. > > Where does this stop? eg placing units can be done visually as well. (Not > meant sarcastically, but a serious question about what we want to > achieve to do visually.) It doesn't stop anywhere short of what is possible. This probably does include placing units. But, as I explained above, there are fundamental reasons that visual-gesture editing will *never* cover our entire problem domain. > > These design goals enable the following meta-goals: > > > > I) As much of the complexity of scenario design as possible should be > > moved from hand-crafted WML to representations that can be > > visually edited, to simplify the design task. > > How does this differ from point A above? Different emphasis. The meta-goals were intended an outside-in vuew from a content authors point of view, rather than centered on what developers know about the primitive objects in the system. Perhaps I didn't express this very well. > I think we should add an additional design goal instead. > Make it possible that the editor opens a scenario file to load all > related data and can write it properly back, without making a mess of > the WML. I don't want to try to go there. Designs that try to mix tool-centered editing and editing of the same data unit by hand are *notoriously* bug prone. One problem is that human beings have a pesky habit of hand-hacking the parts that the tool "owns" in ways that they don't realize violate the tool's expectations, leading to cascading damage when the tool is next applied. I think it's better to have a clean separation between things the editor owns (the .map files) and things that humans edit (the .cfg files). -- <a href="http://www.catb.org/~esr/">Eric S. Raymond</a> _______________________________________________ Wesnoth-dev mailing list Wesnoth-dev@gna.org https://mail.gna.org/listinfo/wesnoth-dev