Want a Free Copy of Best of Game Programming Gems?

26Jun08

Best of Game Proramming Gems coverBack in 2002 I wrote a chapter for Game Programming Gems 3 about using Ogg Vorbis for sound in games.  Unknown to many gamers, Ogg Vorbis has gotten a lot of adoption in mainstream game titles.  Epic has long used Vorbis and Speex in their Unreal Engine, for example, and the list of other publishers is quite long and even includes Microsoft.  Apparently the chapter I wrote has helped a few developers learn the ropes, and the publisher has decided to include it in the recently released Best of Game Programming Gems. Keep reading to find out how you might score a free copy of the book.

What is this Ogg Vorbis thing?

For those who may not be familiar, Ogg Vorbis is an openly specified, patent free audio codec that has superior quality to the MP3 format.  The Ogg Vorbis reference implementations are open source software and of very high quality.

Ogg Vorbis was created because the patents on the MP3 technology prevent a whole range of businesses and software developers from using it, stifling innovation in the audio space.  Much has been written about this before.

Why Ogg Vorbis for games?

There are a several technical reasons that Ogg Vorbis makes a good choice for games without even getting into the patent licensing issue.

  • Vorbis has sample accurate seeking and playback.  In MP3 the best you can do is get to the closest frame to the sample and start playback from there.  This problem even persists into MPEG-4 audio and is the reason that Apple and others have had to build in hacks to get gapless playback.  For sound effects, this is a major problem, and Vorbis solves it easily.
  • Vorbis encoded files are smaller and higher quality. Because the Vorbis codec is so much better than MP3, it is possible to achieve much smaller file sizes for the same quality as MP3, much higher quality for the same file size, or even a little better quality and a little better filesize.
  • Ogg is easily extensible to carry other formats.  It has been used for video, MIDI, subtitles and many other things along side audio payloads.
  • The reference implementation is open, fast, and easy.  The Xiph.org Foundation, which shepherds Ogg and Vorbis and other open multimedia technologies, has provided multiple reference implementations that are open source and well debugged.  There is a floating point based engine and an integer based engine.  There are implementations suitable for embedded devices.

Back to the book…

The publisher of Best of Game Programming Gems has kindly sent me an extra copy of the book, which I would like to pass on to one of you.  If you are interested, please leave a comment.   A week from today I will select a person at random from the people who expressed interest and mail them a copy of the book.  Please note that this means your email address, or some other means of contacting you, will need to be included in the comment somewhere.

Advertisements


8 Responses to “Want a Free Copy of Best of Game Programming Gems?”

  1. I believe another advantage of using Ogg Vorbis is that it has built-in support for 5.1 channels and even more I believe. The best MP3 can do is 2.1. For gamers that have 5.1, 7.1 or even more channels in their sound installation, it is good to have support for it in the game sounds.

  2. 2 James Canete

    Sure, I’ll have it.

    Also, I think you know my address and everything by now. 🙂

  3. Enter me into the raffle. Looks like a good book.

  4. 4 Alexandre Rocha Lima e Marcondes

    I would like also to enter in the list …

  5. 5 Peter Ashford

    I’ve been a fan of Ogg for quite some time. It’s a pity it hasn’t seen a little more mainstream adoption! That said, my company is using ogg for sound in our game – it really does have a lot to recommend it!

  6. 6 Allen Gooch

    Congrats on your chapter’s inclusion. Please enter me as well, as I’d love to check it out!

  7. 7 Michael R. Bernstein

    I’ll toss my hat into the ring if it’s not too late.

  8. 8 metajack

    Winner was selected with the following Python snippet:

    import random
    import time
    random.seed(time.time())
    print random.randint(1, 6)

    Which selected Allen Gooch as the winner. Note that it was out of 6 because James is a coworker of mine.



%d bloggers like this: