Development Tools

These are the (mostly) Open Source and Creative Commons tools that I use for development. 

Many of the games are developed using the serge engine. Documentation for serge is here.

 

Operating System

I'm using OSX as the base development operating system. Previously I had been mostly developing on Linux but as I started to move towards Unity development I needed to go for either Windows or OSX. For testing in other environments I use Linux Mint 13 and Virtual Box. 

Coding

I use pycharm for coding. I tried other Python development environments and didn't like any of them until I found pycharm. Everything is focussed around improving the coding experience while not getting in the way. I like the code outlining, live templates, go to definition and refactoring support. But most of all, it is a good code editor. The excellent support for Django and Google App engine really helps too.

Pycharm is the only tool I currently use that isn't open source. It costs ~$100, but is worth it. Previously I had used gedit and Kate, both of which are excellent and free. I recommend them both.

Game Design

I normally design out the games quickly using a combination of Xournal and Google Documents. I like to do initial sketching free hand using a Wacom tablet. This puts the minimum of distractions between me and writing ideas down. It also helps that things come out a bit scrappy. It is easier to let go of ideas when you have just scratched them out free hand. 

During game development I find that you need to continually refine and throw away things that are not working and so the lightweight capture of initial ideas helps with this. When you go into a nicer design package then the results look nicer but you get invested in them. 

Google Documents works well also for capturing text, ideas, bugs, features etc. The great thing about Docs is that it is available everywhere so if I get an idea away from my main development machine I can usually capture it in Docs and have it effortlessly sync with my other environments.

Graphical Design

Most of the artwork for the games is created in Inkscape. Inkscape is an SVG drawing package and it is quite powerful. I've also found it to be a little buggy but not so bad that you cannot live with it. 

I draw using the Wacom tablet or the mouse and it is nice to be able to use the splined points to refine the look of a drawing. The best thing about using SVG is that you can add as much detail as you want and then scale up or down and the images look good. I use the PNG export from Inkscape.

The other nice thing about Inkscape is that it is easy to get all your graphics in a single document. This makes updating quite easy in case you decide to apply some common tweaks to the styling of the graphics. Inkscape has some effects that are quite useful, although I have noticed that these really slow the application down. 

For touching up or more complex graphical items, like explosions, I use GIMP. GIMP works well and has lots of nice effects that you can play with. I don't tend to use it a lot though because I like the scaling properties of SVG and also it gets complex to manage a lot of graphics with layers in GIMP, whereas Inkscape makes this much easier.

 

Level Design

Where games require it (eg Exogene) I used Tiled for designing levels or worlds. Tiled provides a nice way to lay out tile or object maps. You can export the data as various formats. I use the XML format and have a simple parser that can reach this in and convert it to game objects, actors and levels.

I am just getting started with Tiled and I imaging that it will become more and more of a feature in my development workflow.

Conversation Design

I am using FreeMind for games with significant conversation aspects to them. FreeMind allows me to lay out the conversation trees and then export this as XML. I have a parse that will read this in and convert it to the Conversation tree objects in the game. 

I had a look around for other packages that do this and there are some nice looking ones around but there weren't many that ran on Linux. I'm just getting started using conversation elements and so I imagine that my requirements may develop over time as I see more of the challenges in managing large sets of conversations.

Version Control

I am using git for version control. I host my own repository and mirror parts on Google code. Previously I was using Subversion, which also works well, but git works much more smoothly.

Sound, Music, Logos and Fonts

For each game I usually need sounds, music, logos and fonts. I use the following sites,

  • Sound: FreeSound.org - this site hosts a huge searchable collection of sounds and sound effects. It has everything from burps, bombs and gurgles to atmospheric city sounds and quiet summer meadows. 
  • Music: FreeMusicArchive.org - there is an extensive amount of high quality music on this site. The music is categorized by genre and so finding something to suit your game is not that hard. You may even find some music to listen to outside of your game!
  • Logos: CoolText.com - I use CoolText to create text based logos and buttons for my games. You can do some of this in GIMP and other tools but CoolText is just a great place to go and experiment with different effects. Once you are done you can just save the image and drop it right into your game.
  • FontsCoolText.com,  OpenFontLibrary.org - I use two sites for adding fonts to my games. CoolText allows you to download the fonts from its various text logos. The OpenFontLibrary also has a good selection of nice fonts that you can browse.