The land builder is a model editor that built up from a basic model editor. It was originally inteded purely as a content creation source for a game, but proved to be far more interesting.
Through the use of the buildsystem, the program is checked out, built, made into an installer, installed (to a test location), unit tests run, and uninstalled automatically. This has proved to be very useful, and a nice feature to have when testing major changes.
Integrated into the land builder is cppunit, a c++ unit testing framework. This is integrated into the program so that the unit tests can be run via command line parameters
This means the system tests are run using the exact same code as during normal execution. Currently only certain core components are unit tested (eg: thread primitives, mesh objects).
Built entirely around an interface drive component architecture, it is heavily multi-threaded. The core system has been designed from the start to be thread safe.
The use of threads makes for interesting debugging, so the use of unit tests is imperative.
Designed to be a COM type system, all objects in the program are interface driven reference counted objects. This simplifies memory allocation, and allows implementation to be completely seperated from the interface.
Interfaces can be invisibly attached to another interface. This allows legacy implementations to be maintained using dummy routing objects, which transform the old interface into the new interface. This means older code doesn't need to be rewritten (or even rebuilt). As the interface is attached invisibly, the new implementation isn't dirtied by having to maintain alternate interfaces (so long as the old interface can be routed through to the new interface).
22nd July 2004
Uses the buildsystem to build. Release builds now work correctly (after fixing several threading bugs), and an installer is generated.
The web page is underway!
19th April 2004
Start of web page.