Support us on Patreon to keep GamingOnLinux alive. This ensures all of our main content remains free for everyone. Just good, fresh content! Alternatively, you can donate through PayPal. You can also buy games using our partner links for GOG and Humble Store.
What exactly goes into porting a game?
GustyGhost Nov 12, 2015
Most of us moderately understand game ports; wrapped versus native, APIs and engines, etc. But what exactly goes on in the process of porting a game to Linux (or even from console to Windows)? For example, a game built around DirectX which never initially had plans to be brought to Linux or Mac. It's obviously not as simple as adjusting the files for case-sensitivity and changing rendering calls to OpenGL.

I would just like to know more about this I guess.
tuubi Nov 13, 2015
Disclaimer: I've never actually ported a game and I'm no expert on many of the specifics and APIs involved, so I'm just repeating what actual porting superheroes like flibitijibibo and icculus have written around the interwebs.

Porting can be as simple as exporting your game to Linux with the click of a button if you use an engine that makes this possible, or it can be a dauntingly tricky task if the original codebase is tightly tied to the original platform. This is doubly true if the game makes use of Windows-only third party libraries, or triply if it relies on quirks and outright bugs of a platform or a specific compiler.

But generally you'd first map out what parts of the project need to be ported or "made portable", then pick suitable tools and libraries for the task, like OpenAL for audio, SDL for input etc. These are good and mature libraries that work well in both Windows and Linux, so you can use whatever IDE/editor and OS you're most comfortable with for this. Although using a cross platform compiler or two and testing on all target platforms is better for your sanity at this point.

Porting the graphics engine can be really hard or just moderately hard, depending on the level of your expertise and the existing design. If the original engine was indeed built tightly around D3D as you said without any abstraction at all (which is simply bad design) it'll take major refactoring, especially if you need to keep the existing backend in addition to the new OpenGL code. Even in case the original code is excellent, this isn't a simple search-and-replace. But I'm stepping out of my depth here, so that's as far as I go.

Ryan 'icculus' Gordon is often cited as saying that porting a game from Windows to Linux can take anywhere from 24 hours to 3 months, but that's probably more than a bit optimistic for mere mortals.
Mountain Man Nov 13, 2015
There are different ways to port a game, all with varying levels of complexity and success.

The following article previously posted on Gaming On Linux gives a pretty in-depth overview:

Why We Want Native Ports Only
GustyGhost Nov 14, 2015
Thanks, guys. I came across this which was pretty neat also: https://www.youtube.com/watch?v=btNVfUygvio
While you're here, please consider supporting GamingOnLinux on:

Reward Tiers: Patreon. Plain Donations: PayPal.

This ensures all of our main content remains totally free for everyone! Patreon supporters can also remove all adverts and sponsors! Supporting us helps bring good, fresh content. Without your continued support, we simply could not continue!

You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
Login / Register


Or login with...
Sign in with Steam Sign in with Google
Social logins require cookies to stay logged in.