Technical Design

Logic Graphs

THQ Studio Australia used a visual scripting system, known as 'Logic Graphs'. A technical level designer writes templates for the use by the rest of the design team. Anything from simple timers and counters, to more complex props such as automated gun turrets.

Prop Templates

As Technical Level Designer, it was my responsibility to create prop templates that could be used by the entire design team. Templates are a collection of game props set up in a predefined state, for ease of use. Below is an example of an 'Enemy Encounter' template, consisting of triggers, spawn points and internal Logic Graphs.

Level Pipeline

At Krome Studios, exporting level designs from 3D Studio Max to the game engine required multiple steps and a custom exporter.

I wrote MaxScript tools that reduced the process to one button click, and other scripts for common tasks Level Designers performed. These tools automated the pipeline and reduced the mesh compile/export process from minutes to seconds, giving Level Designers the ability to rapidly prototype designs.

Editor Props

Here are some of the 3D props I created for use in Krome Studios' inhouse level editor.

These 3D "icons" are simple, brightly coloured and follow a specific colour scheme, allowing designers to easily work with these props in detailed 3D environments.

Game Scripting IDE

The Krome MK3 engine uses a custom scripting language, used by level designers for triggering events and scripted sequences etc. See more about MK3 scripting at the Playstation EU Blog (Blade Kitten: Behind The Code).

Scripts are usually short and self-contained, however the latest project had a much larger emphasis on scripting. With improvements to the language and with script files now hundreds or thousands of lines long, I decided a better scripting environment was required.

I chose Programmer's Notepad for our scripting environment. It's open source, highly customizable and made it possible to implement the following features:

Perforce Integration

Krome Studios used Perforce for source control. Being able to check-out, submit and diff individual script from within Programmer's Notepad made the scripting process far faster.


The following were generated for autocomplete keywords:

Below is an example of autocompletion of animation names. Lists of keywords were extracted from game data files and added to the keywords XML file for Programmer's Notepad whenever users updated from Perforce.

Help Popups

Every script command had a list of available arguments and a brief description of how it works. However this information was only available in the game's help console, or in the code project (.cpp files). Making this information available while scripting made the process much easier.

Below is an example of the program I wrote for showing help popups. The user highlights a script command then presses a shortcut key to display the popup application. The highlighted command name is passed to the program which extracts relevant information from game code and displays it in the popup.