Developers' Diary


As I’ve mentioned before, SL’s level editor is not a specialized tool; it’s [OmniGraffle]( Rather than implement every feature ourselves, we’re taking advantage of software that’s had years to develop those features. We just build the level as a graffle file, then a special Python script translates that into our level format.


I think truly great software doesn’t just *do something cool*. It does something cool *that the creators never even imagined*. It doesn’t just do something, it offers to do *anything*. This isn’t achieved by adding more and more specialized features for various popular tasks. It’s achieved by:

- Having a scope that’s narrow enough to give you direction, but wide enough to include the unexpected. (OmniGraffle deals with graphics in a structured way; its focus is neither narrower nor broader than that.)
- Including only the features which make sense for most situations *within your scope*, so that you can do *your* thing well. (OmniGraffle has lots and lots of generic structured-graphics features, but nothing that’s useful *only* for some specific case or another.)
- Being accessible to other software *outside of your scope*, so you can benefit from that software doing *its* thing well. (OmniGraffle’s file format is a NeXTSTEP Property List, which can be read into a Python data structure in one line of code. From there I can do anything I want with it; I’m pretty much unstoppable.)

It took less than 100 lines of code to get a level editor with drag-and-drop placement of objects, multiple layers, alignment guides, and hundreds of other handy features. That’s the value of great software.

3 responses to 'Bellissima'.

Comments and pings are currently closed for 'Bellissima'.