Setting Up a Cross-platform Game Development Environment

Setting Up a Cross-platform Game Development Environment

If we are going to make a cross platform game engine, then we need to have the right environment to do so. We need editors, compilers, and build management software at a minimum, and we ought to have source code revision control software as well. We need tools that will make things simple for us, but still give us the flexibility to create the programs we need. There are different ways to do this. We could, for example, use a cross-platform IDE, such as Code::Blocks, which provides a great deal of the needed functionality in one easy to install package. I’ve not used Code::Blocks myself, so I can’t really say anything about it other than it is very popular. I’m going to give it a try soon, but for now I’m going to stick with tools that I know: Emacs, GCC, CMake, and Mercurial. These tools all run on Windows, Linux, and MacOS, they are all very powerful, and together they will provide all the functionality we need for our base development environment.

This article is mostly about the rationale for using each of the tools, and some simple instructions for installing them, including notes on a few potential gotchas to be aware of. I’ve split it up on multiple pages to make it less crowded.

I provide basic installation instructions for Fedora and Ubuntu Linux, as well as Windows, but it is quite possible that on a Linux distribution you will already have everything installed by default. Also, be aware that instructions for Fedora should also work on RedHat Linux, CentOS, and possibly other distributions that use yum for package management. Likewise the Ubuntu instructions should work on Debian Linux and other distributions that use apt.

A quick note of caution: I currently have Windows XP, not Vista or Windows 7, so if my Windows instructions don’t work for you, I’m sorry. I’ll upgrade as soon as I can afford it.


  1. Wow, awesome timing. You’ve published this and your later article on CMake as I’m embarking on this very task. Thanks for the articles!

    • You’re welcome. I hope the information is useful. I’ve never written for others before, and I’m still learning this stuff myself, so I’m not sure if I’m really presenting things in a way that others can use. I’m trying, though.

      My next major post is probably going to be presenting a sample program that is a Mandelbrot set viewer. It’s not a game, of course, but it demonstrates using SDL. Benoit Mandelbrot died this past week, so I was inspired to create it in honor of his work.

Comments are closed.