Without further ado...
Thanks for taking the time to answer some questions for us. Let's start with a very broad one-- how do you see the state of Linux gaming today?
It's making progress. We're turning out to have a pretty big year, with Unity3D coming to the platform, and Valve preparing to release Steam. These are just good foundations to an awesome 2013.
As a follow up, where do you think Linux gaming is headed?
Ask me again in three months. :)
The question will be: will everyone's enthusiasm infect companies like Electronic Arts? Activision? Ubisoft?
Will it bring back Epic and Id?
Time will tell.
Recently many game developers have been quite vocal about their distaste and distrust of Windows 8. Some feel that the Windows Store will effectively shut out competition. How do you feel about the changes in Windows 8, and do you think this will drive more people to Linux for gaming and day-to-day use?
I confess to not knowing much about Windows 8, except that I think I've seen more Win8 commercials this month than I saw political ads leading up to the election.
I _do_ think that Valve is making this move to Linux _specifically_ because of the Windows Store. If your product is a store that sells software, can you survive on platforms where the platform maker is concerned with controlling (and getting a cut of) software purchases? Between Apple and Microsoft, Valve has to fight for a less restrictive platform.
If they are moderately successful, that's great for Linux gamers. If they are wildly successful, that's great for _everybody_. Someone has to push back on these walled-garden app stores that are popping up on every platform.
Now that Steam is coming to Linux do you think this will prompt other companies to port games that might not have done so previously? You have some insight here where others may not. Without giving away secret details, have you seen more interest after Valve made its plans known?
Absolutely, but there's actually a few factors at work:
- Steam on Linux, as you mentioned,
- Humble Bundle pushing really hard for Linux ports,
- Unity shipping a Linux port of their engine,
- Kickstarter being flooded with Linux customers.
There's just a lot of data (and specifically, data about money) this year, and it's motivating a lot of developers to test the waters.
Recently you worked with the folks at Humble Bundle, porting games to Linux. How has that experience been? Do you think the indie gaming scene is having an effect on Linux adoption, or at least gaming on Linux?
Humble Bundle is really great to work with. No one is advocating the Linux platform more than they are, and something like 25% of their revenue comes from Linux gamers, so it's paying out for them.
I don't know if the indie gaming scene is having an effect on Linux adoption, per se, except when we think about Humble Bundle, we tend to think about the Humble _Indie_ Bundles. And these have given developers several million reasons to be interested in Linux. :)
I think we're starting to see overlap between indie and mainstream games. The definition is getting really blurry. Torchlight 2 is an "indie" game, but you wouldn't know it if you stumbled upon it on Steam. Many would argue it was better than Diablo 3.
I think, ultimately, the thing that sets "indie" games apart from Big Publishing is...heart. Even the successful ones aren't churned out for a paycheck. Someone like Electronic Arts would never produce a love letter to our collective childhood like Super Meat Boy, or a narrative like Braid.
It feels deeply cynical to me: someone shipped a popular World War II game! Here comes Battlefield 1942, Medal of Honor, Call of Duty. Oh crap, Infinity Ward just shipped Call of Duty 4: Modern Warfare! Let's update all these other franchises to recent times.
It's like that Battleship movie, right? Transformers was awful but successful, so let's see what other kid toys we can turn into low-content, high-explosion Hollywood blockbusters.
So: what effect will it have? What did Orson Welles do to stop Michael Bay?
I think you're asking the wrong thing: the sea change isn't the indies that can be downloaded, it's the downloading itself. A lot of the risk aversion that I'm mocking the publishers for is built in to retail distribution: you have to press disks, ship them around the country, bribe Walmart to put it on their shelves...spend two years and forty million dollars and pray you make your money back in about two weeks. That's a brutal system.
But! A smaller, more personal game that just takes up a few megabytes on a server somewhere? The cost of distribution is close to zero, so even a poor selling game can make its money back on XBox Live Arcade or Steam or PSN. Now you can get games like Papo y Yo, which you probably wouldn't have ever seen a decade ago.
One of the major reasons publishers and developers give for not releasing a Linux version of their games is that the demand doesn't justify the extra development cost. Having been involved in this process numerous times to do this very thing, what do you think about this stance?
I think it's short-sighted. A one-man team--me--can take a completed game and port it to Linux. Usually this is pretty fast and cheap.
If they had concerned themselves with portability right from the start, there would be no problem at all. Maybe have a single Linux (or Mac, or whatever) developer on the team, who would be responsible for that platform but otherwise is just building the game the same as everyone else. No doubt some of their time would be spent on platform-specific issues, but this cost would be amortized into the project. Also, as they find bugs that are exposed through cross-platform development (which are otherwise hidden until your customers find them for you), it's possible you save time and money.
Blizzard has a handful of Mac developers that maintain all their titles in a similar fashion. It's an insanely small portion of their devteam, and it's clearly been profitable for them.
What was your favorite project to work on?
Google Earth. This wasn't a game, but living under a desk at the Googleplex for a month was an amazing experience. I miss it sometimes.
A close second would be Unreal Tournament 2003. I was working out of Epic's offices in the weeks before the game shipped, trying to get the Linux version onto the retail disc--which we did! It was the first time I felt like a real game developer.
I never kiss and tell. :)
While each port has to be different, what is the general process for porting a game to Linux? How many hours are put into a project on average? Do any games come to mind that were much easier or harder than you expected?
They are all wildly different. I've ported games in twelve hours and twelve months.
The general process? Get it all compiling. If something won't compile and it's not trivial to fix, plug in a printf("come back to this later") and keep going.
Once it's building, you get a flood of "come back to this later," usually followed by a crash, and you start fixing those things one by one. Some of them are simple, some of those are the completely missing renderer.
Porting is just a process of overcoming obstacles until you've run out of obstacles to overcome. It's hard to predict some things until you run into them. There have been projects that were almost done, but then we realize some piece of tech is totally missing and we have to take heroic measures to play that missing cut-scene movie or whatever.
What one game would you choose to port to Linux if you had nothing in your way?
Shadow of the Colossus.
What are you currently working on?
With Steam launching, I've lost count.
Killing Floor and Red Orchestra were just announced the other day, though: https://twitter.com/TripwireInt/status/267019840265523201
There are others in the pipeline, but I've gotten in trouble for prematurely announcing things before. :)
Which Linux distribution do you prefer?
Currently: Ubuntu. It just works, and I don't have to think about it much.
I used to be a Slackware fanboy back in the early 90's, though, does that count?
A while ago you tried to get Linux to include something like Apple's Universal Binary in FatELF. Some reacted very negatively to it and it wasn't merged. Has that changed how you approach patches to Linux? Did it effect your recent proposal to Gnome for improved fullscreen support on X?
The thing about FatELF is that I was completely blindsided by the reaction I got to it. It's not a big change in the first place, and didn't disrupt existing systems at all, but added an interesting piece of functionality for almost zero cost. I was well-researched on the topic, built a lot of it upfront, and even had a whole proof-of-concept virtual machine ready to download. I didn't want to look like a n00b when I showed up to make my pitch, because it's the Linux kernel, and this is the Big League.
But man, I encountered some hostility. It was weird, it was like being in junior high school again and getting picked on by the cool kids in the lunch room.
Maybe I'm just sore about it; people can judge for themselves from the mailing list archives.
I have a whole list of things, like FatELF, that I'd like to build someday. Make the Linux system better in various ways. FatELF just seemed like a good place to start. But I walked away from that failure thinking, "why would I want to cooperate with these people?" I considered moving to Mac OS X full time. Eventually I calmed down and adjusted my list to prioritize things that didn't need patches to other projects.
So Sam Lantinga is working for Valve, and Valve is using his SDL library for their games. This is great. One of the things they wanted to work better is fullscreen games. Right now it's sort of a mess. The application takes over the screen, changes the resolution, and maybe crashes, leaving your desktop mangled, or maybe cleans up and leaves all your windows crunched down. The problem is the wrong thing is in charge of the resolution change.
Sam and I went back and forth a million times trying to find a "right" way to make this work, and decided the only thing that would be correct is a formal spec to let the Window Manager handle this. I wrote it up, posted it, and held my breath, waiting to get beat up again.
Certainly there were points of contention, but overwhelmingly, the consensus was that There Is A Problem and This Isn't A Bad Solution. Turns out that the community you're interacting with is an important factor. I was way less researched on this spec than I was on FatELF, but the members were way more welcoming. All their feedback is incorporated, and the spec is way better than my initial draft because of it. We're almost ready to start patching software.
I don't think I'd have even tried if Sam and Valve hadn't encouraged me to do it. Maybe I'll start submitting patches again.
On a related note, they're talking about merging FatELF into Haiku, believe it or not. I wish I had gotten a response more like this one:
So, uh, nothing ever goes to waste, right? :)
Beyond FatELF and your recent proposal to Gnome, what other changes would you make to the Linux stack to make game development and porting easier?
We need need need a better OpenGL debugger. ApiTrace is a good start, but it's only a start.
I've gotten a lot of use out of ioquake3, and I know thousands of others have as well. How's the work on iodoom3 going? When can we expect a release?
iodoom3 is pretty much stalled at the moment. Everyone is busy doing other things. I would like to say we'll get to it eventually, but I think everyone was much more passionate about Quake 3 than we were about Doom 3, and it shows in our revision history.
What are your top five games of all time, on any platform?
Oh god, it's like trying to make a mix tape. You want to seem cool and ironic in your choices, right? ("Pong.")
- Super Metroid
- Another World/Out of this World
- Guitar Hero II
If you ask me tomorrow, I'll give you a different five, though.