Tuesday, July 18, 2006

Essential Open Source Tools for Windows

Windows is not a platform oft associated with open source software, but we can not escape from the fact that the majority of computers world-wide run it as the primary operating system. Free game developers mostly seem to run a Linux variant, but there is an increasing number of developers on Windows who are coming around to the open source mentality without subscribing to the need to run Linux.

Some of the tools a developer will use are dictated by the chosen programming language. Outside of that, here is a run-down of my favourite tools for developing on Windows, most of which I use on a daily basis as part of my day job.

All of these programs are Free Software.


Got ideas? Freemind helps you "mind map" them into a tangible format. I find Freemind incredibly useful for both existing and new projects. It helps you intuitively organise your thoughts and I use it for developing feature plans as well as iterating new ideas into a coherent state.

When I have more definite plans and I want to create diagrams to visualise or document processes, I use Dia. It can be especially useful for helping others understand what your code is supposed to do by providing a process diagram.

Development (Editors)

I find Notepad++ to be indispensible. This multi-purpose editor has an impressive set of features yet a very small footprint and loads nearly instantly. I use it for quickly viewing and editing most source code, and use it exclusively for any kind of web design work. I even find myself missing this editor when I use my Linux machines!

WinMerge, a visual diff and merge tool, is great for comparing edited code. I often duplicate code bases to work on a specific feature in each and WinMerge is the simple solution for reviewing what I have done.

While the combination of Notepad++ and WinMerge cover all my basic development needs. If I really need a heavyweight IDE, I can rely on Eclipse. For something inbetween Notepad++ and Eclipse, you could try JEdit.

Development Tools

Some people find SCM tools a little intimidating. Those people have not yet used TortoiseSVN which makes working with SVN about as simple as SCM gets. It integrates directly into Windows explorer and is another tool that I really miss when I work on Linux.

Unimpressed by the compressed folders Windows offers as a way to represent zip files, I found 7-zip which takes care of all my file [de]compression and archiving needs. It handles pretty much any format going (including .rar and .tar.gz) which can be handy in this multi-archive-format world we live in.

And of course there is PuTTY. This ssh utility is simple but, "does what it says on the tin."

I used to use Cygwin a lot but began to find it more frustrating than productive and often using it when I would have been better researching Windows-oriented replacements.


A lot of Free games use pixel art. For this, there is no better tool than JDraw, which totally focuses on the manipulation of pixels. If you want simple art or just want to refine your smaller images, this is the tool for you.

For more complex art there is Inkscape and GIMP. Inkscape is emerging as one of the leading vector graphics editors, surpassing it's commercial counterparts in many areas. [The curiously named] GIMP (Gnu Image Manipulation Program) is the open source equivalent to the popular Photoshop. Whilst the debate on which UI approach is better will never end, recent versions of GIMP have greatly enhanced it's usability and it is a very advanced, capable, and reliable image editor.


I use HydraIRC for logging onto FreeNode. HydraIRC is the best open source IRC client for Windows that I could find. It is decent although a little rough in some ways. FreeNode is the first place to go if you want to get involved in the open source scene. Most notable Free Software projects have a channel there and you can often talk to the developers directly.

GAIM is good for instant messaging and can also be used for IRC.


I have not yet found a decent open source task tracker for Windows. Anything I have encountered has either been web-based (I'm not looking to share) or not open source.

Please leave comments with any other tools you think I've missed out.