Linux Game Programming
Overview There are precious few books which mention programming games under Linux. There even fewer that cover programming games under Linux exclusively. Linux Game Programming is the first published book exclusively dedicated to programming games under Linux. Unfortunately this book was rushed to the publishers just to obtain the dubious distinction of being the first. Worse, this book has many errors and a CD which is next to worthless.
What's good? It's very hard to find anything that's really outstanding in this book. The chapters offer what amounts to little more than a starting point for learning, with just enough to get the reader interested in the topic before moving on to the next topic. The sections on Artifical Intelligence and Porting stick out in my mind as some of the books strong sections, but even those could use some more elaboration. What's Bad? In trying to cover as many aspects of Linux game development, the book ends up giving little more than a synopsis of the material. Also, some of the choices are curious. Why have a chapter on SDL which only deals with using SDL for the input methods? There seems to be a lack of focus for the overall book for what it wishes to accomplish. Also, dedicating whole chapters printing out open source licenses (GPL, LGPL, Artistic, BSD, and Mozilla) is nothing more than fluff for a book like this (although the author does include a chapter discussing the benefits and drawbacks to chosing an open-source license verses a closed source approach.) The code is not complete, and doesn't show how to use it in a full program. Worse, there are no complete working game programs, either in the book or on the CD.
The CD is incomplete and a waste. It includes the examples from the book. Unfortunately, the examples are all in MSDOS format, so the reader will have to convert them in order to get them to run (if they'll even run at all. I had a hard time getting some to even compile). Also included on the CD is the SDL 1.1.8 kit in source and RPM format (the development RPM is missing, though, so you'll need to pick that up as well in order to actually DEVELOP SDL games). There are also source tar files for Mesa3D, OpenAL, and SVGALib. Also included is the Indrema SDK, which might be of interest for some people. There are also some strange additions on the CD. The first weird addition is the Linux Source for kernels 2.2.18, 2.4.0, and 2.4.1. Why include these on a CD for Linux game development? The second odd addition is a directory for PrettyPoly. The software is packaged as a tarball of the author's CVS root directory. How this made it onto the CD in this format is almost as inexplicable as having MSDOS formatted files destined for a Linux machine.
Conclusion This book could have been so much more. If the authors had taken the time to describe designing and developing several Linux games from the ground up, this book would have been better for it. As it is, it's barely good as a reference for what it does cover. I am very disappointed in this book. It could have been so much more, but falls way short of its potential.
There's one gripe I want to air about this series as well. Why does Andre LaMothe get his picture on the back cover of every one of these books as the 'Series Editor'? Also on the spine, his name is at the top. I'll admit that I like LaMothe's writing, but giving him top billing on the Prima Tech Game Developers series seems pretentious to me.
Table of Contents
- Introduction
- Introduction to Game Development
- Linux Development Tools
- The Structure of a Game
- 2D Graphics Under Linux
- Input with SDL
- 3D Graphics for Linux Games
- Using OpenGL in Games
- Sound Under Linux
- Networking
- Artificial Intelligence
- OpenSource: Friend or Foe?
- OpenSource License Agreements
- Porting
- References
- Glossary
- What's on the CD-ROM
You can purchase this book at Fatbrain.
If you want to learn OpenGL, your next stop should be NeHe's tutorials on Gamedev.Net.
http://nehe.gamedev.net/
GameDev itself is helpful...
http://www.gamedev.net/
As is Flipcode...
http://www.flipcode.com/
If you're interested in writing a good game, you should learn from those that came before you. Check them out using emulators from Zophar's Domain...
http://www.zophar.net/
Also, no game developer worth his salt can ignore the virtual treasure trove of information archived at GamaSutra...
http://www.gamasutra.com/
And finally, you'll want some cool free video game tunes to listen to while you code. The two best sites for video game remixes are Bart Klepka's remixes and Remix at Overclocked.org:
http://bart.overclocked.org/
http://remix.overclocked.org/
Go to it. I hope to play your games soon.
I love linux, but here we face one of the most
common problems:
someone wants to play the latest games on the
latest hardware, and doesnt mind using Wine or
VMware to do it, or even binary-only games...
the logical conclusion is that if you are one
of these people, the time has not yet come for
you to give up windows! dual-boot or get another
machine if you want to run linux that badly.
one day, linux will probably be able to do all
of these things, but in the meantime, dont pick
up a hammer when you need a screwdriver!
my $0.02
A year spent in artificial intelligence is enough to make one believe in God.