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.


Not yet...


Automatically built

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.

Unit tested

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

Land Builder.exe --test

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.

Component based

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).


Dedicated buildsystem

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.

Current screenshots


xz texture coordinate mapper

Advanced render styles

Meshes are sorted by different methods

Wireframe rendering

Triangles can be selected

Selected triangles can be deformed

Another wireframe shot

Windows can have multiple views

Meshes can be refined