Best Way to Port a Windows Game to Linux?
cliffski asks: "I have a Windows game that may benefit from a port to Linux. It's a complex politics sim based on a neural network, (think NationStates with complexity) and is probably right up the street of many Linux gamers. The problem right now is that I don't have the knowledge or the time to handle a Linux port, myself. What's the best way to arrange for a commercial port of games software to the Linux platform? Is it worth talking to lone enthusiastic hackers about collaborating? Would I save myself a lot of hassle by selling the porting rights to an established Linux games company?"
Part of porting software is writing with portability in mind. What language did you write it in? What types of backends and libraries did you use?
What little porting knowledge I have, I know that writing (or re-writing as the case may be) using open libraries will take you a long way, and then seperate your functionality out well and use lots of commenting. Then if you need to port to Linux, if you don't do it in-house you can at least hand off something that is ledgable.
For example, if you've made heavy use of directx, fork your code off and try using an SDL display and input model instead. If that works, then you've gone a long way to getting the work done. Are you using assembler to speed up portions of the code?
Karma: Chameleon (mostly due to the fact that you come and go).
More information would help, such as what language/environment you used to develop your game.
Since you've not given much details why not look at this previous ask slashdot:
(A previous discussion about finding a porter for a Windows game).
Step 1) Don't let average joe user do it, he doesn't actually have a clue about the difficulty involved in porting a game. So many times I've seen John Q. Linuxguy think he can go off and make the most awesomest counter-strike clone EVER. What he usually ends up making is a random arcade game clone starring Tux, and breaking the next rule many times over.
Step 2) By the same line of thought, investigate what this person has done before. A simple rule of thumb is: Blue supernova effects in any game they've worked on, indicate that they are horrible horrible people who figured out how to make a game based on the gimp's supernova effect. Unless this person is Bill Kendrick, who is an excellent coder besides his lack of creativity in the art department, the code skills follow the effort in the art.
Step 3) If you want it done right... learn SDL and make your next game with SDL handling the input/window/etc. Even if you don't port your next game yourself, the SDL stuff is great for porters.
Similarly, you'll notice that most people who licensed the Quake 3 engine almost immediately switched to OpenAL for sound output. Next to zlib, this is probably the second piece of open-source most widely used in the non-indie game industry.
Step 4) Stay the heck away from fmod and other per-platform licensed things. They'll charge you a second time when you want to release your game on any other platform.
Step 5) Google for articles on writing portable code. Especially those by Brian Hook and Ryan Gordon.
Step 6) Post on your regular website that you're looking for someone to port your game to Linux. They'll come if your game is popular at all, and you're more likely to get the people who are really interested and will follow through. Even if it is the friend of somebody who is really interested.
Step 7) ???
Step 8) Profit!
Check out ioquake3.org for a great, free, First-Person Shooter engine!
Give Ryan "icculus" Gordon a call.. http://www.icculus.org/. He has worked on many ports over the years including America's Army, Medal of Honor, Postal 2, and plenty of others. He gained alot of experience working at Loki back in the day. I'm sure he wouldn't be opposed to helping you out.
In linux libertas
Where can I find Linux porters?
I don't read your sig, why do you read mine?