Icculus (Ryan Gordon) Tells Us Everything - Part 1

By

A few weeks ago we had the opportunity to chat with Ryan Gordon, a.k.a. Icculus, about his experience and as a games porter and a wider range of subjects related to Linux. This was supposed to be a one hour podcast, but we ended up talking for more than 2. Why is that? Well, Ryan had so many interesting things to say that we just could not let him leave so fast. So for once we have decided to do a two-parts podcasts. We hope you enjoy this as much as we did. Just a reminder: doing this kind of podcasts is a LOT of work (more than a dozen of hours) so please consider supporting us via Patreon if you like what we do, and want us to continue doing this.

[podcast_episode episode=“3578” content=“title,player”]

Download: [MP3 File] | [OGG File] | Podcast RSS Feed

We chose to transcribe major parts of the interview, for better accessibility, but as usual the best format to enjoy the podcast is the sound file. But if you are at work, or prefer reading, you will find most of the key learnings from this part 1 below.

Ryan is certainly someone you might have heard of if you game on Linux for a while now. He has been around for a long time, supporting us right from the time Loki made commercial ports to Linux, then when Humble Bundle started cross-platform bundles, and when Valve started their Linux initiative with Left for Dead 2. The facts are known, but what matters if how and why Ryan got involved into such critical aspects of the Linux gaming industry in the first place. Let’s first start with his involvement with Loki.

Ryan Gordon: I was very interested in the idea of video games source code. Not long before the code of Wolfenstein3D by id software was released, I was pouring over that game and fascinated that someone could write this amazing 3D world that I stumbled around. Looking at the source code was like looking at the matrix. It blew my mind that you could do that. I had this hunger to find more source code to video games, and then Loki had this thing they called Loki hack, it was a contest where you would drive down to Atlanta, at the Atlanta Linux Showcase in 1999 back when it was still a thing, and they brought the source code to a game called Civilization Call of Power which is the first game that they had shipped. They made you sign all the right non-disclosure agreements, and they said *“ok, here is a computer, with the source code to the game, now do something interesting with it!”. […] . *We had 48 hours, we did not sleep. Some people added new units, I added Tetris in it, that you could play while waiting for your turn.

It was fun, everyone was sleep exhausted, we all went home at the end. This was not made to be a contest as much as a recruiting tool, because Loki said they liked what this and that person did, and they offered them jobs. Daniel Vogel came to work there, Andrew Anderson was at Loki and probably others I am forgetting right now. From there it was just like “pack up the car and move to California”. And I did, I threw all my stuff in my car, drove across the country from Charlotte Carolina which is almost at the Atlantic Ocean all the way till I literally hit the Pacific Ocean. Yeah that’s how I get started. I just never went back from there looking into this opportunity to work on all these triple-A games that like these high end games that I never would have imagined before. I remember walking into a Best Buy or something like that back when people bought their video games in retail stores. They had like our top 10 sellers. I was like “oh my god Loki has six of these ten”, shipping or about to ship. This is it, we made it! And you know we didn’t actually make it. (laughs)

Loki was the first company to port commercial games to Linux, releasing high profile titles such as Descent 3, Civilization Call to Power, Heavy Gear II, Heretic II, Quake III Arena, Rune, Sim City 3000, Tribes 2, Unreal Tournament… before going bankrupt. The Linux gaming audience was not yet there.

Ryan Gordon: It was small. It was not only was it small but it was smaller than I think they anticipated it being. I think they kind of had this attitude of “If you build it they will come”. And they did. I mean we sold products and we had people that were hardcore Linux gamers and you know you have to start somewhere. But I think they thought they were going to come in here and sell 100,000 units of Quake 3 Arena and it just did not work out that way.

Loki had a lot of problems beyond just whether the market was there or not but but you just definitely there was just not as much money going through as we would have needed. But also remember he was the dot com era people were “I put up a Web site where you can buy elephant poop, I’m going to do an IPO and be rich from this” and porting games to Linux was not the most outrageous business plan that was making money at that time. But I think it’s worth saying that when Humble Bundle started porting Linux games 15 years later whatever it was, Jeffrey Rosen was saying something like “hey there’s always someone else on the Internet that will buy your game, and throw another dollar at this”. He was basically describing crowdfunding before crowdfunding was a thing everyone did, he was describing Patreon or Kickstarter. And he was right. There was always someone else that would throw a dollar or ten at something. When you collectively find all those people you can make a lot of money you can have a sustaining business.

And Loki didn’t have a luxury Humble Bundle had is that you download stuff and you can be anywhere in the world and be a customer of Humble Bundle whereas you could pay more in shipping for a box of Quake 3 arena than you paid for the actual game depending on where you are in the country. So the economy changed, the technology changed. But I mean Loki had an uphill battle all along and that was just a good start to what we could do.

While Ryan ended up working several years later with the Humble Bundle (a small, Y-combinator funded startup at the beginning), he went off the radar for a short while. This is what happened in between.

Ryan Gordon: I moved back in with my parents. It was awful. Don’t ever do this if you have the opportunity to do so! I hadn’t lived my parents as I graduate from high school and I’ve been I’ve gone through college. I’ve been gone for a year or two after that. That’s very very weird to try and integrate back into this relationship with your parents. I like my parents, my parents like me, we don’t have a bad relationship but it’s really hard to not be a teenager and be back in your parents house. But I had no money. Loki had stopped paying us at this point so we had no savings either and so I mailed all my stuff across the country. I have an uncle who worked for an airline, he got me a plane ticket to get back to where my parents live from California. And then I got a job working retail, I was working at the cash register at a gaming shop, like a cybercafe kind of thing. And while I was there, hating my life,* two important things* happened.

First off the gaming shop had a T1 line, which for those that don’t know what is T1 line is, it’s a terrible small amount of bandwidth, but back then it was amazing, it was way better than anyone had in the area. So I went to the owner, “I want to take a physical machine as a server and plug it into the T1 line and just like maybe host like revision control and some e-mail and maybe like a file server and something”. He was like “Oh you want to colocate a machine?” - I didn’t know there was a term for this. So that’s that was where icculus.org came from. It was plugged into the T1 line at the Cybercafe and that’s kind of spiraled out of control since then.

But the other thing that happened was while I was working at the cash register, and there weren’t that many customers. A lot of their their customers came in at night and stayed all night. And you know that was the gaming lifestyle. They played Diablo 2 until their eyes fell out. Or maybe it was Dark Ages of Camelot. All the real customers came in at night, so during the day it was very quiet. Nothing happened. So I’ll be seeing the cash register on the web browser just messing around on the Internet and you know there’s a game that has just come out called Serious Sam. And I’ve been playing it and I’ve loved it. It felt like the original Doom, It was fast, you could never stop to catch your breath and it did that thing that doomed it so well: if you found a room that had a hundred bad guys in it no problem open fire and take care of it. If you walk into a room there’s nothing in there but one point of health, you’re about to get killed like you’re about to get jumped, all the walls are going to open up and tons of demons are going to come out.

So I really I loved that game. I played a lot and I had nothing to do with the Cybercafe, so all I did all day was stalk these people (who made the game) and I tried to find an email address, to ask them “Can you have Linux port for this because I don’t run Windows at home and I’d really like to be able to play this game”. So I finally found an e-mail address for somebody at CroTeam, the company that made Serious Sam and I wrote this long e-mail, this big complicated pitch about why you really want to get on Linux because getting it to compile with gcc is your first step to getting a Playstation port. That was the hot system at the time and it will get you this, and you can find some bugs and dedicate servers and blah blah blah blah blah.

And the guy writes back “I’m just an artist here, I don’t make these decisions”. I was like “oh sorry”. But he was nice enough to forward it to the people who run the company and make this decision… and then they’re like “sure, let’s do it”. And then we spent months porting Serious Sam. I was back in the game, and while I still lived with my parents, I felt like a grownup again and I could do something useful, port this game for free. It was a lot of fun and I was happy with how it turned out. And once I shipped that, somebody wrote me an e-mail from I don’t remember the name, who professionally ran dedicated servers for a living. There used to have these companies you would pay them $20 a month and they would have your game server and you’d would have good bandwidth, which is why you paid them and they would take care of all the patching and stuff. We do that less now because most companies don’t let you have a dedicated server at all anymore. But at the time that was a big big thing and one of these admins had written to me “We want a Medal of Honor dedicated server and we saw what you did it for Serious Sam we were wondering if you would do that for us”. And I was like “Sure!!” and I don’t know who this person is but he apparently had a contact with 2015, the people who did Medal of Honor. A week later I’m looking at source code and porting this thing and suddenly we have a dedicated server, and people are calling me and saying “hey we need this too and can you get the game running too?” and etc. etc. like that and it kind of spiraled out of control from there. The people that split off from the Medal of Honor team made a game called Call of Duty which most of you probably heard of. They were just nobody, no one had heard of them at the time. They were just an upstart little company and they wanted to see their game running too.

Well and that’s what I discovered is “oh my gosh I don’t actually have to get a job!”. Obviously these people pay me. But but the idea of like putting on a tie and going into work at 9 o’clock in the morning and you know punching a time card I never had to do that. Before Loki I worked at a company that was making e-commerce software and I hated it. It was so boring, it was so corporate and it just wasn’t fun you know and I think if you’re a programmer it’s important to build things that you find satisfying. You have to enjoy what you’re building. I don’t want to make this boring sales platform in Java for this company that will sell it to Fedex for $40 million and then buy me a pizza party. It’s not a good use of my time and I feel like the videogames thing was much more fun for me. The puzzles that you had to solve were much more interesting. It seems weird to say this, but I feel like I’m actually doing good for the community, for the world by doing this - which is weird because videogames are total waste of time! (laughs)

I look at this and think I I’m not taking credit for this because certainly I am not the one that made Linux popular, but a system can only be popular when you have video games for it and you know I remember BeOS had that same game that Loki had ported, Civilization Call of Power. And people on BeOS were like “This is it! we have arrived. We are officially a legitimate system because we have a commercial video game on it”.

And I mean and it didn’t work out. Obviously there were other problems with BeOS: marketing! But I have that same attitude: you can’t look at a system that has no videogames and say this is something that’s worth having and pushing that forward. I felt was pushing Linux forward it was making this a viable option for people to have on their desktops or on their servers. So it was pushing Microsoft out a little bit but more importantly raising Linux up. And that was important. It was something that I felt I could do to contribute.

And the Humble Bundle came around, finding Ryan’s wealth of experience in porting games to be an asset for what they wanted to achieve.

Ryan Gordon: They reached out to me originally and they said “we have this crazy idea” and I think they probably googled “who ports Linux stuff” or something, I didn’t know them specifically. Wait that’s not true. If you dig the roots of Humble Bundle all the way to the beginning, it starts with a game called Lugaru. The bunny murder simulator. You can you play a ninja rabbit which seems ridiculous, but it’s so cool. And not only was it looking credible at the time - it looks a little dated now because it’s almost two decades old at this point - but when that came out, if you’re willing to accept that you are a giant ninja rabbit fighting wolves, that was so cool. And it was made by one guy, the art, the programming, the whole thing was just one guy: David Rosen in his bedroom just hacking this thing out. It just played well, it felt good. And I worked with him on doing a Mac and Linux port of that. And if I had to guess, that’s probably why Humble Bundle got in touch with me.

Because Jeffrey Rosen who is one of the founders of Humble Bundle is… David’s brother. So he got in touch with me and their initial pitch was to put together a bundle of games - and remember this is before bundles became very common. At the time no one had done this before Humble Bundle really. And they’re like “We want to put together a bunch of games was you pay whatever you want we’ll give something to Charity. And we’d like to make sure it runs on all these platforms. And if we get to a million dollars for this we’re going to open source all the games.”

I was like “Sure whatever!”. I wrote an e-mail back to them, telling them that I am in love with this idea and while I didn’t think it was going to work, it pushed all the buttons of things that I personally care about. Like going to open source the games, giving to charity. I like that. You could pay whatever you want for the thing. I think at this point Radiohead have put out their album In Rainbows or something, that you could get by paying whatever you wanted. And it was a wild success. People threw money at this that they didn’t have to they paid more than you needed to pay to buy an album in the CD in a music store. And so we knew already that this could work but I was wondering… “Will it work?. I don’t know. I don’t think it’ll work. But I think people will like it.”

If you can make $50,000 out of thin air, it is fantastic. That’s that’s more than a lot of people making in a year. But if we make it to a million, we open-source all the games, I was like “OK then you’re telling me you’re NOT going to open source the games. There’s no chance you’ll get to a million dollars, but sure buddy, I’ll play along”. And I told him “you should look at this game Aquaria, these guys are doing really good work, you should talk to them”. And they did and they agreed and got into the bundle. And just you know, this is a direct quote from the email, I said “you should you should talk to John Blow and see if he chops your dick off”. And they wrote to John blow an e-mail and he just blew up their dick. He would NOT be in the Humble Bundle. But I don’t blame him. This seemed like a big pain in the ass and you know it would probably fail. It was a risky thing to do. He had other things going on, maybe doing PC version of Braid at the time, so he said no. There were games like Lugaru and Aquaria in the first bundle and a couple other games. It was a good little starter.

And as I said earlier, they said they would open source the games if they get to a million dollar and I was like “sure!!! whatever!!”, but a week later we’re sitting on 1.1 million dollars. Everyone’s looking at each other like “holy shit! What did we do?” But Jeffrey Rosen was right. There’s always someone to give you a dollar on the Internet. So he just found a million people that will give him a dollar. Some people gave more than a dollar per person and they got very good later bundles with the psychological aspect. You try to give them less than a dollar, but then it popped up a picture of a homeless person saying “will code games for food” or something like that. So you would be like “OK fine I’ll move it up, I’m sorry”.

I have personally always felt that the initial support of Linux in the Humble Bundle was magical. I mean, it came out of nowhere. There was no reason to do it, and they should not have expected a lot of revenues to come from this kind of support. So why did they bother? Why did they care?

Ryan Gordon: To an extent I don’t know what their initial motivation was. I think it might be they thought it was cool like and it would be nice if we had Linux support. They were looking for reasons to differentiate. If he had to make an elevator pitch for the original Humble Bundle, he wanted to throw as many bullet points as they could. DRM free, Pay What You Want, Some of it goes to charity, runs on three different platforms. They wanted to make it as compelling as possible. For whatever reason they wanted to do it.

But what they discovered after that first Humble Bundle, and for the first several bundles after, is that 25 percent of their revenue was coming from Linux users. And then they did a bundle with somebody I can’t remember who it was. It was Windows only and I think Steam-only it was some developer’s personal catalog, it wasn’t a Humble Bundle, you know it was a general Humble Indie Bundle thing. And they found that even though all the games were windows only, 25 percent of their purchases were coming from Linux browsers. […] And people on Reddit and gaming forums were saying: “I used to buy stuff that I wouldn’t play because it was a couple of bucks and it was Windows only I wouldn’t play it. But I want to show them support because I knew the next Humble Indie Bundle would have more Linux ports in it”. So people were just giving them good faith money. It’s complicated. But with that initial Humble Bundle, they did open source all these games. And some of them went very very far. There’s an Ipad port of Aquaria, Lugaru has been ported to everything. Some of those games became kind of like what we did with Doom where exactly oh there’s a there’s a new platform. Let’s get this running on it!

With more and more indie developers providing Linux clients, Humble Bundle providing another reason to consider the platform, it did not take too long for things to get to a different scale, with Valve’s involvement. But this time, it did not start with Linux in mind. There was an intermediate step where Ryan also played a key part.

Ryan Gordon: Valve has always had this amazing ability to call me up during major life changes. I bought a house in Charlotte North Carolina which is where I still live and I’m talking to you in it right now. Me and my girlfriend, we moved into this house, and a week later I got a call from someone at Valve. They call my cell phone and they’re asking “how do you feel about moving to Seattle and coming to work for us?” and I was like “I literally just bought a house!. Where were you guys?!” And so I did not move to Seattle. I said I’ll come out for a little while and if you want I can be there for a week and talk to you guys and get you started on whatever you’re working on and you can just take my brain or whatever - and they say OK Come over*.*

They did not tell me what it was about. Basically, “get on a plane and don’t ask questions”. And I was like OK. I played the original Half Life, so I understood that G-man mentality, that made sense to me. So I get there and they tell me “we are working on a Mac version of Steam and this is very secret, we don’t want anyone to know, because we don’t know if this is going to work out and this is all very preliminary at this point”. I said OK. So we talked about this for a little bit. We talked about the technology that needs to be put into place, what needs to be ripped out and rebuilt and ported and whatever, and they did most of the work on that, they just picked my brain on it. Two important things happened there.

One, I was talking to one of the rendering people there and I explained as I was working on Unreal Tournament 3 at the time I was explaining the trouble we’re having with shaders because they’re all DirectX shaders. And he had told me “Well don’t you try just taking the directX shater bytecode and build something that converts it to GSL” and I was like “huh!”. And on the flight home, I started writing a project called Mojo Shader, to do that. So that was just an offhand comment from someone that just you know became a multi year project used in wildly successful games.

But the other thing they said… the people that brought me in to work on them to talk about the Mac version said confidentially *“we are Linux users”, *these people who were working on this project and who also used the Mac version of course. But this is actually just a submarine project. We would like to get it to the point where we can make an argument that goes “Look we brought this to the Mac and it was worth the money and time we took to do it. Why don’t we try this Linux next?”. And I was like “You guys are crazy!” but ok cool I’m totally done with that. So I did everything I could, I got back to my office and I started calling people “We need a Mac port of your game now, because it’s about to make you a lot of money and you don’t know it yet”. And I found a couple of people that trusted in that and a couple of people that were gung ho about it and we started porting Mac games as fast as we could so that they would be ready for the launch of Mac Steam, because of the first mover advantage. If you’re the first one when Steam comes to a new platform you’re going to make a lot of money.

You look any sort of app store where you can buy stuff and you have to get there in the first couple of weeks. There’s nobody on it. And everyone’s like “I want to buy something, I want to try it out”, so you know that iTunes music store launches so I guess I’ll buy that shitty Sheryl Crow CD, whatever! And now you can get anything you want on there. So the people that got there first didn’t have to have the best games they just had to be the only game there. And I’m not saying that these were bad games. I’m not suggesting that they dumped out a bunch of turds and people would buy them. Even less good games would not have to compete, like when you know Black Ops 3 is coming out, so I guess I’ll try not to schedule my game to launch on the same week. And Valves starts telling people they are going to do this and those people start working with me too and just aggressively trying to get these games out as fast as possible.

So we had an idea of when it was going to ship and then we missed that deadline and we missed the next one. What is good for me bad for Valve, but no one was waiting for it. I think it was a surprise when they announced it to the world. Guess what? There’s a Mac version now. We knew but I don’t think that the general public knew that Valve missed their deadline on this. They had the time to get it right. […]

We were moving fast, because it was a lot of work with a lot of different customers, a lot of different games trying to get there as fast as possible. We went down the catalog “what do we have that has a Linux port?” because I can tell you almost certainly how long it will take, as opposed to a codebase you would have never seen. We did the best we could with that, but also it was a lot of “we don’t actually know when this is shipping” so we won’t be ready by now but it might take another week, or taken another month.[…]

So then the Steam for Mac client ships, and this is where things really start to get real for the plans to have Steam running on Linux.

Ryan Gordon: So I was not there for this specifically, but my understanding is the people that brought me in for the client went to the people that would make this decision at Valve… and everyone has seen the Valve handbook: you work on whatever you want. If you have a good idea just go do it. I mean this is a great idea. That’s where we got G-mail from right?

So theoretically they could just be like, “I’m going to spend a month. six months, a year porting this to Linux and who’s going to stop me? Ha ha ha!” And they actually wanted to ship this and get the consensus from the team, that this would be a good idea. So they took the numbers from the Mac version and obviously the Mac version does not make as much money as the Windows version, because that’s where the vast majority of your warm bodies are, and that’s just life. But but they were able to go and say we made a reasonable return on investment. I can’t give you the exact number but it took this much money to make, and we made a little more than that much money. We call this a success. Let’s try this with Linux. And I don’t know where SteamOS came from. I mean… I know where SteamOS came from. I don’t think that the idea was “Let’s launch an operating system” but I think at the time, and you can find it in interviews with Newell saying this too, they were very worried that Microsoft was going to lock down Windows.

Apple locked down the iPhone, and Apple has tried so hard to lock down MacOS where everything has to come through their store and in the case of Apple it’s even worse than that, because digital goods on the iPhone are considered in-app purchases and Apple gets a 30 percent cut of that, which is why you can buy a physical book on the Amazon app on your iPhone but you can’t buy a Kindle book. And it’s infuriating. Anyone on the planet can see that in modern times Microsoft looks at what Apple is doing and learns the wrong lesson from it. So there’s no reason to think that Microsoft would not make a store for everyone on Windows to use in the store, demand a 30 percent cut and lock out things they don’t like.

So they were concerned that the thing that they would not like is a software store that sells software being sold through Microsoft software store that sells software and they were afraid that Microsoft either want to cut or lock them out entirely and they didn’t want to take that risk. So SteamOS was born there like… if nothing else we’ll try and push people off of Windows, and that was a fairly bold move.

My argument was is that it never had to succeed. You just had to move the needle a little bit and… I think it did. I think that a lot of things changed because they all made the noise they were going to replace Windows.

SteamOS was a later plan that came along. I could be wrong I’m a little vague on the timetable now… by the time I came back there, when SteamOS was announced, they had a team of Linux people that were literally just there to work on SteamOS and Steam games and OpenGL, and Vulkan later on and stuff like that.

When Left for Dead 2 happened they had the Steam client running on Linux with lots of bugs. It’s like “Oh that definitely looks like the Steam client” but you go to the store page and it’s blank. They  were starting to limp along with that and they brought me on to do some work as a contractor and they basically sat me down for a computer said:* “This is Left For Dead 2 - get zombies on the screen!”* and walked away. So we got zombies on the screen and it was very very slow. And then they brought on some of the best rendering people in the country. You had Rich Geldreich in there and Jason… I forgot his last name he is going to kill me. Sorry Jason! Anyway like Richard and Jason were working on that and a couple of people from nVidia basically set up office in there, AMD did… that’s not uncommon (to have the graphics vendors colocated).

There was Nvidia developer and an AMD developer sitting at Epic when I was working Unreal 2003. For the big name games that are going to make the money and sell video cards, they absolutely make sure they run really well on their cards. And I’m sure they work remotely. Here’s a build of Game X and they’ll have their developers look at it and make driver fixes and stuff like that. For the big, big games they actually do send people there.

And Intel was there at one point. I’m sure everyone goes through these offices. But this was a big big push from Valve. They wanted not just feel like it runs on Linux but as everyone has seen their blog post they want to say “Look the openGL renderer is faster than our DirectX renderer”. They announced “Hey look our openGL renderer is faster” but “Oh by the way this runs on Linux” and it was like “What the hell!”

From Loki which had trouble finding enough audience to sustain its operations, things have changed tremendously in the past few years. A lot of it has to be with how good the desktop environment has become.

Ryan Gordon: When I was at Loki there was a brand new card called the GeForce. Before that, the high end was a nVidia TNT card, or maybe more like it was a 3Dfx Voodoo card. […] The thing about the Voodoo card, it was something you’d look at and you would think “this is something I’d never thought would be possible with a computer”. This is the future. It was such a small step towards the future, but everything was possible once you saw a game running on that thing. Everything that you have seen since then came from that moment when you installed a Voodoo3 card. Back then maybe you had a game limping alone in Glide, or you had something called Utah GLX and support for a few other cards that don’t even exist anymore. In 1999-2000, the huge question was “How do you even get a Linux box to show 3d games?”. At the time, it was also “How do I get my fucking printer to print?!? (laughs) - How do I get connected to wifi ?” - these were all hard problems.

We don’t think about it anymore but somebody spent an enormous amount of engineering on all of these problems, doubly-so on the video cards. Now we are at a point where you can reasonably install Ubuntu on a machine, and probably your video card works. The problem we are having now is licensing. Do you want to use the closed-source nVidia driver or do you want to use Nouveau ? That’s a massive upgrade from *“Do you want to install this video card, or one that does not work at all?”. *Even the open source drivers like Nouveau, which are a remarkable feat of reverse-engineering, they are NOT bad. They actually work pretty well. […] I think eventually we will have to see nVidia make change about this. We are not moving to Wayland now, because nVidia has not moved yet, but the first step is going to be “fine this is what you need, the DRM-level driver for Wayland” and then from there we are going to have to have an open-source version. I don’t know how we get to that point, but we have to eventually. It’s the last legal hurdle for a full Linux system. […]

Now Linux looks like a competitive desktop. There were many years where you could install Linux and it will probably work, but it still looks like Windows 95. Because when we built it that’s what we were copying. People have moved past that. People are willing to take risks now. I used to be “How do we catch up to Windows?” and later “How do we catch up to MacOS?”. Now you take risks: Unity or GNOME3 does not look like either of those system. And that’s good, people will embrace that.

Despite such great progress, the Linux gaming audience still remains a very small part of the overall PC market. It’s certainly growing in numbers, but not so much in share. For Ryan, this is not necessarily a problem.

Ryan Gordon: I don’t think what’s important is critical mass. I don’t think we need to get to the point where everyone runs Linux, this is actually not what I want. I want people to run what they like. I want my mom to run her iPad and load up a game she likes, I want my wife to load up her mac book and play games she likes I want people I work with to keep running Windows and not complain about Linux. […] I think part of the problem that we’re trying to solve here is that lots of Linux users have run their computers in what we call Wintendo mode. You know where you you use Linux for everything you need during the day and then you reboot to play a video game in Windows and then when you’re done you boot back into Linux and go on with your productive life. And I don’t care if you run Windows and play video games. If Windows is your desktop that’s fine with me.

But I don’t want you if you’re a Linux user to have to shut down your music player and your email and your web browser the thousand tabs in the document that you’ve been working on and your text source code and your terminal with all this back scroll that you’re really sad you lose after rebooting, the important things.

I want to get to this point where we don’t have this hegemony of desktop anymore. Everyone who was a game developer probably moaned about the times when they had to do a DOS version, a Commodore 64 version, an Amiga version or an  Atari version… Fuck you! I know it’s a lot of work. But look at how happy all those customers were. I know that’s a miserable place for a game developer to be, to have to worry about a million platforms. But everyone got to use what they like and what they could afford and what they are willing to live with and what they customize to exactly what they loved. And if we can get back to that I’m OK. I mean I don’t think we’re all going to run on Apple 2s anymore. But whatever your modern desktop or your modern phone or tablet is, you should be able to run what you want the way you want to run it. And I don’t care who else succeeds. I’m happy if everyone succeeds. I don’t like there being one force that runs the whole market, that’s bad. But everyone should get a little slice of the pie. I think that’s OK. I don’t think we have to be the one to own the pie. And I don’t think that’s a reasonable goal to work towards either. But that’s my opinion. I could be wrong.

If you were wondering why Icculus did not ship too many ports in the past year, well guess what. He was busy with other projects, that are very useful nonetheless to the porting community.

Ryan Gordon: I have on a couple of things that did not ship, that happens. I’ve worked on recently Serious Sam so this is coming full circle in my career. They were really interested in it and I was like “well I just happened to have a Linux port” so you know we spent some time merging that up and getting that together and you can download source code from GitHub and you can clone it from Github and run it on Linux. And you know there’s ports of that springing up all over the place. You know like there’s an Open Pandora port as we were discussing the other night. I love this idea of like not just you can run the desktop you know like I’m just saying but also like here’s a weird device that you would never think this game would run on. But here you go! I think that’s amazing. I think people look at things like the Raspberry Pi or whatever came before the Raspberry Pi that’s a fairly recent innovation with like an ARM processor and they go*Who would ever use this? This is embedded GPU, this is garbage I’m never going to use this”*. And then congratulations! Everything needs to run on an iPhone now or on Android. You were warned. You saw this coming and you ignored it. And now this is what everyone wants your game to run on, this level of technology.[…] There’s a real benefit to open sourcing your games because that kind of thing happens, it runs on platforms you never thought it would run on. And platforms that you didn’t even envision when you wrote the game over years.

I tell you this not just because it's true but also what I have been working on recently, the most recent port that I've shipped is a port of the original Unreal Tournament to emscripten. And if you had asked me five years ago* "oh yeah, let's just compile this game to javascript!"* You would have been like *"get the hell out of here!"*. That's not going to be fast, that would never work, but surprise! It's really fast. It is almost it's not as fast as C of course, but it's pretty darn fast and especially this has been true for almost 15 years now: the CPU is not your bottleneck your problem is the GPU. And in terms of what you do in Javascript you code in OpenGL, and all that gets handed off to the GPU and that has nothing to do with what programming language or what platform you run on. That's just as fast.

So I tried this I had the source code unreal tournament from back in the day. Someone put a bug in my ear that he would really like to see Unreal Engine 1 running in a web browser. He had an old Unreal Engine one game and he thought it would be really neat to reboot it to see it live on as a historical artifact in a web browser. So he put the idea in my head and I started porting Unreal to it and emscripten and if you’ve never played it it’s clang, literally you can build a Mac port of your game you’re 90 percent, or Linux for that matter. You’re 90 percent of the way there it’s you having an emscripten part of your game running in a web browser. […] So I got it working, […] the Unreal Tournament 1999 fly by where you know that anyone that was a gamer in the late 90s has that initial flyby voiceover burned into their brain. […] So I got that running and the game itself too and I emailed Tim Sweeney “take a look at what I did here”. Now I don’t want to sell this, or make a big deal out of it, but I would love your permission to have this fly by ship so people could see it running, and he’s like “yeah do it!”. So I put that up on the Web and people are like “oh my gosh you have this thing running”.[…]

But what I found was I got an enormous amount of e-mails from people that were Mac players of the original Unreal Tournament saying “oh my god can we get the whole game on the web browser?” because this game shipped for Mac OS 9 Mac Mac OS Classic like before Mac OS had you know before it was like that solid Unix foundation right. You know the old operating system that was its last rest in the late 90s unreal term it was ported to that. And later on they released a carbonized version that lets it run natively on MacOS. But that was a PowerPC version and you can’t run that on the new Intel Macs or on modern Macs so people that paid for this game and used to play on a Mac many years ago, still identify themselves as Mac users, no longer have access to the game. It just will not run on any modern Mac. But it will run in a web browser.

I’m not saying it’s time to stop doing Linux ports. I’m definitely not saying that. But I’m looking at this and this is an important piece of history, because this will keep working as long as web browsers keep working. So that’s what I’ve been working on recently and other than that other than that it’s been focusing on two things here.

I started Patreon and it’s doing better than I thought. I thought like three people were going to give me money.[…] But it’s been pretty good. I like the people who have shown up and they’ve brought in some money and support. So we did see an unreal T is one thing and we did an auto updater for IOQuake 3[…].

The other thing I’ve been spending my full time on is simple direct media player. SDL as a full time job, and Valve has been paying for some of that and I appreciate it. Patreon is going to be paying for a book I’m writing about SDL, because people keep asking for it and I was like I’m going to do it. Well you guys I follow the same trap Humble Bundled did when they said “If we get to a million dollars”, by saying “If I get to $500 I’ll write a book”. Oh my god I reached that in two days. Oh shit I have to write a book now! I don’t know how to write a book, but I’m working on that. I tell someone who’s written a book that all I want to do is write a 50000 word plan file and no it doesn’t work that way. So now I’m freaking out.

But those are the things we work on. I haven’t been porting a lot of individual titles recently but I’ve been working a lot on infrastructure, SDL, to make that easier for other people to port games and to make sure the game engines like Unreal and Unity can have a really strong foundation. I feel like that’s the way I can be most useful right now and I will port more games in the future, I’m sure of it. Right now I feel that the infrastructure is the most important thing for Linux gaming and the Patreon is great because I find I wander off and do things like I get an idea in my head and I can’t stop thinking about it. It’s like I’ll just spend three days on this and it’ll be done it’ll be great and I can move on to the next thing and then like three weeks later I’m like “I’m almost there!”. And I would do that I would build interesting things and open source it and that’s great and I love doing that. But then you find out I spend a month on this thing and I did it for free. What is wrong with me?? And clients are waiting for me to do work. They’re actually paying me for it. Everyone’s mad. So now the Patreon can help me do these things and I don’t have to feel so guilty. I think that’s good.

So what happened to that whole gig of calling/emailing developers directly and asking if they want to make a Linux port? Is that still a thing at all ?

Ryan Gordon: I do that sometimes but most of my work after the initial Serious Sam was a lot of people calling me. To get back to my joke about John Blow chopping your dick off, the first humble bundle made 1.1 million dollars or something like that I mean A LOT of money. Strangely if you look at humble 2, what game is in there? Braid. Because John bloater looked at it and said “Oh. Maybe this was a good idea!” And to be fair I don’t want to suggest that John was a jerk. John Blow made a totally reasonable business decision and looked at the data that was available from it but also Braid is an awesome game. So if you were to show up in Humble Bundle 12 and say I want to put Braid they would run like “hell yes!” because I mean Braid is amazing. Braid changed the state of the art for games narrative at the time and others have moved that forward since then. But at the time he had done something that frankly no one was doing, a game that made you after you finished it want to talk to your friends about what the hell you just saw and what it meant. And people had different opinions about what it meant.

That’s much more common now because I think you know in the same way that movies used to you know old silent movies be pretty bad. The plot wasn’t very good. Then someone did Citizen Kane or whatever the first thing was that really moved the state of the art of the narrative. Or you look at television you know everything was really bad one camera sitcoms with a bad canned laugh track and then you see the Sopranos came along. Or Twin Peaks. Well Twin Peaks is a cautionary tale right. It was really good, I’m actually watching it right now. I had never seen it before. I think people learned the wrong lessons from that, because it took 15 years before Lost came out. Yeah it took a long time for people to learn the lessons of Twin Peaks. People looked at Braid and they  came with Dear Esther and Gone Home where they are not building a videogame, the videogame is secondary. The fact that I basically remade Super Mario Brothers with the time rewind feature is secondary to the fact that I want you to think about what I’m trying to tell you. […] You know we started elevating this to an art form.

The other reason why Ryan is not taking on so many new game ports, is also related to the change in landscape. Porting large games now has become a massive endeavor.

Ryan Gordon: The other thing we discovered is that games take a lot longer to port now. It used to be “here’s feeding frenzy, a casual little game you move your mouse around”, and that would take three weeks to port, and then like we spent a lot of time on Unreal Engine 2 since that game was portable. There was a Linux and Mac quarter that in revision control with the Windows version it wasn’t a separate branch, it was maintained commit by commit with the Windows version of the engine. And game companies would go out and say hey I need a Mac port, I would go “OK. Get a Mac. Download the source code. Type make”. That’s it. You have a Mac version of your game at all. But that took an enormous amount of effort but the payout was going forward. We had all these games we could port easily.

But moving forward now, you just get unity and you click export to Linux or Unreal Engine has that same kind of technology. We’re praying that it moves forward, because we are getting to the point that if your game has a custom engine for a triple-A game, you’re going to spend a year porting it and nobody wants to pay a porter to spend a year porting something. So we either have to do it for too little money or too fast or any other number of things.

I’m sure that Feral will tell you that it’s become much more of an uphill struggle to port things now and those guys are amazing, they do some hard work and they do it pretty fast. But I’m sure they will tell you that it’s got to the point porting individual games is exhausting and really really hard and takes much longer and more resources to do it.

Ports requiring more and more work and time passed was also a major reason why things did not go as smoothly for the Linux games in the Humble Bundles.

Ryan Gordon: I worked on first couple of Humble Bundle literally just pushing games to me as fast as I could do them. And that was really nice because I didn’t have to go and sell myself. Humble Bundle will go around saying we want this game we have this porter, sign the papers and we’ll hand it to him and Ryan will do the work and we’ll do all the business stuff.

But it got to the point where I could not keep up with them. OK this game is done, start working on the next one. And we’re getting to the point were these games were not things we could port quickly. It is “we” in that there were other people working on other games. And that’s where Ethan came up and that’s where you know Edward Rugg came up and a couple other people got in there and started really just trying to pick up games and just port them as fast as possible. It was getting to the point where we would miss the deadline, and we would say “oh well, it will go in the next bundle” or worse, it’s running enough that we can ship it, and maybe fix it later… which is a really dangerous place because five more games are coming in. You NEVER get back to it.

And you could see a lot of people mad about some of those games and the later bundles were still aggressively trying to port these things to Linux, and “it doesn’t run at all on my system” or “it runs but it crashes right away”.[…] Super Meat Boy when we shipped that, the final boss had a bug where it would miss compile the shader and crash the game. And Super Meat Boy is fucking hard. I never got to the last boss to test it. So I had to find out about that in my bug tracker and “I’m sorry that you have to replay the murderously hard last level”. This is the kind of things we were going into and the quality was dropping immensely.

At that point they hired some people full time to be Linux people. And I had just had my daughter Olive. I could not keep up with it because I was exhausted, I haven’t slept in a year…. and children are hard. But so it got to the point where I started doing less with the Humble Bundle and I don’t actually do anything (for them) right now. I’d be happy to but just I am doing other things. I was getting concerned about the dropping quality for the stuff I was working on and that I could not keep up with it, because you don’t want people to be like “Oh Linux? That’s where you go and play broken games” you know. So that’s where we ended up.

When it comes to finding a Linux porter, there’s no regular process it seems. People go through who they know and who they can find, and if that person is not available, well you may be redirected to another acquaintance.

Ryan Gordon: I often get contacted by people I’ve never talked to before like someone said oh you should talk to Ryan or they Googled me or something like that. But sometimes I’ll be like I’m really busy, why don’t you try talking to these people ? I did the original port of Rocket League and I handed off to Timothy who did an enormous amount of polishing on that. That game is really good on Linux because of the time Timothy took to make it as good as it is, whereas I took the time to get it running and I was done. And Timothy, I think is probably still a contractor, if anyone is still looking for Linux ports I’m sure he will be happy to talk to you as well some other people. I don’t know what the decision chain is like. I don’t look at it and go “Oh that’s a Feral level game, or that’s a Ryan level game”. […] There have been definitely some AAA titles I passed on saying “I’m just too busy”, or that it looks like a nightmare and I’m not going to do it. […]

Some software is better built than others and some are more enjoyable to work with than others. And that’s just how it goes. I’m not going to name names.[…] Yeah there are definite Triple-A games I have passed on, I have never looked at it as in that’s just technology I cannot understand but I would rather say that it will be legitimately 12 months of work, and no one wants to spend 12 months doing this including me or the people that want to pay for this.

Coming back to Rocket League, it’s worth considering what happened there. It was announced for the Steam Controller release, and then nothing happened. Nobody mentioned it anymore either, it was almost like a vaporware at some point. Since Ryan worked on this port, he could shed some light on what was going on.

Ryan Gordon: My experience with Rocket League is that they were much much more interested in quality control than most people are about Linux stuff and that’s good. […] Let’s make sure it’s good. Listen to actual commercial like paid testers and fix bugs where it must grow like oh it’s running on Linux OK. And like most people that I think is the Linux for don’t even have a Linux box, they’re not going to play it you know. They want to be able to say “it runs on Linux, please buy it” but they’re going to trust me that it works. Psyonix was very very interested in making sure not just that it ran on Linux but that it didn’t suck on Linux. I mean I wouldn’t be surprised if the Steam Controller deadlines moved a lot like Steam Linux and Mac Steam launch. I’m sure those were also moving targets. But I would also not be surprised if after Timothy took it over there was a lot we’d like to get this fixed […]. And like I said Timothy did an enormous amount of polish on that game. Like there were not just bugs but also making it just feel better and look better and run a little bit faster and optimizing it. That must have taken a lot of time. The emails I saw, he was working hard, day and night on it.

This happens, this is not unique to Linux this happens with all sorts of platforms where someone announces “we will make a port to the Nintendo Switch, we have just signed the papers” and then they find out “oh shit it’s going to take 6 months to a year to port this thing”. […]  It’s like you bring a contractor to work on your house, saying you’d like them to build a shed, and they did a little foundation for it, they accidently hit a gas pipe, so it takes more time… they fix that and then start with the shed, and they can’t get the kind of wood they want. And they found out that there are termites, etc… they find out they don’t have a permit. And so on. Porting software is very much the same way. […] Even the people who work with software contracts don’t understand that. If you are hired to build a webserver, you know the protocols, the structure of a web server, how you write that software. Based on their skills and know how it will take x weeks and days and hours. But porting is nothing like that. We know what it takes to build a shed, but we don’t know what it takes to rip a closet and build something in there, because you don’t know what you are going to find when you take the dry wall off. […] Porting is the same, you get it to compile, the main loop is running, and what the game is doing is printf and break the OpenGL renderer. OK, the game is running, but we need 6 months until it shows anything on screen. We, porters, don’t actually know how long it is going to take. Even once you go in there and look at the code. It’s not useful until you hit the problem that takes a long time to fix. […] I have a lot of sympathies for companies that announce a game and then run into massive problems. Nobody wants to say to their customers “we are having problems and we don’t know how long it is going to take”.[…]

Ideals and reality clash in that particular regard. What I would recommend to do in general, is that if you want to make a Linux port, or any port, don’t announce it until it’s ready to ship. Just don’t tell anyone you have it until you are litterally ready to hand it to them, or just a couple of weeks away. That would make everyone happier. Linux users would not be like “they did not announce it 6 months ago, what the hell?”, they would be “It’s CHRISTMAS BABY! I GOT A PRESENT I DID NOT EVEN KNOW IT!” (laughs).

And…. this concludes the Part 1 of the podcast. We will be back with the second part in a couple of weeks. We appreciate your comments, remarks or questions in the meantime!