| By Dee-Ann LeBlanc | Article Rating: |
|
| March 16, 2004 12:00 AM EST | Reads: |
18,136 |
For this month's Gaming Industry focus, editor Dee-Ann LeBlanc had a roundtable discussion with some of the leaders in this space. This article covers a recurring theme with the participants - cross-platform game programming and design. Read on for Dee-Ann's insight and comments from the gaming industry pros who shared their expertise in the discussion.
One issue heavily discussed among the crew of Linux gaming experts listed on page 10 is that of cross-platform game programming and design. I feel that cross-platform programming of all kinds is going to become more and more a requirement in this increasingly heterogeneous world, and that as more programmers learn techniques such as adding abstraction layers between the program function and the underlying operating-specific code, it will become easier and cheaper to implement - not to mention that better tools will likely become available.
However, I'm not a programmer, so it's easy for me to make such sweeping pronouncements. It seems that since we're in a computing age in which multiple viable platforms are gaining ground, ultimately keeping things tidy without having to completely reinvent a program for each OS makes sense.
So, having gotten my own heavy bias out of the way, let's look at a number of the issues brought up during the roundtable discussion that bear on this issue of getting games for Linux and cross-platform gaming in general.
Pros and Cons
According to Timothee "TTimo" Besset of id Software, the gaming company that has championed the cross-platform game approach for years, coding your games for multiple platforms, "make[s] your code more robust. Your source [has] to be cleaner, and you'll have to avoid ugly OS-specific hacks. Some bugs are easier to track down on one system or the other. Releasing your game on several platforms is a proof of technical expertise."In addition, many may not be aware that new game companies often license the underlying engine from another (middleware) company so that they don't have to write the entire package from scratch. After all, according to Chris DiBona of Damage Studios, "Developing a good engine can take more than three years." That's a long time to go without any form of income, and it's the rare investor who is willing to wait that long for a brand-new company to complete just the underlying technology for a game. Keep in mind that the engine only gives you the "under the surface" stuff. You still have to write a game to ride on top of it!
Many young game companies license engines. Some of these are written only for DirectX. Others, from companies such as id Software, stick to OpenGL. According to Besset, "if you license id technology, you get all platforms (including consoles) in the same package. We use a single OpenGL rendering back end, so that's easy. Some engines use a D3D back end on Windows and a GL back end otherwise." These other engines might have been written primarily for DirectX or OpenGL, with support for the other wedged in after the fact when need suddenly arises, or in some cases were written to easily switch between DirectX and OpenGL from the start.
The problem here is that when you license a game engine from many game and middleware-only companies, you end up having to pay for individual licenses for each platform you want to release your game on - though this charge is not actually (usually) related to the multiple library issue. According to DiBona, "If your platform costs aren't covered by those users on those platforms, you're unlikely to pay that fee and thus support that platform. Accommodating cross-platform compatibility costs money....That doesn't mean that Linux doesn't get served, but it might mean that it is subsidized by sales on other platforms. For instance, we really want to support Linux because that's where we're from, but we don't fool ourselves and we know where the primary market is for our product."
After all, according to DiBona - after reading the id site - id Software's cost of $250,000 and 5% of income per platform for its engine, paying fees for many platforms "isn't an option for all but the most well-funded or established companies. The cost of getting every platform via id [in particular] ends up being more than buying the platforms you need from other engine manufacturers." Especially since, as he aptly points out, people are not going to buy the same game twice just so they can play it on different platforms - at least not to play it on multiple computer platforms.
More Reasons to Go Cross-Platform
Aside from wanting to offer games to people on many platforms, there are actual QA reasons to keep game programming a cross-platform endeavor. According to Ryan "Icculus" Gordon, the porting machine behind many of the mainstream games that people enjoy today under Linux, "there are good technical reasons for remaining portable, even if you never intend to ship on anything but Windows. You run Valgrind on Linux and Shark on Mac OS X. You find memory corruptions and leaks and bugs faster, your code is cleaner, and your developers are kept more honest. Better code and less development overhead (you heard that right) are a certainty...if this methodology was employed from day one."Anyone who has used this strategy, either for games or any other software, will attest to this in a heartbeat. Those who haven't used this strategy lack foresight, vision, or management. Sadly, most software, games or otherwise, falls into the latter category."
Fighting the FUD
There is also the issue of misinformation and confusion among existing game publishers about Linux. Gordon points out that the most common misconceptions that he hears are:- Linux is hard to use.
- Linux has a million incompatible versions we can't support.
- Linux users don't buy software.
- Linux users are all pirates.
- Linux users are immature pains in the butt.
Then there is the problem mentioned in the "Mainstream Games on the Linux Desktop" roundtable discussion, which I'll paraphrase here. Many game publishers don't want to have to provide technical support for Linux users. As Gordon points out, most Linux users are so happy to have the game on their platform at all that simply saying, "We don't support this product" is a bit of a "Get Out of Support Free" card for now. Linux isn't the only platform with this problem, though. In a way, the FUD around games for the Mac is worse.
According to Gordon, "It's assumed that Mac gamers are willing to put down money, if you can find enough of them, but they are frequently considered to be barely literate. I find this to be fairly insulting; I've heard numbers that suggest the majority of Mac users have a college degree, higher IQ, etc., but people think that they can't follow a README that says 'download these files, drag these things here...'. On Linux, you can get away with that; people will jump through complex hoops and Google for any tidbit of information that gets them closer to playing the game. On the Mac, publishers assume that if it's not polished, packaged, and installed and running with two clicks of the mouse, the Mac gamer will curl up in a ball and weep at the sheer technical challenge of it."
Another Side of the Coin
Then there's TransGaming Technologies, the company that stepped forward to fill the existing gap between Linux users (who want to play games) and the publishers that so far haven't shown the desire to seriously cater to the Linux market. While there are arguments over whether TransGaming's WineX is healthy for the Linux gaming industry, some companies do actually hand over their source code to the company in order to let TransGaming make Linux-specific tweaks for better performance. This seems like a good starting point.Gavriel State refers to the "hybrid" approach used for those games for which the source code is available. With this approach, "the executables are built on Windows using Microsoft Visual C++ (with its higher-quality code generation), and they run on Linux using the WineX loader technology, but they also have Linux-specific optimizations in them.
"For example, both games have minor changes to the way in which a backbuffer is finally drawn to the screen. This allows us to bypass some of the overhead that we would have to tolerate on a pure Windows title. That specific optimization is only really relevant for 2D games, but other optimizations are possible in 3D titles as well when we work with source code.
"TransGaming's versions of [The Sims and Kohan] also have various Linux-specific features in them. For example, The Sims on Linux replaces the use of a proprietary MP3 codec with Ogg Vorbis, and when doing an HTML export of an 'album' will produce better HTML than the Windows version does (on Windows, only IE can display the albums). Kohan on Linux also uses Ogg Vorbis audio, and the resulting size savings made it much easier to distribute the game online."
Also, in an amusing display of how to approach the issue of fighting game piracy, State continues: "TransGaming's Kohan on Linux also incorporates a Linux-specific copy protection mechanism. If the game appears to have been pirated, it will put up a message saying so, and ask the user to contact TransGaming. Then, the game will become subtly impossible to win, and every five minutes fire will rain from the sky onto your troops. This is accomplished in part through calls from the application to various bits of Linux-specific code."
TransGaming also handles porting games to OS X as well as Linux, and this actually adds some new challenges rather than being a straightforward issue of "you're porting to Linux so OS X should be easy." Some of these problems will also occur in those cases where people are running Linux on the PowerPC platform.
ATI, Are You Listening?
One common refrain in the roundtable discussion was, "NVIDIA's drivers for Linux are good, ATI's aren't." According to Icculus, "ATI's drivers suffer from 'it runs Quake 3 Arena' syndrome. Q3A has been, for years, the de facto standard for benchmarks and driver testing, but it's a radically different codepath from, say, UT2003 usage patterns."UT2003, and licensee games based on this engine, have been broken on ATI drivers (both DRI and closed-source solutions) for over a year. Everyone who writes me to complain inevitably notes, 'Quake 3 runs fine here. This is a bug in your game!' Obviously, I'm biased, though."
Besset adds, "We're pretty much in the same situation for id's next game. Doom III runs fine on Linux with NVIDIA hardware; I tried running on an ATI card a few months ago and there were several issues. It's likely Doom III will be NVIDIA-only on Linux, at least until drivers for ATI cards get better. Putting out games with higher OpenGL requirements is still a good way to give some incentive for better drivers. I remember the state of the Linux OpenGL drivers wasn't that good to run Quake 3 Arena when the game first came out."
State shines a slight ray of hope onto the proceedings, at least, with, "ATI support is certainly improving, but it isn't yet up to the same level as NVIDIA. We're working hard with developers at ATI to change that, and hope to see continued improvement throughout 2004. TransGaming's technology is allowing ATI to test their drivers against a broader suite of games, which should, in the end, result in more robust drivers...[in fact] TransGaming works with developers at both ATI and NVIDIA, reporting bugs, discussing issues, and ensuring that they test their drivers regularly with WineX."
On a Positive Note
When it comes to client/server games, Linux is quite heavily in the picture. Rumor has it that many MMORPGs (Massive Multiplayer Online Role-Playing Games) are running Linux on the back end. Serious gamers are also no doubt aware that many of the team-based, first-person shooters that allow groups to run their own servers tend to provide both Windows and Linux servers to choose from. In fact, according to Gordon, "Epic has a financial interest in keeping Unreal [Tournament and subsequent versions] portable to Linux, in both client and server. Our licensees request (in some cases, demand) it. I wouldn't be surprised to find that id has similar situations."In the case of this second class of games, an entire industry has sprung up with companies renting out game servers to groups who for whatever reason can't or don't want to run their own. According to Gordon, "These server rental companies are frequently the ones reporting bugs and performance bottlenecks and aggressively aiding in their resolution. They do way more to help than people who sit on their hands until a Linux client materializes, and I wouldn't trade them for the world."
Where to Find Games
To end on a fun note, I asked the fellows who's actually putting out commercial games for Linux these days, aside from the big kids like id, Epic, TransGaming, and so on. If you want to see what else is happening on the commercial Linux and cross-platform game front - since most of these companies put out games that run on Windows, OS X, and Linux - check out Pompom (www.pompom.org.uk), Pyrogon (www.pyrogon.com), and GarageGames (www.garagegames.com), and keep your eye on Linux Game Publishing (www.linuxgamepublishing.com).
Published March 16, 2004 Reads 18,136
Copyright © 2004 SYS-CON Media, Inc. — All Rights Reserved.
Syndicated stories and blog feeds, all rights reserved by the author.
More Stories By Dee-Ann LeBlanc
Dee-Ann LeBlanc has been involved with Linux since 1994. She is the author of 12 books, 130 articles, and has more of both coming. She is a trainer, a course developer - including the official Red Hat online courseware at DigitalThink - a founding member of the AnswerSquad, and a consultant.
- Ubuntu-based Open Source Linux Mint Tests KDE Version
- Linux Virtualization and Tired Open Source Myths
- IGEL Supports Red Hat Enterprise Virtualization 3.0
- CloudLinux Announces Support for Atomia
- Amazon Kindle Fire Gets Its Own 'Personal Cloud Desktop' with AlwaysOnPC App Launch
- SPIRIT DSP Receives 2011 INTERNET TELEPHONY Product of the Year Award
- The Utility Infrastructure Security Market 2012-2022: Cybersecurity & Smart Grids
- FORTUNE Magazine Names Rackspace Among “100 Best Companies to Work For”
- EnterpriseDB Announces Availability of Postgres Plus Cloud Database
- Convirture Reports Strong 2011 as Virtualization Management Takes Off
- iFollowOffice Turns to Virtual Bridges and Savvis for On-Demand Virtual Desktop Services
- Swisscom Floats Red Hat Cloud
- i-Technology in 2012: Five Industry Predictions
- Ubuntu-based Open Source Linux Mint Tests KDE Version
- Amazon to Rent Out Supercomputers
- Amazon Émigré Starts Network Monitoring Firm
- HP’s Putting a Back Door in the Itanium Alamo
- Linux Virtualization and Tired Open Source Myths
- CloudLinux Announces Preferred Partner Program
- MapR Pushes the Hadoop Envelope
- Rightware Announces Gaming Performance Benchmark for OpenGL ES 3.0/Halti
- IGEL Supports Red Hat Enterprise Virtualization 3.0
- CloudLinux Announces Support for Atomia
- 3Dconnexion Announces its Newest 3D Mouse - the SpaceMouse Pro
- The i-Technology Right Stuff
- Linux.SYS-CON.com Exclusive: Linus Discloses *Real* Fathers of Linux
- After Ubuntu, Windows Looks Increasingly Bad, Increasingly Archaic, Increasingly Unfriendly
- A Closer Look at Damn Small Linux
- Linus' Top Ten SCO Barbs
- SCO CEO Posts Open Letter to the Open Source Community
- Netscape Co-Founder's 12 Reasons for Growth of Open Source
- Where Are RIA Technologies Headed in 2008?
- *POINT - COUNTERPOINT SPECIAL* What's Wrong with the Open Source Community?
- Introducing "Cooperative Linux" - Linux for Windows, No Less
- Linux.SYS-CON.com Exclusive: What Would UserLinux Look Like?
- Why Recovering a Deleted Ext3 File Is Difficult . . .



















