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.


www2 said...

for 3d art can use blender 3d (www.blender.org)...
the curent version is 2.42

Godrin said...

I've just rediscovered cross-compilation with mingw. Combined with wine and InnoSetup you can setup windows-games without even having a windows-installation (though testing is recommended ;) )

legine said...

Take a look into CODE::Blocks (www.codeblocks.org) it is a very nice designed c/C++ IDE, which works for Linux and Windows. :D

Then take a look at wxWidgets, which makes it easy to develop Games for Windows and Linux with writeing the Code once.
It is actively used by the Planeshift Project if I remeber it all well.

Kiba said...

There is now a window port for rubygame!

Rubygame is a library for creating computer games in the programming language, ruby.

I tried it out with some difficulty, but managed to get most of the sample working.

There is instruction on installing the game at rubygame.infogami.com

You can visit their site at http://rubygame.seul.org

I still havn't begin learning the API yet, but I hope to program my first graphical game soon.

Anonymous said...

cygwin is irritating, allthough its x server is very good for running colinux (also opensource). give it a try: colinux.sourceforge.net

Provide feedback:

Due to SPAM issues we have disabled public commenting here.

But feel free to join our forums or easily chat via IRC with us.