Ports vs. WineX, What's Best For Linux Gamers?
James Hills writes: "Recently there has been much discussion about what is better for the future of Linux, to continue the process of native ports or embrace WineX so you can run all the Windows games you want on your favorite OS. Unfortunately, this debate also has tremendous repercussions for the future of companies such as Loki, Tribsoft and Hyperion. Read more for how the heads of Transgaming, TuxGames, Loki, Tribsoft, and Hyperion see the issue."
I thought Port was a type of Wine, not an alternative to it.
--
The game releases, and as predicted it's a great success. Linux users are envious, but dislike having to dual boot their boxes. Emulation is not quite there for this new game, as it uses a bunch of Windows-centric, bleeding-edge DirectX calls, and was never ported to OpenGL. In addition, the game uses DirectSound, and other Direct(insert extension) calls. IOW, it's a purely Windows game.
Now the company begins to receive requests like, "Can't you make this OpenGL?" "Have you heard of OpenAL?" "I want to run this awesome game on Linux, and I refuse to buy Windows. I know a dozen friends who'd love to play, but they have the same requirements!"
Our software company is now in a dilemma. What to do? Let's call Loki and see if they can help us. Loki agrees, seeing the potential for an infusion in sales, and begins to port the game to OpenGL, OpenAL, and the SDL libraries. As they work on the code, they find a lot of logic problems, some really nasty bugs, and basic structural problems with the program. They fix these and send it back to the originating software company.
The company is floored. How could we have missed so much? It worked well on Windows, but when we use these standards-based API, it breaks! Let's incorporate these changes and see if we can't make a better Windows product as well.
And thus, the cycle of software improvement continues. The original software company learns some valuable lessons about standards-compliant programming, Loki (or other porters) make some money for the consulting and marketing, and the players, both Linux AND Windows win by getting better software.
No. I don't see porters being in any type of immediate danger. Marketing and business decisions aren't solely based on the Windows phenomenon, they're based on demand. People will continue to demand Linux ports for software because they KNOW that the WineX libs will always be playing catchup with Direct(insert extension). They KNOW that OpenGL, OpenAL, and SDL afford game developers the flexibility of cross-platform compatibility and standards-compliant design. They KNOW that a better product will be the result.
WineX is a good short-term solution, contrary to the author of the article we're replying to. It is not a long-term solution in the eyes of game designers or the consumers in general.
--
assert(expired(knowledge));
Okay, we all know that WINELIB lets Win32 become a native Linux API. Okay, Win32 is ugly and disgusting. However, if game programmers want to code for Win32 and they can compile on both systems, more power to you. I don't have a problem with Using Winelib IF the authors would release a Win32 AND Linux binary on the same CD. I'd rather not have emulation mode used (although for older, less resource-intensive games, its fine... old games are still fun).
However, the belief that MS can change the APIs isn't QUITE true. Keep in mind, many installations are still running Win95, a 6 year old OS, and will be doing so for a number of years. Until companies eliminate the last vestiges of their DOS past, Win95 isn't dying.
While MS can release new APIs, why would a company limit their market. By using the older APIs (and if necessary, DirectX), then they can support a wider market within the Wintel world. If Linux can support DirectX, then you can release a Linux binary on the CD.
Are their better APIs than DirectX? For somethings, sure. Why not encourage OpenGL instead of Direct3D, which makes porting to the Macintosh easier.
However, DirectX has created a world where we have more games than we did in the DOS world, and it's apparently not as bad as DirectX 2.0 or 3.0 that Carmack hated. Let's me real, if people LIKE the DirectX calls (or tools to develop them) why can't we implement DirectX on every OS? I mean, how you implement the calls is entirely up to you. DirectX abstracts you from the hardware and Win32 on the PC, why not use DirectX on other platforms.
If you can get DirectX ported well to Linux (and Mac OS X), then there is a decent percentage of the gaming public that becomes dependant on an available version of DirectX. When MS releases a new version of DirectX (or a secret hidden version, whatever), most companies will be compatible with older ones rather than losing a chunk of sales.
Contrary to popular belief, MS is not a supernatural company. They are a monopolist that abuses their power, but they are as mortal as the rest of us. Remember, for the first few YEARS of Win32 (NT 3.1, NT 3.5, NT 3.51, beginning on Win95) they had Win32s out, which was a subset that ran on Win3.1. Well guess what, MOST Win32 programs in that era were Win32s programs, that took advantage of the new capability, but were predominately run on Win3.1. The entire reason for Windows 4.0 AKA Chicago AKA Win95 was to try to 1) kill DR-DOs and 2) establish Win32 to replace the Windows API (now known as Win16). It was a LONG transistion to kill off the Win3.1 machines and migrate people to NT, so Win32s remained the limitations of the API for a while. Remember Windows 4.1, 4.2 (98, ME) were marketing decisions because they couldn't get Cairo (NT4, wait NT5, wait Win2K, wait, it's a set of technologies) out the door.
Embrace and Extend MS's APIs. Offer your own extensions. If developers can release a DirectX game on multiple platforms, they will either stick to the GCD of them (if MS has DirectX 10, but 10% of the marketshare is at DirectX 9 b/c of Linux/MacOS X), then companies will release for DirectX 9.
By requiring your own APIs, you require a large effort to reach a SMALL market. Remember, a GOOD chunk of the "Linux" crowd are Free Software advocates that won't use non-Free Software, and ANOTHER large portion are the spend-no-money crowd. That doesn't make Linux a terrific platform to try to make money from.
There already is a popular API with a published spec for writing games. Embrace and Extend. Or at a minimum, Embrace.
Not only should we support and embrace companies like Loki for doing such a great job and helping to make SDL a great gaming layer (hopefully more game programmers will then use it instead of DirectX for cross-platform games from the get-go), but we should embrace native linux games.
We all know that Wine is a bit of a resource hog, since it emulates windows on top of another OS, and Windows is a resource hog on its own, so now you've got two hogs and that can only lead to trouble (anyone seen Hannibal?). Running natively makes the games much faster and gives linux the boost that it needs for people and organizations (like PC Mag that claims there's not enough apps for linux when the reverse is actually true).
We all want linux to succeed, so lets support native linux games (and other programs, as well, like StarOffice and KOffice, etc) and the companies that work hard to get good software for linux that attracts attention!
The gaming industry on Linux is still young - we have now, mainly thanks to Loki with kudos to Hyperion and Tribsoft, a fair group of 3D FPS games along with a handful of strategy and sim type games. These are all native ports.
We also have games which currently run well under Wine - Halflife is the obvious choice here, along with Starcraft and several others.
Transgamings Direct3D port promises to allow us to run more Windows games under Linux, and for the ardent gamer who does not wish to switch-boot to Windows or even maybe just have a Windows machine, this port is of the utmost importance.
But looking into the long term view, the most important thing for Linux gaming is the Linux is viewed as a viable gaming platform by the game manufacturers. They have to see dollars in order to think about a port. What most game producers watch are the sales figures. Here we are cursed by the difficulties of separating the figures apart - the highest profile port up until very recently was Quake 3 Arena. Because Linux gamers could buy the Windows release and use the data files with Linux binaries, it is impossible to tell how many people are actually running Quake 3 Arena on Linux from the sales figures. And yet the sales of pure Linux Q3A boxes will be affecting the decision of game producers now considering Linux releases.
Loki has, for the most part, made sure that you can't use one of it's Linux release with the Windows data files to ensure that a small market is not further eroded. It's not a popular decision but I feel that it was a necessary one.
Loki should also come in for some serious praise for their commitment to the quality of the ports it does, both at initial release and in continuing to bug fix and improve the original release (for example, adding an OpenGL renderer to Myth II at least 12 months after the original went on sale). And I hope it is quality that will get gamers to use the Linux releases - in the marketplace, people want the best possible game. If the Linux release is smoother, faster, easier to set up a game server, then people will switch.
While I think that the WineX stuff will help increase the number of games on Linux, I don't view it as making Linux a more important gaming platform in the eyes of the game producers. It may make Direct X ports easier but in an ideal world, we'd all be using crossplatform toolkits from day one.
Cheers,
Toby Haynes
Anything I post is strictly my own thoughts and doesn't necessarily have anything to do with the opinions of IBM.
The other issue is that while winex may be able to get the game going, there are still a number of minor barriers. Many games are (still, pointlessly) using various forms of copy protection that require the OS to jump through hoops to read bad sectors or other such nonsense from the CD-ROM.
I don't think a large amount of this functionality is supported under wine -- thud you'd have to convince the game company to either redo their copy protection or get rid of it altogether... both not very likely things.
There are obviously problems with both approaches; on one hand, wine can be extended and patched to allow various forms of copy protection and other such nasty hacks to work, and on the other, perhaps Linux will become such a large market that game companies will plan to support it from the start. Perhaps Linux on the Desktop will become a viable target for application developers -- something that can't happen until the various low-level packages stabilize. And we're a long way from that yet.
Support of comonly used APIs will contribute to linux native ports of popular games, WineX and other emulation solutions are a step in the right direction.
Support through an emulation layer isn't the conclusion of any development effort. This is a basic tenet of Open Source. The work of TransGaminga is a great contribution twards this goal. Eventually there will be native Linux support for direct3D. This I am certain of.
As for following Microsoft, implementing their API rather than promoting the potentially vary competitive OpenGL; well, open source operates with an entirely different market model than treditional corporate development. Some market segments such as enterprise IT equally receptive to open source as to treditional software. This allows open source solutions to thrive in that market space. Other market segments such as computer gaming, target a customer base which is generally less technically inclined, and in pursuit of entertainment rather than productivity solutions - I maintain that development of efficient solutions to productivity issues is one of the driving forces behind open source development -, anyway, the gaming customer base is seeking entertainment rather than technical solutions to technical problems. As such, the gaming market will always be dominated by the easiest to use OS, with the simplest setup, and the most readily (as percieved by novice customers) available commerecial support.
This is why game consoles are still as popular as they are. There was a time when game consoles were themost advanced and highly customized platforms for video game entertainment. With the advent of extremely high quality video cards, sound cards, and control devices for PCs over the past decade, it would be reasonable to assume that customers might choose to purchase a PC (which can now be priced competitively wihth some game consoles - as amazing as that is, in and of itself), which is more flexible, and by every reasonable measure, more useful, but, alas! - game consoles are still extremely popular. I maintain that this is because the gaming customer seeks simplicity and ease of use that (as much as it pains me to say) linux doesn't yet provide at this point, even with the great efforts of Ximian, and the Gnome Project, among others
The point of this rambling diatribe is that computer game designer will always favor the simplest to use platform, which is inherently, where the majority of gaming customers will be. This means, that regardless of the elogance or superiority OpenGL, the Linux community will need to adopt direct3D because, as others have pointed out, no programmer wants to port code from one platform to another especially when that requires a significant API change.
--CTH
--
--Got Lists? | Top 95 Star Wars Line
And they don't want to do that.
I say go on, get 'em to both projects. We need compatability, and we need a genuine native powerful platform that lets Linux beat the crap out of the competition.
--
KMSMA (WWBD?)