An Interview with Ryan C. Gordon
Phoronix: From all of the projects you've worked on, such as porting different games over to Linux, which has been the most rewarding for you, and why?
Icculus: PhysicsFS. I suspect most people who
use it or want to use it in their projects don't actually get its purpose, but
I'm pleased with how it turned out. I think I find interface design a million
times more gratifying than actually implementing those designs, and, with PhysicsFS,
I showed a lot of restraint and kept to my vision instead of bowing to every programmer
that didn't understand what I was trying to accomplish. Since free software is
totally powered by ego, it takes a lot of willpower to tell someone that is interested
in your work that you aren't the right tool for their particular need.
My MacOS implementation of OpenAL is nearing the end of its life, since it's
mostly a collection of Altivec code that won't be useful on the new Intel Macs,
but a lot of passion and revision went into making that extremely fast. It filled
a desperately needed role before Apple stepped to the plate with their own implementation,
and it taught me a lot about optimization. Otherwise, I'm never pleased with how Toby
looks internally (hence being on rewrite #4, which I totally over engineered,
so it'll soon be scrapped for rewrite #5...ugh!). However, rewrite #3 looks
and works great, and I got an email from someone at one point who was working
with elementary kids in Belgium...he was using Toby to teach them intro programming,
which was both impressive and gratifying. None of the games are rewarding. Is that bad of me to say? Game development
has nothing to do with quality and everything to do with shipping what you can
get away with. That's just how it is; I didn't make this horrible world.
Phoronix: Currently America's Army is widely criticized on IRC channels and message boards for not coming to the plate when it comes to releasing Linux and Macintosh ports in conjunction with the Windows game release. Do you have anything to say about this matter or when we can expect the next AA: Q-Course (2.4) Linux release?
Icculus: Soon. It's in beta now. I know no one likes to wait (and really, I don't like this lag time, either), so those that are displeased can bring the game back to the store where they purchased their copy for a complete refund.
Phoronix: What item(s) are you most excited about when it comes to the future of Linux?
Icculus: Of course, the pretty: Luminocity
and Cairo...
The not-so-pretty: gcc4. The most important thing in Free Software is probably, I suspect, the least
appreciated. It will be absolutely crucial to keep gcc on the cutting edge for
at least the next five years, and we have a long way to travel to keep up with
Microsoft's "Whidbey" compiler. Anything the gcc developers need,
they should get, no questions asked. Anything that can be done to attract compiler
developers to work on the project should be done without hesitation. I'm deadly
serious about this. I also like amd64, and can't wait for this to be a common installation and
ia32 to vanish. It's a little funny watching all the MacOS developers freaking
out this week because they have to switch from an unsupported closed-source
compiler to gcc and from PowerPC to x86, when people get whole GNU/Linux distributions
running on foreign processors with so little effort...sure, it's not that simple,
but it's interesting just how far portability in open source goes, and just
how much that saves your ass with alarming frequency.
Phoronix: Of all the Linux distributions on the market, which distribution(s) do you swear by and why?
Icculus: I don't swear by any of them. They all suck in different ways.
Currently, I'm using Gentoo, because it seemed most like Slackware, which I
stayed with for many years. Slackware was great in that it did the one thing
I want my distro to do more than anything, and that's stay the hell out of my
way...the problem is that you need a little support from the distro just to
stay current...icculus.org was originally a Slackware box, and after a few years,
it really got to the point where it was impossible to upgrade any given package
from source without breaking another, or requiring new and updated dependencies,
or causing some unexpected interaction, or whatnot. Gentoo basically stays the hell out of your way, too, and Portage goes a long
way to basically do exactly what you'd have done on Slackware without having
to do it manually. However, maybe I'm getting greedy in my old age, but I don't
want to compile my packages anymore. I don't want my distro to compile it for
me either, at least not on my box, so the next distro will be a binary distribution
for sure. Also, all these distros depend on warm bodies showing up to maintain individual
packages, empowering me to install the latest bleeding edge when I want it and
picking a sane version to flag stable when I don't care; it's about having a
critical mass of volunteers to keep everything current and properly glued together...this
is actually a serious problem with the Free UNIX variants right now...to really
have a satisfying experience, you need to keep jumping to the distro that is
the flavor of the week. Two years ago, the buzz was on Gentoo, right now it
feels like it's on Ubuntu, and god knows what everyone will be excited about
in 2006. But if I have to format my hard drive more than once every five years,
I might as well be running Windows, so it's quickly getting to the point where
we need to stop pretending that infinite choice is good and start cutting this
down to a few major distros, one major desktop environment, etc. Attrition has
helped weed out a few since the dot-coms imploded, and while I understand people
being up in arms in 1999 about the concept that "Red Hat == Linux,"
it might be time to pick a distro and assume everyone is running it. Those that
aren't should consider it THEIR bug when a package doesn't work because of distribution
differences. If I were ruler of the world, I would say without bias that it
would probably be something like a very aggressively-updated Debian...which
means Ubuntu is probably a good first step. Actually, really, the goal is for all the popular software to get to the point
where you only need to upgrade your distro once a year to get new innovations,
and crucial packages get point releases, but your usual "emerge sync"
shouldn't report 15 things to update. It might even be worth bundling all these
fixes into point releases...so the end-user doesn't know or care if "ls"
has been updated unless they care to dig deeper. If you think this sounds like
MacOS X, then you're on to something. I take the constant updating of Linux
distros to be a good sign of progress, but we need to hit a point where being
on the bleeding edge on all sorts of crucial packages isn't so important...thinks
like the X server and Gnome and such. Sorry if this all sounds contradictory;
you'll just have to sort out the nuggets of truth on your own. :) Also, everyone needs to stop hating on everyone else's distro. It doesn't make
you superior; it makes you a dickweed. And none of you get to brag until Jamie
Zawinski switches back.
Phoronix: To answer the question that is on the minds of computers hardware enthusiasts, what are the components that comprise your main computer system?
Icculus: If I said "a G4 and an Airport Express card" would you throw rotten
fruit? :)
There are computers all over the place here that are collecting dust. I'm a
SETI@Home developer's wet dream, I swear. Mostly, I use a dual-Opteron 250 system with 4 gigs of RAM (those Unreal Engine
builds are killers, I swear!) for the Linux development and a 15" Powerbook
for the MacOS work...although the Opterons are obviously faster, so frequently
I end up doing a Linux port of most my Mac work first, since this moves all
the heavy lifting to the beefier hardware, and then I fine-tune and finish that
work on the slower Powerbook. Now if I could ever sweet-talk any of these people
paying me for Mac ports to let me release the Linux versions, that'd be nice. My work is backed by a Mac Mini that a salesman at the Apple Retail Store in
Durham suckered me into buying...that machine hosts a Subversion server, Wiki,
Bugzilla, DNS, DHCP, SSH tunnel, and centralized backups to a firewire drive
over rsync from all the other systems. It's the smallest form factor I could
find, since space is becoming a bit tight in here, and while I love Linux for
these sort of servers, I also hate configuring Linux on these sort of servers,
so MacOS X was a nice fit in this instance to get it running and forget about
it. It's sad that, five years ago, Linux was struggling to catch up to Windows,
and now out of nowhere, MacOS X is the one to beat...it's going to get worse
for Linux before it gets better, I suspect. The Linux box has a GeForceFX-generation card, and the Powerbook is a Radeon
9600 or something like that, for those keeping track. Right now the most important
thing is being able to run ut2004 and its contemporaries well, but I'm going
to have to move up to an NV40-level card or better when the UnrealEngine3 work
gets serious. God knows what the hell I'm going to do on MacOS when it gets
to that point. All of this is wired through a KVM switch (Gefen ex-tend-it 4x2 DVI) to an
Apple 23" monitor (if you have to stare at one for 15 hours a day, accept
no substitutes!), and a Matias TactilePro keyboard (because you're only working
hard if your neighbors can hear you type!). I don't know if any of the other hardware I have is interesting.
Phoronix: Thank you very much for your time. Is there any other information you would like to share?
Icculus: Nope. Thanks for putting up with my rambling!
If you enjoyed this article consider joining Phoronix Premium to view this site ad-free, multi-page articles on a single page, and other benefits. PayPal or Stripe tips are also graciously accepted. Thanks for your support.