It’s been a long time since I’ve had a proper, native Linux desktop machine. I used to be a heavy Linux user up until about ten years ago, at which point my old Linux laptop was literally falling apart and I just couldn’t face doing another Linux laptop install, and so hopped over onto the Mac bandwagon, where I could get a nice laptop which came with bash and python pre-installed, and not have to stress about whether or not the laptop’s proprietary audio and network devices would be supported by Linux.
Linux has advanced a lot since then. And I’ve kind of been paying attention for most of that time. I’ve always had Linux VMs around during that time, which were good enough for roughly proving out that my games were (in theory) Linux-compatible. Finally bit the bullet today, though, and installed Gnome-Ubuntu onto the second hard drive of my usual Windows machine. And in a lot of ways, it’s like coming home after a very long time. And finding that they’ve spruced up the place while you’ve been gone. The whole “pray that there are drivers available” thing seems to have largely gone away. I’ve still had a couple weird software/library quirks (almost all centering around ncurses-based programs) — the sort of things which ought to work automatically but just sort of don’t, for reasons which don’t seem particularly obvious. But jiggle the wires enough (and consult StackOverflow for the really tricky things), and you get there in the end.
So there have been a few interesting Linux-related VectorStorm bugs that I’ve fixed today. Most notably, it looks like on Linux, if you have an Xbox 360 wireless controller adapter plugged in, but no controllers actually turned on, then SDL reports the presence of four controllers, and provides a NULL pointer as the name of each. Which caused the VectorStorm library to promptly fall over and die. That’s now fixed in the ‘linux’ branch on GitHub (will be merged to trunk within a day or two). Similarly, I found that I’d made a mistake in mouse wheel handling — Linux was going through the OS X mouse wheel handling code, when actually its mouse wheel is more like Windows — clicking in integer increments.
Finally, the big confusing bug that I’m still wrestling with, MMORPG Tycoon 2’s terrain looks completely different on 64-bit Linux builds than on 32-bit Linux builds or on OS X or Windows builds. All the terrain is much taller and sharper and steeper. I’m assuming that it’s a case of me incorrectly using INT_MAX in my math somewhere, or something of the sort. I can’t think of anything else that would vary between 32-bit and 64-bit builds. Am hoping to find the cause of this trouble soon. (Edit, a day later: Turned out to be PEBKAC — it looks different because I was running different versions of the code on the 64-bit linux machine than on the 32-bit linux VM)