What does it take to make a game editor for designers and other game content creators? What tools must the software developers provide? How do the software developers provide these features?
Following is a list of user interface features that may be required by the content creators.
- Consistent File Handling - the open/edit/save cycle should apply to all files that the game editor works with, whether a level or a particle effect.
- Full Editing - the full suite of edit commands (undo, redo, cut, copy, paste, delete) should be supported where appropriate.
- Macros - the user should have the ability to record sequences of operations that are commonly performed, so they can be performed by pressing a single button or via a shortcut.
- Selection-Sensitive Editing - the items in a file are single- or multi-selectable and the editing functions should operate on the currently selected item(s), when appropriate.
- Customizable Menus, ToolBars, and Windows - a docking interface should be supported that allows the user to place the ToolBars and Windows and any location in the main window, leave free-floating, or close. The configuration should always be saved upon closing the editor.
- Consistent Editing - a consistent editing interface should be presented to the user when editing similar elements. For example, when a timeline and keyframe editor window is appropriate for an item, the same editor window should be used for all other cases where timeline and keyframe editing is required.
- Context-Sensitive Double-Clicking - double-clicking an element in a file should bring up the appropriate editors for that element.
- In-Editor Running - this is the ability to run the level/particle effect from within the Game Editor. Stopping the run may be required to continue editing some properties (e.g. adding a spawner to the particle effect), but perhaps not for others (e.g. editing the spawn rate of a spawner in a particle effect).
Following is a list of some developer-oriented features that may be required in order to provide the previously listed user interface features. This list assumes an object-oriented language and framework is used.
- Rtti (Reflection) - the ability to determine an object’s type at runtime; including the enumeration of all supported properties and interfaces.
- Object Serialization - the ability to write/read the contents of an Object to/from a file, memory, or a network connection. This feature is dependent upon Rtti. Also, copy/paste uses this to clone objects.
- Document Model - the ability to open/edit/save various types of game content.
- Component Model - the decomposition of the system into functional and logical components with well-defined interfaces. Components typically communicate by passing messages.
- Component Composition - the ability to group two entirely different components together to form a new component.
- Command Pattern - all operations that the user performs are encapsulated within a Command Object. This gives the ability to perform undo/redo and create macros.
The download here is a demo of these features in action. Complete code and an executable is provided. Microsoft .NET 2005 Express and Qt 4.2.0 was used.
Play around with it. It has a good collection of examples of these features.
Try typing “help;” and pressing <Enter> into the Command View’s edit box. Then, try selecting the “help;” text displayed in the Command View and right-click the selection. The Create Macro item will place a new Macro onto the Command ToolBar. The selection may contain multiple commands.
Try creating some Components, editing their properties, and saving the resulting Component tree. Then reopen the file.

No user commented in " Game Editor "
Follow-up comment rss or Leave a TrackbackLeave A Reply