LinuxDevCenter.com

oreilly.comSafari Books Online.Conferences.

We've expanded our Linux news coverage and improved our search! Search for all things Linux across O'Reilly!

Search
Search Tips

advertisement

Listen Print Subscribe to Linux Subscribe to Newsletters
Linux & Unix > Excerpts >

An Interview with Loki Games' Scott Draeker

by J. S. Kelly
03/16/2000

Loki Games was the first company dedicated to commercially porting best-selling computer game titles to Linux (because "world domination should be fun").

The company was a pioneer in porting applications from Windows to Linux, and has been deeply involved in the Linux community. Most recently, it spearheaded the OpenAL project, which is devoted to the development of an open-source, cross-platform 3D-Audio library which hopes to become the equivalent, for sound, of what OpenGL is for video.

The O'Reilly Network talked to Loki founder and President Scott Draeker about porting Windows applications to Linux, the Linux market, and the importance of giving back to the Open Source development community.


J.S. Kelly: As far as I can tell, you founded Loki with the intention of porting the best games from the Windows and Mac world to Linux. That is, you founded the company first -- and then set about finding your first product to port. Is that correct?

Scott Draeker: That's right. I spent several months after leaving my previous job putting together the company, finding the people we needed, and negotiating licenses with publishers. We signed the CivCTP contract on December 31, 1998, and started coding January 4.

Kelly: When you did strike your first deal, with Activision, to port Civilization: Call to Power to Linux? What happened next? Had you already assembled a team that was experienced in porting applications across platforms, or was it a completely new kind of challenge?

Draeker: We had a great team, but no one anywhere had ever done this before. In fact the tools we use -- GCC, GDB, and others -- were in some cases inadequate and needed to be enhanced. A year later, we still spend a significant amount of time enhancing tools, as games tend to always push the state of the art.

GCC and GDB

When Richard Stallman founded GNU, which stands for GNU's Not Unix, the first thing that needed to be created was a compiler -- the software that translates the source code a programmer writes into the object code a computer understands. Stallman's free C compiler, (EGCS) was later renamed GCC (GNU Compiler Collection). Today, development of GCC is controlled neither by Stallman, nor -- as is commonly believed -- by Cygnus (now a part of Red Hat), but by an independent steering committee.

GDB is the GNU source-level debugger, which monitors a program at runtime to analyze what it was doing at the time of a crash, in order to narrow down the possible location of a bug.

It is not possible to overstate the importance of these and other free GNU tools to the history and development of free software.

To this day, proprietary compilers and debuggers are not standard components of proprietary Unix systems. They are usually licensed as expensive "developer" add-ons. These free tools which gave power to individual developers and small companies, and which made the rise of Linux -- and innumerable other open source projects -- possible at all.

One of the reasons we've been successful is that we have always believed in open source development. Once we started coding, we had questions and problems which needed to be addressed, and in each case we received the help we needed from the developer lists.

Kelly: Were you able to take advantage of tools which already existed, and if yes, which ones? Or did you have to write a lot of your own toolset?

Draeker: We strongly favor open source tools over proprietary alternatives. That cuts both ways. The downside is that sometimes the only way to get something fixed is to do it yourself. The good part is that you have the source so that fixing things is possible.

In the course of developing Heavy Gear II, we've added several significant functionalities to the GCC compiler. We contracted with Mark Mitchell's CodeSourcery to rectify code-generation problems present in g++ that prevent the proper destruction of static C++ objects in shared libraries at the library close time, rather than the program exit time. This functionality was also contributed back to the community.

Kelly: Have new tools emerged since then, that you wish you'd been able to use from the start?

Draeker: We're very much looking forward to GCC 3.0, particularly for the C++ enhancements. We're also looking forward to better debugging tools, an incremental linker and possible support of Visual C++ extensions.

Kelly: It seems to me that until recently, most Unix developers didn't know much (or care much) about Windows and most Windows developers didn't know much (or care much) about Unix ... Which kind of knowledge was most useful to you in different phases of the project to port a sophisticated Windows application to Linux: developers who had an intimate knowledge of Windows programming, those who had an intimate knowledge of Unix and Linux programming, or those who were familiar with the programming environments of both platforms at the same time?

Draeker: Knowledge of Windows is helpful, but not necessary. This seems counterintuitive as we're porting Windows code, but in fact, most of the Windows specific stuff just gets dumped anyway. Knowledge of Linux is absolutely necessary. A lot of the value we add is not in making a Windows product operate under Linux, but in creating a Linux application that takes full advantage of its new environment.

Kelly: In the Loki Games press release announcing the deal with Activision, you are quoted as saying that Loki Games was "committed to providing an identical port of the new release" of Civilization: Call to Power. Was the Linux version, in the end, an "identical port"? If yes, what were the biggest obstacles that you had to overcome to achieve that goal? And if no, what were the unforseen things that prevented it? Is it possible to overcome them these days, or are they easier to spot ahead of time, now that you know what they are?

Draeker: Civilization: Call to Power on Linux was virtually identical to the original. We even left bugs in that had to persist in order to preserve network game compatibility between the Linux and Windows versions.

The last frontier for 100-percent seamless transition from Windows to Linux games is DirectPlay, Microsoft's networking API. DirectPlay is closed and proprietary, which means there is currently no way to achieve network compatibility with Windows games that use it. [Civilization: Call to Power does not use DirectPlay.] We're looking at ways of surmounting this last barrier.

Pages: 1, 2

Next Pagearrow




Tagged Articles

Be the first to post this article to del.icio.us

Recommended for You

  1. Cover of Learning the bash Shell
    Learning the bash Shell
    Print: $34.95
    Ebook: $27.99
  2. Cover of XLIB Programming Manual, Rel. 5
    XLIB Programming Manual, Rel. 5
    Print: $34.95
  3. Cover of Pragmatic Version Control Using CVS
    Pragmatic Version Control Using CVS
    Print: $29.95
  4. Cover of Linux System Programming
    Linux System Programming
    Print: $49.99
    Ebook: $39.99

Sponsored Resources

  • Inside Lightroom
Advertisement

Sponsored by:

O'Reilly Media

©2010, O'Reilly Media, Inc.
(707) 827-7000 / (800) 998-9938
All trademarks and registered trademarks appearing on oreilly.com are the property of their respective owners.
About O'Reilly
Academic Solutions
Authors
Contacts
Customer Service
Jobs
Newsletters
O'Reilly Labs
Press Room
Privacy Policy
RSS Feeds
Terms of Service
User Groups
Writing for O'Reilly
Content Archive
Business Technology
Computer Technology
Google
Microsoft
Mobile
Network
Operating System
Digital Photography
Programming
Software
Web
Web Design
More O'Reilly Sites
O'Reilly Radar
Ignite
Tools of Change for Publishing
Digital Media
Inside iPhone
makezine.com
craftzine.com
hackszine.com
perl.com
xml.com

Partner Sites
InsideRIA
java.net
O'Reilly Insights on Forbes.com