«Return to my Resume

Application Design

The following screenshots are from the mission creation tool, "Missile", I developed for Monolith Productions, for use on The Matrix Online.

The target user for this tool is familar with Windows application standards, preferably technical, but not a developer. The design aimed for long-term usability over first-time learnability.

Missile is used by mission designers to specify the items, characters, and goals for a specific quest or mission in the game.

Startup Log

Missile needs to perfrom several startup tasks before the UI can be displayed. This window shows a log of those tasks, and can be used to diagnose configuration errors. By default, the release build of Missile hides this window when the UI is shown.

World data is also loaded at startup, but as this can take several minutes and isn't needed immediately, it is loaded on a background worker thread.

Main Form, showing elements

This shows a mission loaded into Missile. The top part shows mission-wide settings, while the bottom part is the "phase editor". A mission can consist of several phases that are played sequentially.

There are three rooms in this mission, and an "NPC" (Non-Player Character, a person in the game controlled by the computer instead of another player) s highlighted in one of the rooms. The bottom right set of panels let the mission designer configure the NPC. In this case, the NPC is a group of 3 characters set up as hostile, and will chase after the player.

Main Form, showing elements (collapsed)

The mission-wide settings can be collapsed down to tabs, to maximize the space available for configuring elements and goals.

On this screen a computer is selected.

Inspecting an Element

If you right-click on an element, you can see which goals this element is hooked up to. Here, the selected computer is tied to the "Search the computer" goal.

Main Form, showing goals

A mission consists of several goals the player must accomplish to complete the mission. Each goal as one or more events. Here, the "Search Computer" goal is satisfied when the player retreives the message from a computer in the mission.

Adding an Event to a Goal

Event type selection

Several different types of events are available.

Event source selection

Most event types come from an object (though some are triggered by the player.) For events with a source, the compatible items are listed.

Detecting Content Errors

Here, a new event had been added to a goal. The event is to kill a group of hostile NPCs. In this case, the selected NPCs only appear some of the time; when they don't appear this event can't be completed. If this made it to production, the player would not be able to complete this mission.

The red bars show the data error created by this event. The tool user will not be able to publish this mission until all errors have been cleared.

Error Reporting

A list of all warnings and errors in a mission can be displayed. Double-clicking an item in this list will navigate the user to the appropriate place in Missile. (In a compiler, this is similar to clicking an error after a failed compile to go to the source line.)

Opening Missions

Mission designers can browse through existing missions to open them, and filter by author and category. It is also possible to do content searches on the currently filtered missions. (Content searches are done through XPath queries over the internal mission XML format.)

Mission Search Builder

This form shows the interface for building mission content searches.

Quick Open

This form shows the next and previous missions from the current mission search.

If there is a number on the Windows clipboard, that number is pre-filled as a Misssion ID. This lets designers copy mission numbers out of bugs and open then faster than search by name.

Perforce Integration

Perforce (website) is a source control system. Missile integrates with this system so that mission changes can be properly saved into Perforce, and assigned to the correct Jobs.

Additional Screens

Confirmation

Opening a misison will prompt the user to save the current mission. Instead of using a standard Yes/No/Cancel MessageBox, I wrote a custom comfirmation form that tries to more clearly explain what a choice means.

(Update: I have since written a better MessageBox replacement, based on proposed Windows Vista UI Guideliens. See: UserPrompt.)

About Box / Message Log

The startup log is also available in a tab in the About Box.

Preferences

User preferences. Information can be entered for integration with the source control (Perforce) and bug tracking (DevTrack) systems.