Best Way to Port a Windows Game to Linux? 67
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?"
How is it written? (Score:5, Informative)
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?
open source (Score:2, Insightful)
Re:open source (Score:1)
Boot CD. (Score:4, Interesting)
Of course, you'd also want a Linux installer to pull the game off the CD, but that (obviously) needn't be autorun, or even very sophisticated. You'll probably end up being supported by the distros themselves anyway, if it's a good game.
Re:Boot CD. (Score:2)
Re:Boot CD. (Score:2)
But they are Linux ports! As to there being none, you [scummlinux.org] didn't [distrowatch.com] look [sourceforge.net] very [gentoo.org] hard [big.or.jp].
Re:Boot CD. (Score:2)
Re:Boot CD. (Score:2)
Now you qualify your statement! ;-)
You'll note that the gentoo boot cd games haven't been updated in over a year.
Do they need to be, if the game included still works on current hardware?
No activision, EA, or even Linux Game Publishing titles come out on boot cds. Computers aren't consoles, and nobody gives a damn about booting into Linux just for one game.
It's not a selling point for the users,
Re:Boot CD. (Score:2)
Re:Boot CD. (Score:5, Insightful)
I can't speak for anybody else, but I'm unlikely to play a game I have to reboot my computer for.
Re:Boot CD. (Score:2)
Same here. My PC is theoretically dual boot, so that I can still play Windows games. In practice, I find I rarely bother.
Re:Boot CD. (Score:1)
Re:Boot CD. (Score:5, Insightful)
I'd like to speak in your defense against the slightly-inflammatory responses you are getting.
If you stop and think about it, why do we have operating systems? Simply put, every machine is different, and the same code cannot power two unique devices.
Bootable games is a great idea, but the first problem you hit is this: "What is the program going to tell the hardware?" If the hardware is not the same on every device, it won't know what to say! If you try to tackle this program yourself, you'll have written an operating system before you know it. Your operating system will veritably do less hardware support and fewer features than, say, linux. :-)
Game consoles can handle bootable games because they are designed to make everyone's life easy; every unit is usually identical and almost always compatible. We PC users don't have the luxury.
It's not that you have a horrible idea. You have a good idea, but just not a realistic one.
Re:Boot CD. (Score:2)
Re:Boot CD. (Score:1)
Re:Boot CD. (Score:1)
Yeah, okay, I am being a little mocking but, really, if I wanted to use my whol entire computer just to play the game, I would get a Playstation or something. I don't want the game on a boot cd, and, in general, I do not like consoles either. Why?
a) the game isn't as modifiable (especially on a console, even if you d
WINE (Score:4, Funny)
When I run Democracy.exe, it makes some very cool noises, violently freezes up, stops responding to all my input, and then forces me to 'killall wine' and start over fresh after a while.
Not a bad start really, but you might want to simulate stupid politicians, taxes, and some oppressive patent laws, too. ; )
Then release a Dictator.exe that can't even be pkill'd!!
Re:WINE (Score:2)
Re:WINE (Score:3, Funny)
Must be a problem with WINE.
Re:WINE (Score:1)
Re:WINE (Score:2)
Re:WINE (Score:1)
Re:WINE (Score:2)
More information ... (Score:2, Informative)
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).
Getting a Port Done (Score:5, Informative)
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!
Re:Getting a Port Done (Score:3, Interesting)
not only volunteers, but extremely talented coders that were able to not only port the game, but improve the codebase by fixing compiler-specific issues that were not apparently until trying to compile under gcc.
what it comes down to is - if you have written your game using directx (anything) then the game
Re:Getting a Port Done (Score:2)
however, you are right on one thing. If you do not know anything about linux, get some exp before you port it.
Re:Getting a Port Done (Score:1)
Not true. DirectX will typically be a fairly small subset of the game code. As long as the game is modular and the graphics, sound and controls are toptally different systems from the gameplay code, it's just a matter of conve
Huh? (Score:5, Insightful)
Dude, no offense, but I hope you do realize that artistic talent and coding talent are _completely_ unrelated skills. Most coders I know, myself included, are awful at drawing anything, and viceversa people who have a love and skill for arts, tend to be less interested in coding or Linux.
Like any skill that takes not only natural talent, but also lots of practice, _very_ few people are interested equally in both and spend equal time pracing both. There are only so many hours in a day, and someone interested in coding will spend those coding, not drawing.
So judging someone's coding skill by how well they draw is just bogus. It's like judging someone's ability to drive by their skill at poker, or viceversa. It's simply unrelated skills.
So, yes, a lot of freeware or OSS games have sucky art, because that's the best that a coder could whip up. Coder nerds are many, artists interested in working for free to stick it to MS or to make a statement about how evil IP is, are very very few. Unless you're willing to pay someone, and as a lone coder making a freeware game you probably don't want to pay for it, yeah, you're stuck with whatever sucky graphics you can whip-up in Gimp.
Re:Huh? (Score:1, Redundant)
Remember: wine is not an emulator (Score:2)
2 cents (Score:2)
Having zero personal experience with this (but hey, it's an Ask Slashdot), I think a porting house would also be able to help you distribute it. Once it's ported it doesn't do you any good if you can't find the market for it, and the way that you reach your Windows demographic may not work for the Linux market.
That aside, it will also be important to know how complicated it is and how soon you want to deliver it. If it'd take one guy a year, but 5 guys 3 mos, maybe it's more important to get it out sooner
Worked for X-Plane (Score:1)
I don't know... (Score:5, Insightful)
Re:I don't know... (Score:1)
Please don't do another bad port. (Score:5, Insightful)
Short answer: Make sure that the game runs correctly under Wine. Fix your Windows code to be Wine friendly.
Long answers:
I don't have the knowledge or the time to handle a Linux port, myself.
If you're not willing to commit time or resources, then I guess you won't care if it ends up being a shitty port.
What's the best way to arrange for a commercial port of games software to the Linux platform?
The best way is to have the same team that built the Windows version make the Linux version at the same time as the Windows one.
They should try and get the game working on each target platform from as early in the development cycle as possible - ideally from day 1. At least one developer should be working on each platform full-time as their main development workstation. And they should do at least one full build and brief play test per week - to ensure the different platforms don't get out of sync - AND they should check code in often so that cross-platform issues are caught as early as possible.
At the start of the project, abstract the platform-specific code to the edge of the codebase. Once the platform-specific code is solid, the developers should transition to building the game on top of the platform code - each being focused on game features, but fixing platform-specific issues as they arise. As you go, you'll probably build up a core library of cross-platform functions that are needed when dealing with multiple platforms and compilers.
And that, IMHO, is the best way to ship a multiplatform game with a limited team.
Is it worth talking to lone enthusiastic hackers about collaborating?
No. I personally would avoid this from the administrative issues alone. Besides trusting them with your codebase + assets. Then there are legal / non-disclosure issues, plus whatever "creative urges" they have to differ from what you were expecting them to be doing.
Would I save myself a lot of hassle by selling the porting rights to an established Linux games company?
No. As has happened with other game ports - the porting company would then produce a separate product. Users would then have to purchase it separately from the Windows version - meaning that existing customers would have to buy the game multple times if they were expecting to be able to run the game on another platform. As both a gamer and developer, I think that's unfair.
And the autobooting Linux CD (with a Windows launcher) is just about the dumbest idea ever - if there's a Windows version, users are going to want to run that - not the Linux version. It changes the focus from the product (the game), to Linux (an OS). Good for Linux zealots, bad for commerce.
Make sure that the game runs correctly under Wine (Score:2, Interesting)
Currently, support for games under Wine is a little bit mixed but there's a lot of heavy development going into Gaming at the moment so expect things to improve at a rapid rate.
Using Wine to port the game would, in theory, be the fastest way and performance and stability should be very close to a native Linux application. It's also very good for the
Icculus (Score:5, Informative)
Slightly off-topic, but anyone played the game? (Score:4, Interesting)
I downloaded the demo, and it seems to be a total policy wonkage. Very pretty, and some good ideas, but apparently flawed. For example, the *absence* of Policy does not appear to have detrimental effects to any group of voters (I just killed the NHS, because the slider told me that would piss the least number of people off!)
It also doesn't have a very good financial component; no granularity for income tax / personal allowances, etc (policies I'd like to tweak would be 'personal allowances' and tax bands, for example - the BBC has a budget simulator that does this). And the sliders are biased : the choices range from 'very fair' to 'scandalous'. Mmm yeah. Well, if you're a Socialist, a really high tax on rich folks wouldn't be considered scandalous.
So, to conlude : Absence of policy should impact voter groups, much, much better handling of the economy, and less bias in the slider descriptions. "very low" to "very high" would probably work fine for most things.
Re:The best way: (Score:2, Funny)
Wow, your game's simulation of the results of Red State education policies is spot on!
All that's missing from the lame gay-baiting is a rambling denunciation of about "Derw
icculus (Score:2)
Re: (Score:1)
Three Letters (Score:1)
Deja Vu (Score:1, Funny)
1. The sensation that you've read this very article before.
2. The sensation that slashdot is losing it's edge.
Re:Deja Vu (Score:1)
Use cross-platform libraries (Score:4, Interesting)
For the rest of the code not supported by standard platform independant libraries, try to create your own library-like structure so the platform-dependant stuff is seperated from the generic code.
Porting the whole thing should now be a lot easier.
You might be interested in this previous /. thread (Score:4, Informative)
Really? (Score:2)
Why haven't anyone mentioned Loki? (Score:1)
Loki Entertainment Software contracts with successful computer entertainment software companies to port their best selling titles to Linux. [lokigames.com]
Is it worth talking to lone enthusiastic hackers about collaborating?
No.
Would I save myself a lot of hassle by selling the porting rights to an established Linux games company?
Yes.
Re:Why haven't anyone mentioned Loki? (Score:1)
Re:Why haven't anyone mentioned Loki? (Score:1)
Re:Port to BlitzMax... (Score:2)
Nick...
I have a feeling that this game isn't balanced. (Score:2)
The first picture [positech.co.uk] shows the canidate as a socialist.
The second picture [positech.co.uk] unemployement is high and car usage is low.
The third picture [positech.co.uk] Socialist is topping out at the top of the chart.
The fouth picture [positech.co.uk] is about gay marriage and gives a week argument about the church wouldn't like it and a good strong argument for it. In addition the mou
Re:I have a feeling that this game isn't balanced. (Score:2)
Is there a market? (Score:1)
The best port is no port (Score:2, Funny)
Re:The best port is no port (Score:1)
I've tried to convince Cliff about using Java before but he won't take the plunge.
WineLib (Score:2)
Try compiling it under WineLib [winehq.com].
"Compiling apps under Winelib should theoretically involve only makefile changes."
For anyone who cares (Score:1)