jump to navigation

Switching to Linux (and back?) December 5, 2006

Posted by Jesse in : Game Development , trackback

About two months ago, I converted my development machine into a Linux box. A few of my friends have told me repeatedly how much they love theirs, so I was really curious. Additionally, I was having a problem with my Windows installation, so it seemed like a perfect time to give Linux a shot.

I installed Ubuntu Linux, and most things have been really nice. I love apt-get and Synaptic. (Tools for easily installing programs with all of their required dependancies.) If something isn’t in the apt-get repositories for me to snag, I can generally grab an installation package or source code archive from a website and getting things installed is only a few keystrokes away. For most programs that I’m used to having around, there are free versions available that are almost as good at the originals, and in some cases, the free versions are even better.

But there are two important things that I’m not sure if I can live without.

By looking at some of the past entries in this blog, it should be really obvious that I love video games. And there just really aren’t that many games that are built natively for Linux, so I’m stuck trying to play games in wine. (Wine is a program that can attempt to run programs created for Windows.) Sometimes wine works great. I’ve gotten World of Warcraft running at almost exactly the same speed as it was in Windows. But most of the time, it doesn’t even come close to working. Most games crash out with incredibly useless error messages. A handful will run but can’t seem to get any input from the mouse or keyboard. Or they have no sound, or put out static. I have a huge list of indie games that I’ve wanted to try out, but I couldn’t because they wouldn’t run in wine.

Visual Studio
I’ve tried KDevelop, Anjuta, Eclipse, and a bunch of unmemorable products, and nothing comes anywhere near Visual C++. The projects are almost always built around a makefile that you manage yourself instead of working through the IDE, and the debuggers aren’t nearly as nice. Lately I’ve spent almost as much time fighting my tools as I have developing new features. It’s really a pain.

So I’m not sure what to do. I’m really, really happy with my Linux box, but I don’t see anyway not to just go back to using Windows most of the time.


1. GBGames - December 5, 2006

Games and developer tools seem to be the only things I hear people complain about. Most everything else is covered (except for some pieces of software needed for work that only exist because of that work).

As for games, you can try using Wine, or you can start looking for other native games. happypenguin.org and linuxgames.com are two sites that post news about games available for GNU/Linux. Some are in development, some are finished, and some are new. Obviously you won’t find as many games as you would on Windows, but it might help to open your eyes to what is out there.

As for dev tools, I’m starting to encounter problems myself. You would think that an open source environment would allow for all sorts of great dev tools, but they are really only useful if you already know what you are doing. I think Microsoft’s advantage is that it is pretty much one platform (for now), and so there is no concern about different implementations of Windows. They can provide all sorts of great tools that will “just work”, whereas creating similar tools on GNU/Linux is harder to get them to “just work”.

For instance, if you want to distribute your code and get it running on not only the various versions of GNU/Linux but also BSD variants, cygwin, etc, you would use autotools. Well, I started learning about it, and it is really not that easy to use. I can get text-based games distributed, but once I started using graphics, I hit a roadblock. Tutorials just don’t seem to exist, or at least nothing comprehensive. It’s basically a pain.

So my choice is to ignore it and learn something simpler like CMake, which means isolating myself from the platforms that don’t use it, creating my own build system, isolating myself from most everyone who expects to just do ./configure && make && make install, or tough it out, slowing down development until I learn. Eventually I will get it, though. The adantages just seem too great, and once it is learned, I know it pretty much for life.

But for now, it is a pain. I think development on Windows is also a pain, just a better-documented one. B-)

Good luck!

2. Jesse - December 5, 2006

I also found autotools to be quite gross when working with anything complicated. I mean, I love it when I can build and install apps that way, but it was a mess for me. Though I’ll admit I gave up pretty easily.

I looked at CMake, Perforce jam, and SCons, and they all seemed pretty good. SCons is what I’m currently using, and I’ll probably continue using it for my cross-platform builds in the future. (I wonder if anybody has made a .vcproj to SConstruct converter. I’ve gotta look into that.)

Thanks for the comment. 🙂