Upcoming Events
Workshop on Network and Systems Support for Games (NetGames 2009)
11/23 - 11/25 @ Paris, France

LOOP 2009
11/26 - 11/29  

EVA 2009
12/4 - 12/5 @ Buenos Aires, Argentina

ICIDS 2009 Interactive Storytelling
12/9 - 12/11 @ Guimarães, Portugal

More events...


Quick Stats
2836 people currently visiting GDNet.
2341 articles in the reference section.

Help us fight cancer!
Join SETI Team GDNet!



Link to us

Link to us

  Intel sponsors gamedev.net search:   

Linux Game Development Part 3
Installers


Miscellaneous Installation Topics

Where to write game data files

On a Linux system, you should write saved game files, configuration files, high score lists, etc. to the player’s home directory. You can determine the player’s home directory in your C/C++ program by reading the HOME environment variable, like this:

char* home_dir = getenv(“HOME”);
if (home_dir != NULL)
{
   // build the path to your game files
}
Your game or your installer can then create a subdirectory to contain all your data files. If you prepend a period on the front of your subdirectory name, you’ll make it a hidden directory (e.g., /home/troy/.dirkdashing). I recommend doing this, so that you don’t clutter up the player’s home directory.

Install Instructions

Be sure to include instructions for installing and running your game on your web site’s download page. You’ll need to cover all of the different ways of running your program (via desktop shortcut, system menu entries, command-line, etc), so that no matter what distribution your customers are using, they will find at least one way to run it. It’s a good idea to also include these instructions in a README file that you install with your game, especially for command-line users who will need to know what to type to start the game. If you need an example, take a look at my download page for Dirk Dashing here.

Digital Rights Management (DRM) Solutions

There really aren’t any DRM solutions like ActiveMARK or Software Passport for Linux. There has not yet been a sufficient demand by commercial developers for a DRM system on Linux, so nobody has developed one. Besides, even if a DRM system existed, I’m not sure how well the Linux community would receive it anyway. The concept of DRM really isn’t compatible with an operating system that strives to be open so that users can do whatever they want with their system. On the other hand, Linux users tend to be much more respectful of software licenses than Windows users, so DRM isn’t as big an issue, though that might change as the Linux user base continues to grow. The common practice for distributing commercial games on Linux is to distribute separate demo and full versions.

Summary

Creating a Linux installer for your application will require a bit more work than you’re used to, particularly if you don’t use one of the professional installers. On the other hand, not every shareware developer can afford a professional installer like InstallAnywhere or even Bitrock.

Regardless of which installer you choose, your goal is the same: to provide a professional, easy-to-use install experience for your end user. This is especially important for the growing number of Windows users who are migrating to Linux. They are used to the plug-and-play install system on Windows, so you need to make the installation process as painless as possible, something that has not been easy to provide on Linux until recently. Also, if you want your game to be available to everyone, then your installer needs to run on any distribution, so again I recommend you avoid using distribution-dependent packages like rpm or deb to deliver your game.

For those that can afford it, I highly recommend Bitrock. It provides installers for Linux that look like Windows installers and are easy to use, and I have found it to be very configurable. We’ve received a lot of compliments for our Dirk Dashing Linux installer, and I think that says a lot for Bitrock’s quality. Also, Garage Games is starting to use it (check out the Kachinko demo). As I said earlier, it is very well supported and does a great job.

For those who can’t afford a professional installer, I recommend InstallJammer. I’ve never used it, but I know two developers who have used it and were satisfied with it. Like Bitrock, it creates installers that look similar to Windows installers and the feature list is fairly comprehensive. The installer itself is easy to use and works fairly well, despite a few minor bugs.

Next time, we’ll talk about testing your Linux game and some of the issues you will encounter in the diverse environments that Linux users have. See you then!


Contents
  Installer Options
  Additional Hints
  Misc Installation Topics

  Printable version
  Discuss this article

The Series
  Part 1: Introduction
  Part 2: Distributable Binaries
  Part 3: Installers
  Part 4: Testing
  Part 5: Marketing and Distribution