Guerrilla Tool Development
Page 1 of 5
<1 | 2 | 3 | 4 | 5>
Single-page view
Guerrilla Tool Development

I have a weak spot for cool game development tools. Not the IDE, or art or sound tools – I mean the level editors, AI construction tools – those that developers develop specifically for their games. Those that you know could help you multiply your content, and craft your game just a little bit better.

Level editor

Unfortunately, if you work on a small team, developing sophisticated tools like that is pretty much out of the question. That does not mean you have to hardcode everything, though. Here I will give you some ideas for getting tools for your game on a tight budget.

Know your content creation tools inside out

Before you even think about developing customised tools, it is extremely important to know your content-creation tools extremely well – even if you are not the content creator. Often, some game specific functionality can be obtained from a content tool with a little bit of tweaking (there is a section about that below).

As a programmer, you should focus on the following features:

Automation

Many art tools support some kind of batch processing. This is of course very useful for repetitive tasks, but more importantly it is useful to enforce consistency. One of the most common human errors is to perform repetitive tasks incorrectly; automating this process avoids this kind of error altogether.

Data driven design

This goes hand-in-hand with automation. Not only does data-driven design avoid repetition and error, it also makes it a lot faster to change content – either the detail (data) of a specific element, or the design in bulk. Data driven content can also be multiplied with relatively little effort; especially if you design content to be naturally combinatorial (that is – you can mix and match components).

Data-driven techniques are particularly useful for interface art (buttons, icons, etc.), especially since most games do not use custom widgets available through the operating system.

Extensions

The more you can extend a tool – and the easier it is – the more you can customise it for your specific usage. If you can extend an application, you can basically turn it into anything you want. Here are a few questions to ask:

  • Can you traverse the objects in the file?
  • Can access object properties?
  • Can you access primitives (pixel colours, vertex positions, etc.)?
  • Can you read and write files?
  • Can you access external libraries?
  • Can you access the application functions?
  • What tools (brushes, selection tools, etc.) can you emulate?
  • Can you build a GUI for your plug-ins?



Words from the readers
Hmm, thanks for spotting the typo; I'll ask Chippit to fix it...
Posted by ht at 18:34:34 on 06 November 2009
Small error on page 1 'can you write and write files?', but I enjoyed the article and found it quite useful
Posted by edg3 at 21:30:24 on 04 November 2009
Thanks! The Game Maker idea actually comes from one of Danny's articles for NAG (quite a while ago), I think it was about data driven design. Before then, I never thought of GM as a tool for anything other than GM games.
Posted by ht at 13:58:44 on 30 October 2009
Very nice article, Herman! You've actually opened my eyes in quite a few respects, especially with regards to creative sources for level editors (those really ARE quite a pain at times!). It's particularly nice to see the suggestion for using Game Maker and the like as level editors: I actually did the same thing for one or two Flash projects that I've screwed around with, and it really does work. ;)
Posted by Nandrew at 01:21:21 on 29 October 2009
Have your say: