An Interview with Ryan C. Gordon
Ryan C. Gordon, also known as Icculus, is the one responsible for creating native Linux and Macintosh ports for a number of different popular games on the market. Some of the games he has worked on have included the Unreal 200X series, Call of Duty, Medal of Honor, America's Army, Postal 1/2, Battlefield 1942, and Serious Sam. Ryan is also the system administrator for over 100 open source developers that work on a countless number of open source projects. Icculus also maintains icculus.org, which is the home to a number of open source projects, hosting of different news items, and a number of different homepages. Read on as we speak with this very intriguing Linux developer.
Phoronix: Icculus, are you able to tell us a bit about yourself (when you are not involved with one of your Linux projects) and how you got involved with computers?
Icculus: I'm always involved in something. In many ways, my projects define me, both in
terms of my day job, and the itches I have to scratch so I can sleep peacefully.
I'm mostly recognized by the games I've worked on, but I'm much more pleased with
the tools I've built, and the libraries I support that help _other_ people make
cool things.
I'm currently living in Raleigh, North Carolina, and work as a freelance developer;
mostly I'm associated with Epic Games, but that's not really accurate. They're
one of my favorite contracts, but what I do for a living is somewhat like mercenary
prostitution...I spend a lot of energy trying to find games to bring to alternate
platforms, like Linux and MacOS, and in my free time, I work on various open
source projects, and other freebies like that...so I guess I'm a hooker with
a heart of gold, sorta. My childhood was totally uneventful, so I won't bore you with it.
Phoronix: Where did you receive your formal education for computers and how long have you been into Linux programming?
Icculus: I've been using Linux for at least 10 years now, having switched from OS/2...originally
because it had some wicked-cool features that DOS/Windows/OS2 couldn't provide,
and partially because it had a free C compiler. I was surprised to find that what
I called "EMX" on OS/2 was the same thing on Linux, only better. I didn't
have a concept of "open source" or "free software" even when
I was writing some myself, so that wasn't originally a selling point for me...it
just seemed like What You Did if you could, so it's what I had always done to
that point.
I never received a "formal" computer education. I took AP Computer
Science in high school, but really, that's a joke. I was working on how to coerce
my programs into sending IPX packets while everyone else was struggling with
"Hello World" in Turbo Pascal, which was a "serious" language
at the time, I guess, as far as public school believed. I hear that after that, the school switched to C++, so just to be clear, public
schools haven't really improved their curriculum, they've just kept searching
for credibility at the expense of their students. Giving new programming students
of any age a "respectable" language isn't so much throwing them in
a lake to see if they'll swim as it is throwing them off a cliff to see if they'll
fly. They should swallow their pride and give them Logo or something similar.
If they think that's not cool enough, then they should remind them that this
is possibly the last time that programming will be about creation, exploration
and fun. Debugging yet-another-linked-list-implementation really stopped feeling
l33t almost immediately, in my opinion. Considering that even undergraduate Computer Science sucks pretty badly in
most colleges, I'll tell you what I tell everyone: teach yourself. The internet
has abundant quantities of information that is directly applicable, tools everywhere,
entire books of theory and practical application, and examples of code from
the best programmers on the planet...all for free. If you're in the right IRC
channel, you might even talk directly to the best programmers on the planet.
The only extra you get at school is an underpaid teacher that has to split his
attention between three promising students who are probably better than the
teacher, 12 average students, and five students that are drowning and haven't
figured out that quitting right now is the best thing they could possibly do. Also, if you don't have the discipline to teach yourself, you won't have the
discipline to better yourself in this ongoing realm of knowledge, which means
you'll forever be at best mediocre, and at worst, a liability. Might as well
figure that out early by diving in on your own before plunking down the cash
for tuition. For what it's worth, I majored in English and Drama at a small, liberal arts
college. They didn't even have a Computer Science major. I like theatrical lighting
and literature and teaching, none of which I felt I could learn fully on my
own.
Phoronix: Looking at your site (icculus.org) there are quite a few active projects listed there along with hosting of homepages and mail for different people. What inspired you to start all of these services?
Icculus: I'm always building community. It's very important to me. I like being surrounded
by capable people and I like finding ways to better the world around me. We might
not be curing cancer, but there's a lot of good stuff that comes out of icculus.org.
On the other hand, I'm a god-awful control freak. We joke that icculus.org
is "SourceForge with Soul", but really, we just hand pick the projects.
I probably turn away 99% of the people that ask for project space. I'm running
out of polite ways to say "you'll never succeed with that project"
and "that project sounds totally lame." There are too many people
that start building something interesting, and then get bored or overwhelmed
or distracted and stop...then they've helped no one. I recognize that open source
could theoretically just get a new maintainer, but in reality it doesn't work
like that. SourceForge is largely a graveyard of abortions in this sense, and
it's not SourceForge's fault, really. Well, not directly. I mean, don't get
me wrong, I've got a hard drive full of "intellectual exercises" too,
but having the fortitude to finish something, or at least get it to a semi-useful
state before ditching it is something I look for, no, something I demand before
I'll make the project part of icculus.org. I've gotten pretty good at sniffing
these projects out now...the "me and my friends are totally going to make
a game engine better than Doom 3, can you put this one header I wrote in CVS?"
emails are a dead giveaway. Other projects sound better, but don't "fit
well" with icculus.org...I don't have a solid metric for this, it's just
impulse on my part. Even still, our failure rate is probably close to 50%. I'd love to see where
SourceForge lands on that scale if even an elitist prick like me can't weed
out half the failures.