Promises And Pitfalls In Linux Game Development
As a follow up to an article that appeared on GameDev.Net GameDev.Net last year, I've decided to update it and note some of the changes in the industry that have occured, from the news of several developers forming in-house porting teams to Microsoft's stance on opening parts of DirectX. In the original article, I explained the lack of developers interested in developing Linux titles -- their disinterest left the task to a few companies that were established for the sole reason of porting Windows titles to Linux (namely Loki). Since then however, several larger developers have formed in-house teams to port their titles to Linux. That means companies such as Creature Labs, (currently porting Creatures 3 to Linux, should be out very soon), which probably once considered Linux to be so niche that only a group of complete idiots would try and make money out of developing games for it.
Of course, there is always a group of idiots, and those idiots were Loki. By convincing larger developers to outsource the porting, they demonstrated that there is a market on Linux, albeit not a very large one. But how large is the market? According to John Carmack (For cave dwellers: John Carmack is the "big guy" at id software), sales of the Linux version of Quake III Arena were worse than bad, but is that a suitable example?
Like many examples of the poor sellers blamed for the lack of new Linux games, the Linux version of the product was released after the Windows release, but the datafiles were compatible with various other operating systems. With patches and downloads for the other platforms freely available on the Internet, why would should people wait a few months to get the latest gore-fest when they can buy the Windows version, reboot, and play on another platform until the binaries for Linux become available?
The sales figures that the skeptics quote should never be considered of any merit until a few games are released for Linux and Windows simultaneously.
Many people seem to be under the delusion that publishers wouldn't be interested in Linux games, but this isn't the case. Granted, many of the publishers who are prepared to venture into the world of Linux are usually associated with budget titles and/or long dead platforms, they seem to have faith, and with shops such as TuxGames offering a wide range of Linux title, it seems there is a market after all.
But what about the developers? Well, it seems that many of the larger developers aren't prepared to take a chance on Linux, with companies stating that there are too many complications when developing with Linux, such as the lack of DirectX-like APIs.
Sure, we have OpenGL, but with the release of DirectX 8, the cross-platform API just doesn't cut it anymore. Lacking universal support for vertex and pixel shaders, developers are forced into the situation where they can either reduce the quality of their titles by ignoring the improved features that the newer releases of DirectX offer, or by ignoring Linux.
Unfortunately, many developers choose the latter option, instead of thinking about writing clean code which allows the operating system to be accessed only through an abstraction layer, reducing development times for ports as well as allowing the programmers to change the lower-level code without breaking anything.
In a recent discussions with Tony Cox, head engineer of Microsoft Gaming Relations, he informed me that Microsoft is currently looking at ways of opening up parts of DirectX, with the aim of getting the technology onto non-Windows platforms.
When we originally discussed the issue, he was refering to getting DirectPlay support for the PlayStation 2, but in later discussions he mentioned that they may allow 3rd party developers to do the work for them, including Linux support.
With the ever increasing commercial interest in Linux, from both publishers and the developer studios themselves, it is only a matter of time till shelf space in your local EB is dedicated to Linux.
Making a DirectX equivalent for Linux is a good idea too. Duh.
Hmm. Has no one here heard of SDL? http://www.libsdl.org/ - go check it out. It's the library set that Loki uses as a base for porting its titles (developed by Sam Lantinga, an employee of Loki). It even works on top of Solaris, BeOS, MacOS, MacOS X, Win32, etc.
Or no, maybe we should just develop yet another completely incompatible API, that's specific to one platform. What a great idea. (Not.)
_____
Sam: "That was needlessly cryptic."
Max: "I'd be peeing my pants if I wore any!"
OpenGL extensions ARE a viable way to access the pixel shaders. For game programming, a lot of the OpenGL API is obsolete. Using glLight* calls to light a scene is just not done. People commonly prefer to use GL_ARB_MULTITEXTURE and blend another texture pass with lighting.
Likewise, the GL calls for the new pixel shaders are reputedly supported by the Nvidia drivers under Linux already. John Carmack stated that when Doom 3 comes out, it's going to only work with all it's features under Nvidia's drivers. However, he's going to lend some code to get the other drivers for the operating system up to speed.
OpenGL is not a lost cause. Dx8 is getting a lot of hype right now. Lots of developers are preferring it because, imo, Microsoft has very timely, large and helpful responses to game develpers, whereas OpenGL has to also cater to those CAD guys.
For a list and description of all the OpenGL extensions, see this URL.
Unfortunatelly I find Mark's article quite substance-less and quite a number of erros. Since I've investigated the situation of gaming on Linux quite extensively for the last few months I think I should correct/add some things:
;)
1. I don't know any game developer who have formed inhouse Linux teams. The Creatures port is done by one or more of the original coders, mostly or completely on their sparetime since some of them are Linux fans. The company just decided to take a shot to test the waters and make their developers happy when they practically gets the port for free anyway. This was quite obvious from an interview that I *think* was headlined here on Slashdot.
2. If I remember correctly Carmack said that Linux sales "were a disappointment, but covered the costs". Of course, it's up to anyone to interprete that but I wouldn't translate it to worse than bad.
3. There are already games that have been released for Windows and Linux simultaneously, but most of them have been distributed on the same CD so it's hard to separate sales according to platform. No bestseller has done that so far though.
4. He forget what I see as the main reason for low Linux sales of Q3A: The terrible state of 3D support back then, making it almost impossible for people to run even the demo. Would you buy a game that you can't run? With XFree 4.0x the situation has improved drastically. Note that Loki didn't port any 3D games until later, when 3D acceleration was a little bit more in order, a wise decision I would say...
5. See some earlier posts regarding the state of Vertex Shaders in OpenGL.
6. Microsoft has Direct X, we have OpenGL/OpenAL/SDL which works great in combination and provides us with a very nice, cross-platform API that I (professional game developer for more than 5 years) and many with me clearly prefer instead of Direct X since the API is so much easier and straight forward. Granted, Direct X has a lead, but OpenGL/OpenAL/SDL keeps up quite nicely in the development.
7. He forgot to mention that we now have at least 3 porting houses. Loki, Tribsoft (www.tribsoft.com) and Hyperion Software (www.hyperion-software.com). Which I think is very promising.
However, I do agree with his analysis that things keep getting better. The technology (especially 3D acceleration) has taken a big step forward, more games are coming from more developers/porting houses and total game sales are increasing.
I also know some more good news, but unfortunatelly I can't tell you about it...
The Linux game market is never going to be big nor profitable, no matter how many Linux machines are out there.
;)
People who run Linux on the desktop are not hardcore gamers. They are people who want a Unix Workstation on their desktop, either at work or at home. On the other end of the scale, people who buy gaming machines don't put Linux on it. They want something that is simple to install and maintain and you can run lots of games on; Win32 is that. Linux is great for games, don't get me wrong, but there is no market for games on it.
The best that us rare Linux gamers can hope for are the token Linux ports that people like John Carmack insist on putting out.
Linux server ports are another story. I don't think a online game would make it if it did not have a Linux and/or BSD port. Win32 just sucks to much to host big online games. I speak from experience as a former game server admin and current online game player.
Now if I could just my copy of Tribes2 shipped, I would be a happy camper.
--
Linux O Muerte!
I don't think it's even as complicated as you make it out to be. I think the simple answer is that there aren't "people who play games on Linux". There are simply "people who play games". And the existence of one or two Linux games isn't going to obviate the need to have a Windows partition hanging around to play things under. And, really, when I play games, the underlying OS is merely a commodity...I don't care what it is so long as it gets the job done. I'd wager that the majority of people who play games feel the same way. After all, I don't buy a Playstation just because Sony makes it...I buy it because of the games I can play on it. Why should Linux be any different?
Game development in the current business model is problematic even for Windows platforms. The problem is not the games or the technology, it is that there is no viable business model for any game other than the top ten. Its that simple.
:)
By the time the boxes get to the retail shelf, the developers and publishers have dug a hole so deep that they have to sell hundreds of thousands of units just to break even. Those numbers aren't there for any games except the top ten and perhaps one unlikely left-field surprise. Everyone else loses their shirts. This is the fundamental problem in computer games.
Until this problem: the business model, is fixed, nothing is going to improve. Fixing the business model will mean that some difficult decisions will have to be made, but at some point, the game industry is going to have to face reality:
1. Re-invention of a "state of the art" engine for every single title will have to stop.
2. Standard platforms and APIs will have to be developed and *adhered to* for five years at a time or more. Accomplishing #1 will help here.
3. Games will have to become simpler, in order to encourage casual players to buy more games.
4. More companies will have to get involved and be able to succeed.
Otherwise, its just going to be one expensive project after another with "worse than bad" sales, while the game press whines about the lack of originality and how the game industry isn't enough like Hollywood and that the engine and graphics look "dated," and the players complain that every game is a clone of some other game, and everyone else wonders why someone would spend $3500 upgrading their computer so they can get some game to run faster.
When a good game can be developed for a couple hundred thousand dollars, then it will become possible to make money developing primarily for Linux, because selling 20,000 units at $30 means there is some profit to be had. If it costs $5 million, its not going to happen, unless it is a cross-platform effort, and even then, it won't get funded, because the break-even number is just too high.
It might also be nice if some new "genres" of games could be developed and/or some games from the semi-forgotten genres like puzzle, adventure and interactive fiction could be developed. A good sign would be a wildly successful game that doesn't neatly fit into a particular section of PC Gamer.
FWIW, our company fully intends to continue developing for Linux.
Just our $0.02
It costs more to make a Windows version, the Linux market isn't as competitive, and the market is smaller. And your above comment just illustrated one of the biggest problems - if you're willing to purchase the Windows version, there's no reason for a company to create a Linux version at all.
---
My opinions are mine.
This is not a troll or a stab at any Linux OS or the Linux community, but some of these excuses for why Linux is where it is for gaming are sad.
:)
"If they would have come out at the same time..."
"If the price wasnt different..."
"DirectX 8 is better now, noone will use OpenGL..."
"People who run linux arent hardcore gamers..."
"Why dont they just release a free or near free Linux version, when the PC version stops selling..."
etc...
and my favorite "going to say something bad, forgive me" line:
"Linux is great for games, don't get me wrong..."
I love the last one because it is so far from reality. I think this is the reality:
- The non-comercial Linux users do not like to buy software, ever. No one will make money becuase you dont buy. Hint, they know this. If the brunt of Linux development is people doing it in there spare time, i.e. people who have to make money and eat, then programs that are hard to make like games, will always come slow.
- This is true wether the price was higher, the same, or lower. Without commercial incentive, you are screwed. Having a Linux dev house make a game just to please the hardcore set that never really makes money, will never get you there. Carmack said, go buy it and show us there is a market. Did you do that? Why? Even just to prove that you care, you could have. You didnt. It was a test case, and you helped people see it as more of a money loser.
- DX8 has nothing to do with anything. Several developers have been busting their ass for years to use OpenGL which has always been a uphill fight for PC games. There were no drivers, there were no cards, there was no to little support from Microsoft. I mean just think about the drivers issue, Carmack had to pay a guy to build a big diver bundle because if he didnt, the game would not have worked for anyone. Anyone does not mean us or any of the upper 10% who can go get our own stuff, but the masses. I mean he was commited, and knew he wasnt going to make any money as far as Linux was concerned, but wanted to do the right thing.
- I think lots of the same people who are hard core gamers are Linux friendly. But that still has nothing to do with comercial viability, which is the mass of people who would like to buy a game who do use Linux.
- This one kills me. The one about giving away a game when its done selling to the PC or other platform. Most companies cant afford to go back and rework what is basically an end of life product for a platform that they precieve as never making money. Especially if they are going to have to support it. No that doesnt always mean tech suport, but worse programming sources at maintainance.
- The plumming in Linux is cool, but not the best for making and selling a game. Examples: - xFree86 - dll hell in latest distros which compounds the problem of releasing binaries for all the distros - better, but not great, essential API and hardware support - etc... Dont think so? Ask someone who has to try to make games.
- Im sure if you go back and read all of these posts and think about what Linux has to offer from a business and technical stanpoint, and really think about it, then you might see where im comming from.
So flame me if you must.
I think Linux and the community that surrounds it are a great idea. But if you dont do a reality check every once in a while, linux will never climb out of the hole. Isnt that what you want?
Just dont say late product, microsofts fault, wrong price, greedy corporate whores, etc... And if your really desparate, you could try buying a game for linux. That way the people at the game companies who bothered to make the software for you winey asses can feel like they might be able to make a living from Linux software one day.
Then maybe they can drop windows.
It's sad to say... but today's gaming market seems to be in bed with the blinding speed of the latest CPU. Gone are the days when people could be satisfied with simple games like Tetris.
If the newest game doesn't require the lastest 32mb graphics card and 900Mhtz CPU... it's just not worth it. So how does Linux fit in? What corporate ties does Linux have with hardware developers? MMX and Active X compatible CPU's act as a kickbacks for game developers... And it works both ways: We make a new software technology which will give you a reason to make a new hardware one.
Considering that Linux is always playing catch up in terms of hardware compatibility, MHO is that it will be quite some time before Linux is a major game player.
I hope I'm wrong.
Until then I'll just stick to tetrinet.
--
Need ecommerce that doesn't suck? FoxyCart is for you.
The Linux versions of games are often priced much higher than the corresponding Windows version. It's tough for me to justify buying the Linux version when I can get the Windows version for a much lower price.
For example, Quake 3 Arena for Windows is available for $29.99 from Amazon and the Linux version is $44.99 from Amazon. (or $44 at Tuxgames).
Alpha Centauri is $9.99 at Amazon, and the coming soon Linux release is priced at $49.99 on amazon and $46 on tuxgames (yeah, the Linux version comes with an add-on pack - the corresponding Windows version is $39.99 on amazon).
Simcity 3000 Unlimited is $46 on tuxgames, and $49.99 on amazon for the Linux version. The Windows version is $39.99 on Amazon, while regular Simcity 3000 is $19.99 on Amazon.
As a designer at a company with a title about to be released on the Windows platform (see our ads in the May issue of PCGamer and CGW), I've brought up a couple times in our meetings that we should at least try to see if we can easily compile our code under Linux with Winelib.
Unfortunately, it's far from trivial to do. On top of that, our market studies show a very, very minimal market for Linux games. Most Linux installations are running on servers, not "desktop" systems, and there's such variation between different Linux distributions that shipping binaries for Linux-as-a-whole makes shipping a binary that runs on Win95, 98, ME, and 2000 look easy.
In short, we haven't been able to justify spending a disproportional amount of time on Linux users compared to Windows users.
It reminds me a little bit of a webpage I put up (this one, if you're curious), which relies on some Javascript for the user interface. Unfortunately I had to make the page IE only because I couldn't find any decent documentation for Mozilla's object model, nothing nearly as nice as Microsoft's documentation for IE, so I had to end up dropping support for Mozilla. IE makes up 80% of my readership, and I had already spent well over half the time I spent developing the page just trying to get it to run with Mozilla. I had passed the point of diminishing returns.
So I can understand my company's stance on not being interested in putting the effort in to get the code to work with Linux, but I'm still rather interested in doing it myself. Which brings me to a question: If I'm able to get the game running stable under Wine, can we ship a copy of Wine and a Linux installer on the CD and advertise we're a game that runs on Linux, or is that cheaping out?
NO CARRIER
Oh, Q3 did good in the 'pushing the envelope' area. Where it was lacking was in the 'sustainable gameplay' area.
Vanilla Q3 just gets boring after a while.
--
Soma: because a gramme is better than a damn.
The reason that Quake 3 Arena for linu didn't sell well is not just because it was release well after the windows version. There are numerous other factors that aren't even mentioned here.
The first thing is that the are selling a game for linux, that can already be played with wine quite easily. Anyone who wants to play games and uses linux, probably is already doing this. They should release a game like counterstrike which is difficult to get to run under wine. Or a game that is impossible to run under wine like Tribes 2 (I tried, maybe someone else succeeded).
Why should they pay money? Let's take it for granted that you aren't a software pirate. When new software comes out for windows you run out and pay 50$ for it. When new software comes out for linux you go to freshmeat and download it for free. Linux people don't like to pay for software. Linux is a high quality operating system for free, and windows is a low quality operating system for lots of money. That's what keeps linux alive is that it costs 0$. People don't want to pay money for linux software.
I propose that game companies release FREE linux versions of their games. Not their newest games, but games that are just old enough so that they aren't selling any more copies. Basically everything from abandonware up to the tomb raider series, final fantasy 7 + 8, Mechwarrior 1 - 3, etc. Every games from that time back should be made available free for linux. All the gamers would RUSH out to download mandrake and red hat so they could take advantage of the situation. Then Start releasing the new games for Linux and charge money. Claim that the game runs faster in linux and is more stable (it's true). Charge only 40$ instead of 50$. Watch the money fly in.
Making a DirectX equivalent for Linux is a good idea too. Duh.
The GeekNights podcast is going strong. Listen!
Take a look here for all the extensions available to you (including shaders) right now.
Take a look here for NVidia's OpenGL SDK which includes, yup, vertex shaders.
In the DX8 world developer's will also need to cripple their software if the card doesn't support the shaders in hardware. So I really fail to see what the argument is here.
Ryan T. Sammartino
Ryan T. Sammartino
"Ancora imparo"