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
      Miscellaneous

Game Programming with Visual Basic
Author: Clayton Walnum
Publisher: Sams Publishing
Published: First Printed December 2000
ISBN: 0-672-319-87-X
Purchasing: [Amazon.Com
] [Fatbrain.Com] - RRP US$39.99
Reviewed: 3rd September 2001

Front Cover Shot:

Overview of whats on offer

Anyone who's ever been shopping for computer books in the past (programming or otherwise) will most probably have come across the "Sams Teach Yourself ... in 21 Days/24 hours/10 minutes" series'. They've been around for quite a while now, and have a book to cover pretty much every aspect of the computer market. Being a series they also follow the same pattern, formatting and style - if you've read/bought a book from this series you already know pretty much what to expect, and you also know if you like this style or not (I've seen mixed opinions stated in various reviews).

For those of you who have never heard of the previously mentioned series I'll explain... In this particular situation we have a "... in 21 days" format, so you can expect 21 main chapters, with the intention that you do one every day (although the later ones will leave you with little free time in that day!), and then a summary at the end of each week and introduction at the beginning of each week.

As per standard with computer books we get a complete CD to go with the code - I for one dont really like to type all the code straight off the page (makes my neck ache!), so it's much easier to load up the code sample from the CD, run it and then read the chapter and see whats going on.

By the numbers we have a healthily sized 640 pages of text, in 21 chapters and four appendices. The book itself isn't too heavy and is a good size for sticking on your desk while typing away, or hold open at the right page on your lap.

Taking it easy

Having already explained the system/structure of the book it seems obvious to begin here. The style makes for a very smooth, flowing read - you dont have to start at the contents, decide what you want to read and turn to that page (well, you can if you want), instead, you start at page 1 and carry on - pausing for the review at the end of each day/week, you can be assured that if you're on day #7 (for example), and have already read day's 1,2,3,4,5,6 you know everything that you need to know for day #7. The author starts at the absolute basics for day #1, and builds upon these each day.

This particular style will make any beginner right at home, which is excellent as this book is aimed primarily at the beginner level group. That does not imply beginner programmers, the author makes the point straight away that this book does not teach you visual basic, only the game programming aspects. You need to be a competent/good visual basic programmer before starting with this book - I would assume there are various "Teach yourself visual basic in 21 days" books available that you would be wanting to read first. Being aimed at beginners this book will provide no real interest for intermediate/advanced VB game programmers - Anyone who's been messing around with games seriously for more than a year will probably be able to start right at the back. Whilst reading through this book and it's code samples I noted quite a few ways that I would change the code for the better - maybe it's just my style of programming, but there are numerous little things that most intermediate-advanced programmers will pick up on, and probably have already learnt better ways of doing it.

An example of such a situation can be seen in the "BrickBlast" demo game for day 7, whilst it's not a bad little demo game it suffers from being a little two basic. Firstly it runs too fast - strange thing to pick up on, but this isn't explained in the book (particularly strange in a section titled "Programming Real-Time Games"), an intermediate/advanced programmer would have stuck time-based movement or at the least, limited the frame rate (it's set to go as fast as possible). Secondly, it's a breakout clone (you know, where you have a board, a ball and have to bounce the ball to destroy a wall of bricks), and the "physics" are non-existant, most intermediate/advanced programmers would opt for a much more realistic (yet more complex) method of bouncing the ball around...

Technology

The key weakness here is that it's almost entirely based on VB and API functions, whilst this is great as a learning tool (learning game programming and DirectX/OpenGL at the same time would be like trying to climb a brick wall), it's not a good move in the long run. Talk to any of the more seasoned VB game developers on the web and they'll relate stories of how VB is just too slow that way, and that the ONLY way to write reasonably speedy games in VB is to use DirectX or OpenGL (or another 3rd party library). No one seriously uses the API or the built in functions for making a full-blown multimedia graphics engine.

Having mentioned DirectX, whilst I never expected this book to cover both game programming AND DirectX programming it does give a basic introduction to the whole thing. It's questionable whether this is really worth it - With the information in this book you can easily use DirectDraw for 2D graphics (forget any coverage of 3D), but unless you read up on it elsewhere (like this site and others) you will be completely lost should you wish to venture further into the API. The few pages devoted to DirectX would really warrant 4x this many in a detailed book/article.

General Applicability

General Applicability - now what do I mean with that title? well, many game books that I've read (Game Programming Gems series in particular) are very broad based, they explain something about physics (for example) in the general form, such that you can take it into a full 3D game, or you can take it into a simple 2D pong game. This is a feature lacking in this book, maybe, being a beginners book it really doesn't matter too much; but with only this book you would be hard pressed to develop a game significantly different from any of those demonstrated. It shows AI for a card game, but can you really apply that knowledge to a real-time-strategy game? I dont think so. The same goes for any coverage of maths or physics. If you read this book, get interested in game development, and decide to go further then you are likely to chose a book more along the lines of the game-programming gems series, which offers this style of functionality.

Content of the book

The content of the book is good, despite my previous ramblings about it lacking any complicated material. What is in here is of good quality, and the writing style makes for easy reading. If you did stick to plain windows/desktop based games and didn't venture into the world of DirectX and hard-core game programming then this game offers pretty much all you need in terms of functionality/technology. It begins with an introduction to plain VB graphics and multimedia functions - Circle(), Line() etc... and then moves upto the Win32 API calls (which is where you should really focus your attention if you dont move onto DirectX), all of which is explained and demonstrated nicely.

The other aspect for the content, in particular the games demonstrated (there are several complete games to work through) is the learning curve. As already mentioned, the order of chapters and content of each chapter is carefully structured - and so are the example games. Starting (in chapter 2) with "Face Catch" a really simple (yet strangely addictive) game where you have to catch a face that randomly moves around the screen, and building upto "Moonlord" (all of week 3) - still a simple game, yet programmatically much more complex than any of the previous games.

Finishing things off

It may sound as though I'm giving this book a really hard time - I feel that I've spent more time exploring it's weaknesses than it's pluses. But that's to be expected from my position really, I'm not going to preach at being the best game-programmer ever, but I am at the more advanced end of the spectrum, so looking back on this is a bit like a Maths Graduate looking back at old high-school maths notes, it seems so simple! Yet to someone at high-school level it is obviously not that amazingly simple. That, in a nut-shell, is it - if you are at the bottom of the ladder and have an interest in making your own games yet have no idea how this is a very good book to start with. It will teach you. But if you're already a game programmer, or have spent much time reading articles online you will probably find this to be a fairly short book.

Here's my usual summary of key points, to help you decide if this is the right book for you:

Good Things Bad Things
• Extremely well structured chapters • Useless for intermediate to advanced programmers.
• Great for beginner game developers • No substantial coverage/mention of the dedicated game programming API's (DirectX/OpenGL)
• Not too expensive in comparison to other game programming books • Possibly not much life in it once you progress into the world of DirectX
• Includes all the source code on the CD • You'll need to learn more about AI, Maths and Physics before stepping up into "proper" game programming.
• It's in Visual Basic 6 format - one of the only books in print about game programming that isn't in C/C++, and being in VB6 format it makes use of the most recent version of the language

 

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