Please support our sponsor:
DirectX4VB.Com - All You Need For Multimedia Visual Basic Programming

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


Infinite Game Universe: Mathematical Techniques
Author: Guy W. Lecky Thompson
Publisher: Charles River Media
ISBN: 1-58450-058-1
Purchasing: [Amazon.Com] - RRP US$49.95
Reviewed: 8th September 2002

Front Cover Shot:


This book is yet another book focusing on the mathematics behind computer graphics and game programming. Fair enough - game programming often revolves around clever use of advanced mathematics, but surely there are enough books on the subject already?

Apparently not, and this book attempts to take it in a different direction, which is interesting in itself. Gone are the compulsory chapters on 3D geometry, vectors, matrices and so on... and in comes complex math dealing with infinite game universes.

Much of the content targeted in this book is often the preserve of non real-time scenario's, or complex pre-processed algorithms - a game universe is often generated in a world-editor before the player actually gets to experience it. The author has obviously been influenced by (and acknowledges this in the preface) one of the classic games - David Braben and Ian Bell's Elite. This game is possibly the perfect case study of an infinite universe, and hence a perfect example of what this book is about. The game Elite didn't have a pre-created 'world' for the player to play in, instead it was all created in real-time using various random number series and mathematical techniques.

As random as a bowl of petunias and a sperm whale*

The majority of this book is dedicate to the explanation and practical uses of various types of random numbers. The book is divided into five parts covering 270 pages (it's a physically small book), where each section further explores the uses of random numbers and connected mathematics for game programming.

The first section covers the various algorithms and practices related to generating random number series with a computer (it is actually quite a hard challenge). The second part extends this in a slightly different direction by exploring predictability and repetitive uses of mathematical algorithms/random numbers for games. The third part covers probability - something that was bound to pop-up sooner or later, when you have random numbers involved you'll typically find probability lurking around the corner. The fourth part covers fractal generation - something that many people will be aware of, and a technique that is very commonly used when generating procedural textures.

It is possible that you may not have realized just how in-depth you can get when talking about random numbers (it still amuses me that there's so much to say about something with no pattern, no plan and no predictability), just scanning the contents for this book reveals that there is indeed quite a lot to know on the subject of random numbers. Far more than using the "rand()" keyword exposed by your language/API of choice.

It also makes for an interesting read - I've read a few white papers on the internet regarding the use of random numbers in games, but having read through this book it is genuinely interesting how (theoretically) easy it is to create a believable universe from such a small number of equations and algorithms. From a simple repeatable system for positioning world objects, to naming locations using randomly-generated strings and growing organic plant life using L-Systems.

As deep as it is wide?

This book has a good coverage of all the tools necessary to create an infinite universe, but it is still left to you to choose which tools to use for what job and to what extent you want your infinite universe (as good as these techniques are, current hardware will often impose some limitations).

The book itself, when put on the shelf is considerably smaller than many of the other books reviewed on this website, but it manages to cram more than enough information into this space. The text does feel a little dense at times as there aren't a huge number of diagrams (and there is no color in the book whatsoever).

The writing style fits squarely into the bracket of that found in the majority of commercial books (as opposed to the academic/university text books). Whilst the content is worthy of that in a university level book, it is targeted more at those with an interest in game programming and those experienced in, or professional at game programming/design.

In Conclusion

This book will make a good addition to your bookshelf if you're interested in this area of game design. A 'classic' game whereby the majority of game content is pre-created by level designers and artists won't necessarily benefit hugely from this text, but any person (or team) looking to explore [potentially] infinite game worlds would definitely make good use of this text. With just a few techniques and a good understanding of how they fit together (as covered in this book) should allow any good programmer to fit them into their game engine without much hassle.


Good Things Bad Things
An interesting topic, likely to come more and more relevant in the near future. Lack of any color and the small pages can make it a little hard to read at times.
Good coverage of all the necessary tools Limited to use for those not interested in adding considerable 'randomness' to their worlds.
Well thought out selection of tools/chapters. Quite a lot of these algorithms can be found in several places on the internet.
reasonable CD included with some good examples.  
explains the pro's and con's of most algorithms presented.  

*taken from Douglas Adams Hitch-Hikers Guide to the Galaxy trilogy. Anyone who's read the books will know what I mean!

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
This site is hosted by Exhedra Solutions, Inc., the parent company of and