Main Site Links Resources Tutorials
News VB Gaming Code Downloads DirectX 7
Contact Webmaster VB Programming Product Reviews DirectX 8
  General Multimedia Articles DirectX 9

Focus On SDL
Author: Ernest Pazera
Publisher: Premier Press
ISBN: 1-59200-030-4
Purchasing: [Amazon.Com] - RRP US$20.99
Reviewed: 9th February 2004

Front Cover Shot:


SDL might sound like an overly abstract title for a book of this type; but it's really quite simple (at least, from the outset): SDL is the Single DirectMedia Layer.

The SDL's job, essentially, is to abstract the common resources and features that multimedia/games applications require to run - regardless of the underlying operating system. Whilst the Window's platform is amazingly dominant in the current times, it does not hurt to design software that is capable of running on more than just windows. If you're software is not fundamentally tied to the windows OS then it becomes only a trivial matter to 'port' it to a completely new system. The net result could be increased sales and/or ventures into new markets...

Given the current state with the main languages for current OS's, cross platform applications stand to be a big thing in the near future. The java language has pioneered such development - being a near perfect example of a cross platform language. C++ is very close behind, combine ISO C++, STL and SDL and you have a very convincing (if difficult to master) package. However, with Microsofts new ".Net" framework, and more specifically the .Net runtimes available for unix-based operating systems the OS dependence suddenly becomes a much smaller consideration.

Good writing style

The author of this book, Ernest Pazera, has written three other game development books (one of them reviewed here). As such he has developed his writing style according to that of your average game developer. Granted, people reading this website (and this review) may not be game developers - but there is an undeniable parallel. 

Ernest Pazera, a.k.a 'TANSTAAFL' on the GameDev.Net forums is credited as one of the GDNet staff - an honour bestowed upon very few individuals; he's also the moderator for the "Isometric Land" forum. The net result, is that the author of this book is in touch with the people who will actually read this text - which, to be honest, is one of the best qualities you can hope for from an author. He does have a friendly writing style that suits a book of this size - short and sweet - which does make reading through it a pleasure as opposed to a learning exercise.

Interesting topic

Cross platform programming is actually quite an interesting topic. Dependence on a particular API is fine upto a certain point - but there will be a point where it suddenly becomes a great limiting factor on a program.

As an example, one project I currently work on (early 2004) has cross-platform nature built into the fact I can swap in/out a given engine class-file with the required version given the specific OS. However, this would be far more flexible if I could design ONE engine for each given task that I could say with some certainty would compile across the majority of standard desktop operating systems. The amount of work required for each conversion would be minimal, if anything at all.

I mention in the previous paragraph that you can use SDL for the majority of desktop operating systems - this is where the biggest let-down occurs: you're not likely to find an SDL implementation for XBOX or PS2. Such is the case that you can use SDL to port common code across multiple desktop systems that are, in essence, very similar - yet you can't use the SDL library to port across to completely different platforms (not currently anyway). This isn't exactly a big weakness as a good programmer shows his/her skills in their ability to chose the right tool for the right job - but it is definitely something to consider when choosing the SDL for a project.

Covers all the major aspects

The SDL is not just a specific wrapper for a given hardware functionality; more it is a complete wrapper for all the standard multimedia tools that a programmer might require. This makes it interesting, as this book gives a good coverage of all aspects of the SDL, such that you can get started in the world of SDL just by reading this text. However, don't expect to master SDL just from this single resource - given that the library covers many aspects of hardware and OS interaction it is a suitably large collection of interfaces.

The book includes a very useful third section - "SDL Game Application Framework in C++", a combination of the previous two sections (covering SDL in a more general sense). This final section in the book takes the code given and transforms it into something that is actually usable by the reader. One of the best things about the Premier Press series so far is that not only does it deliver theory, but it also shows you what to do with any information that you learn.

It is important to note that this book, as with the majority of SDL references, are in C++. Such that the VB programmers might be a bit out of place (but, given VB5/6 is not a cross platform language, its a mute point), but there are still useful lessons to be learnt. For those C++ programmers; combining a good ISO C++ compiler, the STL library and the SDL library will give you an immensely powerful architecture with which to build a final application upon.

All aspects, but still just an overview

As previously mentioned, this book gives a good coverage to the SDL libary - to the extent that having read this book you should be more than capable of setting up a usable SDL application. However, I also mentioned that SDL is a rather huge platform - and for a book of little over 300 pages in length, it is unreasonable to presume it would cover the full breadth and depth of the library.

Basically, if you read this book as an introduction and overview to using SDL then you will be fine - but don't read/buy this book as a long term reference, or as a text if you're already familiar with SDL. For those who want to master the SDL system then the various online references and the lengthier hard-copy books will probably be a better choice.

This book, despite its size, still contains a CD packed with various tools and software that you might find useful as well as the SDL libraries and source code for all of the content covered in the book.

In Conclusion

This book is a good introduction to SDL, and more importantly it is written by an experienced author who is good at explaining the things that we are interested in - not just what he thinks we'll be interested in. For those who haven't used SDL before, this is a great starters book, by a great author at a perfectly reasonable price.

Good Things Bad Things
Introduces cross platform programming Dependent on desktop computing, whilst cross-platform, no real use for consoles
Author is experienced in delivering what the read wants Also dependent on the C/C++ language, so not necessarily much use to VB/C# programmers (bit of a mute point though)
Good coverage of the entire library Only an overview, not much good for long-term / reference reading.
Well organized and relevant CD included  
Good price for the depth and breadth it covers  
Good applied section towards the end of the book  


DirectX 4 VB 2000 Jack Hoxley. All rights reserved.
Reproduction of this site and it's contents, in whole or in part, is prohibited,
except where explicitly stated otherwise.
Design by Mateo
Contact Webmaster