The magazine of the Melbourne PC User Group

Art and Hard Science for Serious Games Development
 
- for the bookshelf

Major Keary
 

Computer games is big business, said to generate more money than Hollywood's film industry. Creating a worthwhile 3D game requires the application of serious disciplines: math, physics, and artificial intelligence. Of course, if you have no artistic talent, none of that will save you; a recent title from Elsevier looks at games development from an artist's perspective - but doesn't forget the hard stuff.

Games Development with Director MX

This title has been written from an artist's perspective by someone who has been in graphic design and animation for some twenty-five years and whose design skills are matched by his capacity as a technical communicator. This is an exceptionally lucid description of how to use Macromedia Director for games development. It is not intended to be an introduction for game-development novices, but it does contain much useful information for those who may be approaching design and animation for the first time.

The book is in sections. Following an introductory your-first-game walk-through the first section addresses creating artwork and animation (the chapter on 'the walk cycle' is very well presented). Also discussed is the use of computer-generated imagery programs and the importation of artwork for backgrounds and other purposes. Section 2 is about scripting. The book contains extensive examples of code in Lingo with commentary and useful notes on its use. JavaScript is also discussed as a scripting language. The final chapter of the scripting section deals with integrating Director with Flash (which is used to play the animations).

Section 3 contains a series of practical applications, beginning with simple projects and moving on to "platformers" (control of a sprite character that can run, jump, and walk, and avoid collisions). The projects are accompanied by the necessary code (which is also contained on a companion CD). Section 4 takes the reader on to three-dimensional figures, introducing modelling techniques.

There are also discussions of solid object physics and maths for games developers. These are brief, but point to an important aspect of games design that nascent developers need to appreciate. This title is a remarkably articulate and technically detailed introduction to all aspects of game development. It assumes the user has, and knows how to use, Director.

This title is available direct from Elsevier Australia Customer Service, Ph:. 1800 263 951, fax 02 9517 2249, or email service@elsevier.com.au.
 
Nik Lever: Director MX Games
ISBN 0-240-51949-3
Published by Elsevier,
330 pp. + CD,
RRP $92.40

Essential Mathematics for Games

From Morgan Kaufmann, an imprint of Elsevier, Essential Mathematics for Games and Interactive Applications: A Programmer's Guide is a great introduction to one of the hard disciplines for programmers ("for programmers" is the operative term). The book assumes a knowledge of programming - not just a casual acquaintance - but does not require an in-depth knowledge of mathematics. The inside front cover has a glossary of notation to help those of us who need to be reminded.

The book is in parts. Part I covers core mathematics: vectors and points, linear transformations, affine transformations (includes discussion of manipulation of games objects and scene graphs), and real-world computer number representation (includes a discussion of the IEEE floating point standard). Part II deals with rendering: viewing and projection; geometry, shading, and texturing; lighting; and rasterisation. Part III is about animation: curves and orientation representation. Part IV addresses simulation: intersection testing, and rigid body dynamics.

The authors do not present a purely mathematical introduction, but discuss the mathematics in a programming context. For those who need some further maths coaching appendices have been included: reviews of trigonometry and calculus.

A companion CD (Windows, Mac OS X, and Linux compatible) contains source code for the demos (pre-compiled versions for Windows), and source for the graphics and math libraries.

A thorough, well-presented text that covers one of the essential elements of games development. It provides valuable insights into all aspects of animated 3-D programming. An essential resource for professional developers of games. It should also be of interest to anyone with an interest in computer number representation.

This title is available direct from Elsevier Australia Customer Service, Ph:. 1800 263 951, fax 02 9517 2249, or email service@elsevier.com.au.

James Van Verth and Lars Bishop:
Essential Mathematics for Games and Interactive Applications: A Programmer's Guide
ISBN 1-55860-863-X
Published by Morgan Kaufmann, 676 pp. + CD,
RRP $97.35 incl. GST

Physics for Games Developers

Realism is an essential element of a successful game program, and to establish realism one needs to apply the principles of physics. Programmers usually don't have a strong mechanics or physics background, which is the reason for this title, Physics for Games Developers. Readers are assumed to have a professional-level knowledge of programming, at least a secondary school grounding in physics and calculus, and proficiency in trigonometry, vector maths, and matrix maths. The book contains 'rust-removal' reviews of those subjects.

Physics is a broad field of science; the author points out that games developers are interested in a particular aspect: mechanics - sometimes called real physics - which "is the study of bodies at rest and in motion and of the effect of forces on them".

The first part of the book deals with concepts and principles: basic concepts, kinematics, force, kinetics, and collisions. The following five chapters focus on "some real-world problems" projectiles, aircraft, ships, hovercraft, and cars. The next group of seven chapters deal with real-time simulations, including implementing collision response, rigid body rotation, multiple bodies in 3D, and particle systems.

The text is well supported with diagrams and there is example C++ code. Even though a background in programming, maths, and mechanics is assumed, informed lay readers should find it highly interesting for its insights. One does not have to be a physics expert to appreciate, and learn from, this book. Programmers, even if not involved in game development, should find much of interest.

David Bourg: Physics for Game Developers
ISBN 0-596-00006-5
Published by O'Reilly,
326 pp.,
RRP $79.95 incl. GST

Artificial Intelligence

The question of what artificial intelligence (AI) is - let alone the definition of intelligence - attracts much discussion. Lay readers who want an informed, but plain language commentary on the issue should find AI for Games Developers interesting and informative. Anyone with an interest in AI - especially how it is implemented in a programming language - should find this a useful introduction. The fact that the focus is on games development makes it easier to grasp concepts and understand how solutions are formulated.

The book assumes a knowledge of the C and C++ programming languages, but readers are not expected to know anything about AI or games development. In short, if you are a programmer who wants to explore games development, this is an important resource. Creating "dazzling and compelling 3D graphics" is no longer sufficient in itself for a game to be marketable; the presence of apparent intelligence is an essential element.

There are certain behaviours that games require, such as navigating a maze. Others discussed in the book are chasing and evading, pattern movement (such as evasive action taken by a target, or patrolling by a guard), flocking and swarming, obstacle avoidance, pathfinding, and searching. The coverage is detailed and supported by illustrations, diagrams, and example code. A chapter discusses scripted AI and scripting engines.

The second half of the book deals with topics usually found in theoretical texts: fuzzy logic, rule-based AI, probability, Bayesian techniques, neural Networks, and genetic algorithms. The authors do a remarkable job of explaining the concepts and demonstrating their application in a game-world environment with code examples. If you want a clear, easy-to-follow explanation of these topics, this is a text well worth reading.

An outstanding example of technical communication. An essential resource for games developers, and well worth having in any library with holdings on AI.

David Bourg and Glenn Seemann: AI for Games Developers
ISBN 0-596-00555-5
Published by
O'Reilly, 371 pp.,
RRP $79.95 incl. GST

Reprinted from the July 2005 issue of PC Update, the magazine of Melbourne PC User Group, Australia

[ About Melbourne PC User Group ]