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:
Overview
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!
|