Framework for Game Engine Tools
Level Editor Specification
In last week Floh sent me a mail with specifications, kudos to him for taking his time to help me.
A quick summary: Focus should be on extensibility both of the C# application in the form of specialized editor panels, and for Nebula 3 in the form of extensible command protocol (based of XML) and command handler classes (will be very basic and require implementation for new projects). Planning an undo function is important right from the beginning as it is hard to apply later.
They’ve indentified a core set of features:
1. Camera Navigation, 2. Create Object, 3. Duplicate Object, 4. Object Placement, 5. Object Deletion, 6. Some sort of generic object attribute editor panel.
A standard for providing category and attributes of available objects is needed - Nebula 3 got a database with tables that might be used - and simple wrapper classes for the C# editor to use.
“It would be great if there exists some sort of standard framework to implement new functionality. Such an extension would consist of three parts: a set of new XML commands, the C# side (UI stuff and creating commands) and the C++ side which handles the received commands.” I’ll aim to design and implement this, along with a how-to-use guide.
What he didn’t mention is a way to store and load levels though don’t think it’s optional for a level editor. I’ll include it as one of the core features and probably implement it by using XML.
I will prioritize the above first and focus on core functionality only in order to get the most important parts done first, for example only including “fps-controls” for the camera view and exclude maya-controls for later, or implementing only simple object placement functions for movement and rotation. I will do this because it is quite easy to get stuck developing one single feature further and further only because you know how and you want to.
Therefore I’ll set up two lists for the features above, one primary which covers all core functionality and a secondary for extras that give a more “whole” framework. This will be done at friday, along with a wishlist of features (excluded in this project).
Aside from that I’ve studied other commercial level editors in order to find other common properties:

The Unreal Development Kit level editor

The Hammer Editor by Valve

Spark Editor by Unknown Worlds
As well as the level editor for Farcry (thanks to Hirche).
I know that all those editors are mainly for first-person-shooters, but some of their common functionalities will probably be useful for any 3D game which Nebula 3 is intended for (these will be added to the secondary prio list):
- At least one (usually three) extra different views of the level, usually viewing the level in wireframe along an axis
- A grid with an editable size
- Snap-to functionality, objects with other objects and objects with grid
As well as some other features I will have to exclude from this project because of time limits: Basic shapes and colors, vertex altering, browsing and editing object textures.
In the rest of this week I’ll test exactly how to implement its core parts and find out possible additional features, and have most features defined and prioritized in a excel document by friday.
EDIT: Completed project plan with editor features.
Next entry: Mudbox - Maya workflow
Previous entry: Finding locations

















