This week I read through “Beginning Game Audio Programming” by Mason McCuskey. I will admit I did not enjoy the book, but instead of writing some negative tirade I will simply keep this review and this post short in length. So I urge you to read on because some of you will enjoy the book, my personal opinions aside.
McCuskey’s book is not all bad by any stretch. It contains some quite useful information about the history of audio technologies and how they affected the development of MIDI, MP3, Ogg Vorbis, etc. The author also does a good job introducing and explaining the technical terminology associated with audio programming that will be unfamiliar to the novice, such as just exactly what ‘sampling rate’ means and its impact on sound. McCuskey also provides interesting discussion about dynamic music in games. I would have loved to have seen more time spent on this topic but….
The Bad (To Me)
The book presents the overwhelming majority of its code as on top of the DirectSound API, called ‘DirectAudio’ back then. The choice to focus on DirectX is not inherently bad or wrong. However, to me personally it makes the text less useful as I rarely work with that API. Later the book delves into OpenAL which provides some technical balance; but it still focuses heavily on older DirectX libraries.
Again, I want to stress that this made the book much less useful to me simply because DirectX is not an API I typically deal with. If you are a developer that works often with DirectX then you ought to find McCuskey’s writing much more useful. Throughout the book he describes and provides the code to develop an audio engine from scratch, resulting in a thorough examination of the API. I was hoping to learn more about audio programming in a more API-agnostic way so that it would be more immediately beneficial to me, but that was not the case.
So that is why personally I felt like I did not get much practical knowledge out of the book. I am certain I will work with DirectSound sometime in the future, and at that time I will undoubtedly return to this text. But as a programmer not currently developing with the DirectX family of APIs I was left feeling unsatisfied. It does not reflect any objective problem with McCuskey’s writing, only my personal position at the time I chose to read the book.
Next Book of the Week
The next book I intend to read is “REST API Design Rulebook” by Mark Masse. REST is a subject that interests me greatly—for nerdy reasons I don’t really understand—so I look forward to it even though I do not expect what I learn from the book to prove immediately useful in my game development. That type of expectation (and mistake on my part) is all that kept me from enjoying “Beginning Game Audio Programming” as much as it can be enjoyed.