Our Six Gun Galaxy design team needed a tool to quickly organize, add, and edit quests. The quest entries in the database were some of the most complicated and error prone. The game also featured a hierarchy of quests, where some quests had to be completed before others became visible to the player. This KlickNation tool was built to simplify the whole process of dealing with quests in the game.
The tool is a web-based Flex application. Each game area is represented as a zoomable, infinite workspace where quests are shown in summarized boxes. These quest boxes can be dragged and arranged at will. Selecting a quest box populates an inspector where any aspect of the quest can be added, edited, or validated. There are buttons for creating pre-populated quests.
The tool communicates directly with the database. At startup, it first downloads the quests database table so that edits can be made locally and compared to the original values. Settings for entries, and the database information itself, can be exported locally as XML. When saving back to the database, the tool performs simple diffing and visual conflict resolution.
The hierarchical structure of the quests drove the need to be able to visually arrange them. Had I worked on the tool for a bit longer, I would have liked to add lines to visually link the related quests together. For quests that interacted with quests on other game areas, I wanted to have the line connect to a "portal" object, which would function as a link to the associated quest. The zooming, infinite workspace was not difficult to build because it was very similar to the interface I made in Flex for my previous employer. Data validation, on the other hand, was tricky. Some fields were not implemented in a very structured way. One field was a series of comma-separated groups of number lists, where different values determined how many commas before the next grouping.
- Flex Web App
- Infinite, zoomable UI
- New quest creation
- Visual database editing
- Data validation and hinting
- Related data could be hidden to simplify editing concerns
- Settings and data exportable to XML
- Diffing and conflict resolution