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