Gamasutra: The Art & Business of Making Gamesspacer
arrowPress Releases
October 31, 2014
PR Newswire
View All





If you enjoy reading this site, you might also want to check out these UBM Tech sites:


Q&A: Understanding the future of Linux game development
Q&A: Understanding the future of Linux game development Exclusive
September 27, 2013 | By Kris Graft

September 27, 2013 | By Kris Graft
Comments
    18 comments
More: Console/PC, Programming, Exclusive



When it comes to Linux game development and porting, Ryan "icculus" Gordon is The Guy.

Since the 1990s, Gordon has ported dozens of games to Linux, from Quake 3 Arena to Dear Esther, making him one of the foremost experts in Linux game development. His expertise in Linux games also led to a gig porting Humble Bundle games to Linux, helping developers build goodwill with users of the open-source OS.

With Valve Software's biggest Linux push yet in SteamOS and Steam Machines, we asked Gordon in an email Q&A what the future holds for Linux game development.

You've done a lot of Linux ports! What's so appealing about Linux, and what got you started with porting?

I worked for a company called Loki, which did Linux ports of triple-A games. It was a model that seemed feasible on the Mac, where a few different companies were already doing this sort of thing. I had been an exclusive Linux user for a few years at that point, because I fit the profile in 1999: a young student that was bored, curious, and flat broke. [smile]

When I got the offer to do Linux work on games like Quake 3 Arena, Heroes of Might and Magic, etc. I would have been a damned fool to turn that job down.

After Loki, I made a very long distance cold-call to Croatia to ask about doing a Linux port of Serious Sam, and it sort of spiraled out of control from there.

Can you explain what you think is the main draw about games and Linux? [Valve founder Gabe] Newell has given some of his thoughts as to why -- maybe your thoughts align, maybe not. As a developer, why is it attractive; as a player, why is it attractive?

I'm not a flag-waving Free Software fanatic, but I do think that Linux shows what happens when we all decide to work together and build something beautiful, instead of going off into our corners and building lesser things to fight other people building competing lesser things.

I don't really care that IBM or Google or whomever contributed code because it converts into better profits for them. Good for them, their specific motives don't matter. Some company gets a boost, and so do some gamers, and so does some classroom in a developing country. How can you not like that?

As a developer, I'm free to do whatever I want: if I hit a bug in the system, it's not a mysterious black box to me. I can debug it myself, I can fix it myself, I can move forward without waiting for an indifferent corporation to clean up their mess.

I can decide to replace any piece of the infrastructure with a better idea, as long as I'm willing to put in the time.

If the ideology isn't interesting to you, I can put it more simply: it's a giant, largely underserved audience. There's money out there waiting for quality games, and the market isn't flooded with cheap product like it is on Windows or the iOS App Store. You don't have to build something as popular as Angry Birds to get noticed, or something as tasteless as Candy Crush Saga to be successful.

As a player, why is it attractive? I see two reasons: first, if you're on a desktop Linux system, you can't ever get trapped in a paradigm shift like, say, what happened when moving from Windows 7 to Windows 8. More or less, you are empowered--even as a user and not a programmer—to have the system you want to have.

Second: everything I said about what makes Linux nice for developers trickles down. You're seeing this now, as we're in the process of replacing X11 with newer tech, which will give a better desktop experience, etc.

With the SteamOS announcement, there will probably be a lot of devs looking for people like you to do ports. What kind of expertise is needed to work with Linux, and what are some of the most challenging aspects of it?

It's probably best to think of it as a cross between console and PC development. Some of it is special-case knowledge, the way one might know the details of the PlayStation 3 SPU, but all of it is much more open: you work on any old computer you like, you download the tools for free, and all the information--documentation, technique, conversation and debate--are all one Google search away. There aren't NDAs [non-disclosure agreements]. To become a developer, you just decide to do it.

Developing for Linux used to be much harder. Now we have better tools (like the newly-shipped SDL 2.0.0) to make game porting (and game development) much easier, and we're probably benefiting from the success of iOS here, too; finding people that know how OpenGL works, or even a generic Unix system works, is much easier than it used to be.

My experience has been that porting a game from Windows to Linux might take months, but porting a game from Mac OS X to Linux might take days. It's anecdotal, but it seems to often be the case. The existing Mac and iOS developers might find Linux to be pretty welcoming in that regard.

For you personally, do you expect to gain more porting business with Steam's announcements?

Oh yes. Definitely. But really, this ramped up as soon as the Steam Client for Linux was announced, and it never really slowed down.

I just saw that Nvidia has been working with Valve on SteamOS. How might help with Linux development?

You would not believe the amount of engineering that went into improving video drivers (not just from Nvidia) for Valve's initial Steam launch on Linux.

Naturally, it'll help...Nvidia's drivers were already top-notch on Linux--discounting the different bits of glue for wgl and glX, my understanding is that it's literally the same driver source code across Windows and Linux, if that gives you a frame of reference--and making them better is just icing on the cake as far as I'm concerned. I'll gladly take those wins.

That being said, I don't think that is the most important thing about that blog post. The unspoken message is this: there's some opportunity here, whatever it might turn out to be, and instead of someone in a back room inking a deal to be This Console Generation's Video Chip, GPU vendors are apparently going to compete to be the best thing for the Steam Box. This means that not only Steam Box users benefit, but all Linux gamers as well. I'm pretty happy about this.

Why is Mac to Linux an easier port than from Windows?

The hardest part is almost always dealing with Direct3D code. Starting from a Mac port, you know you already have a working OpenGL renderer, so a lot of heavy lifting is done.

A lot of the lower level APIs tend to be POSIX calls that map directly to Linux, and if you're lucky, the Mac port already used SDL, which cleans up just about anything else.

What will it take for Linux to become a more viable platform for players and game developers?

You're seeing it happen right now. I think three major events in the past year have really accelerated this proposition:

  • Humble Bundle keeps proving that Linux users exist and will throw hard-earned money down for games.

  • Unity3D made it possible to target Linux pretty trivially, even for developers that don't know much (or anything) about Linux, so really interesting games are showing up without much engineering overhead.

  • Valve shipped a Steam Linux client, and games are slowing trickling in...and that trickle has been accelerating. It'll be interesting to see what happens now with SteamOS.

The short answer: it takes money and games, and both are flowing in now.

Anything else you'd like to add that would be informative for our game dev audience?

If you're thinking of shipping a Linux version, it's time to start evaluating the middleware you use in your game, and demanding your vendors support Linux, or give you source code so you can get it running yourself (in practice, both approaches are pretty common).

Definitely use SDL 2.0 [http://libsdl.org/]. Reach for it like you would reach for DirectX on Windows. It's the defacto standard for low-level game APIs on Linux, but you might find (like Valve did) that it's worth using it on Windows too, so you end up with one codebase that works everywhere instead of a Linux backend, a Windows backend, etc.

[See what other Linux game developers had to say here.]


Related Jobs

Forio
Forio — San Francisco, California, United States
[10.31.14]

Web Application Developer Team Lead
The Workshop
The Workshop — Marina del Rey, California, United States
[10.31.14]

Programmer
InnoGames GmbH
InnoGames GmbH — Hamburg, Germany
[10.31.14]

Mobile Developer C++ (m/f)
Activision Publishing
Activision Publishing — Santa Monica, California, United States
[10.31.14]

Tools Programmer-Central Team










Comments


Martin Pichlmair
profile image
If you don't want to go for SDL there's also SFML which is a bit leaner. Don't know how it compares to SDL 2.0 though.

Mike Kasprzak
profile image
Mr SDL himself works for Valve, so ya. A safe bet.

Joel Lamotte
profile image
I also prefer SFML because it's "modern C++" instead of C. Both provide almost the same features globally. I guess if you're using C or other languages that needs to rely on C for some arts, SDL would be a better bet.
That SDL is worked on by Valve is cool, but I don't work with C personally so I'll go with SFML, just to avoid having to work constantly with pointers.

Harry Fields
profile image
"Humble Bundle keeps proving that Linux users exist and will throw hard-earned money down for games."

Yes... it proves they are starved and willing to pay 8$ for 6 games that were each at one time, worth at least that alone.

"If the ideology isn't interesting to you, I can put it more simply: it's a giant, largely underserved audience. There's money out there waiting for quality games"

Giant? I definitely agree with the underserved audience part, but the Linux desktop install base (excluding embedded devices), is practically a statistical error. It's way niche. The large publishers have financial analysts who look for markets to expand into. There's a reason none of them have taken a serious look at Linux. From a business perspective, it makes little sense. Spend time and resources to push a couple thousand extra copies that then become customer support headaches.

Interesting read, but I only see a few niche players being able to make a living off of Linux ports.

Dane MacMahon
profile image
It's amazing how small a percentage "giant" becomes when you make money porting games to said "giant" audience.

In his defense, perhaps he meant it will become giant.

Harry Fields
profile image
It could. All we each do is read the tea leaves as best we can. I don't see it, but then, I never saw Facebook being able to trade above their IPO value and lo and behold, they somehow are.

Bob Johnson
profile image
Just remember that the stories about the greatness of Linux are always told by those inside the bubble.

Curtis Turner - IceIYIaN
profile image
I think porting my XNA game to Linux should be quite easy. Install MonoGame, click build... Maybe outta the 100 Linux gamers, one will buy it and I can buy a candy bar!

What's the deal with Linux and gamepads? I assume it has mouse and keyboard support, but what about support for four++ controllers?

E Zachary Knight
profile image
Controller work fine with Linux. No worries there. I have used my Ouya controller, my Wii Classic Controller Pro, and could connect my PS3 controller if I wanted to. People have also connected and used 360 controllers. So I guess if you watn 4+ local multiplayer with controllers, it is completely doable.

Alex Covic
profile image
... I have this wetness in my eyes, dropping down on my beard. I was not expecting this in my lifetime.

dmesg | grep linux-gamedevs

Harry Fields
profile image
Ya know, I may not be an advocate, but I'm glad to see a true believer getting some happiness with all the Linux-ey news this week.

S D
profile image
[31337.051091] gmdev1: linux-damedevs in da hizzouse

Michael Joseph
profile image
In SteamOS will one be limited to running a single app at full screen? Or could you potentially release say... a scientific visualization app that ran in a window or even multiple windows (not necessarily multiple monitors)?

Alex Covic
profile image
Welcome to my universe, Michael.

I don't know, why you would ask such a question. But, please read here: http://en.wikipedia.org/wiki/X_Window_System ... here: http://www.opengroup.org/tech/desktop/x/ ... and here: http://www.x.org/wiki/

Although Valve has not yet released their official specs, I am certain, if it runs on Linux - even using "Big Picture" mode, you can still rely on the Unix/Linux roots underneath it. You can run multiple "windows", multiple "terminals", multiple monitors, even remote multiple windows, terminals and monitors - all at once.

[edit]

I still don't know, why you would like to run your "app" in a "window" (instead fullscreen?) or "even multiple windows" (multiple non-fullscreens???) - but hey, you have the freedom to do so, if you like.

May the source-code be with you.

Josh Klint
profile image
"Porting" Direct3D code to OpenGL is pretty serious business. I never bought into Direct3D for this very reason, and it turned out to be a good decision.

Harry Fields
profile image
Exactly, but reverse for me.

And since I feel Direct3D 11 is still superior to OpenGL 4 in terms of features and performance (yes, you can have very subjective arguments on the matter, hence my personal opinion), I'm simply not interested in rewriting any core engine bits. I've spent years getting to where I'm comfortable with D3D, so I'll leave OpenGL and WebGL to everyone else :)

Dave Hoskins
profile image
You are therefore a Windows developer, and always will be a Windows developer! ;)

Salamander Rake
profile image
I love all the microsoft fans out there who want to keep pushing a limited non-multiplatform
api that's development is starting to die off. There is one more issue everyone is forgetting about, who would want to run microsoft windows 7/8/8.1 with this kind of stuff out there https://www.eff.org/deeplinks/2013/10/nsa-making-us-less-safe .
Thank you I am happy with my linux box and I'm not willing to trade what little privacy I have to play a shoddy game for 30 hours of my life, thats 15 to 20 hours of game play and the rest looking around for something more only to realize that you shoddy devs care more about showing off your graphics engines (which most of the cool stuff came from dx and not from your actual work) then actual game play.
Another thing you all forget, G-Man Gabe used to work for microsoft,and if hes kicking it
to the curb in favor of linux maybe you devs should stand up and take note.


none
 
Comment: