Further ReadingThe Isometrix Project (http://www.isometrix.org/; http://isometrix.tsx.org/) concentrates on isometric tile games. The articles section covers topics such as map formats, tile layout, placing objects, and lighting. The engines section lists code sources, tools, and demos. I mentioned GameDev.net's "Isometric and Tile-based Games" section at the end of the last chapter (http://www.gamedev.net/reference/list.asp?categoryid=44). It contains over 30 articles on tile-based gaming. A good introductory book is Isometric Game Programming with DirectX 7.0 (Muska and Lipman/Premium-Trade) by Ernest Pazera. The first 230 or so pages are about Windows programming, and the examples use C. However, there's good stuff on the basics of rectangular and isometric games tile plotting, drawing, world and map coordinate systems, and moving about a map. Some modern Java isometric or tile games examples, which come with source code, are:
Mappy for PC (http://www.tilemap.co.uk/mappy.php) can create isometric and hexagonal tile maps, and there are several Java-based playback libraries, including JavaMappy (http://www.alienfactory.co.uk/javamappy/). The surface image created for AlienTiles (shown in Figure 13-3) was hacked together using MS PowerPoint and Painta reasonable approach for demos but not recommended for real maps. A* InformationThe workings of the A* algorithm can be hard to visualize. The A* Demo page (http://www.ccg.leeds.ac.uk/james/aStar/) by James Macgill, lets the user create a search map and watch the scoring process in action. The applet source code can be downloaded. The pseudocode I used is based on code from "The Basics of A* for Path Planning" by Bryan Stout, from Game Programming Gems (Charles River Media), edited by Mike DeLoura. There are other articles in Game Programming Gems related to A* optimization worth checking out as well. An online version of another A* article by Bryan Stout, "Smart Moves: Intelligent Pathfinding," is available at http://www.gamasutra.com/features/19970801/pathfinding.htm. It includes a PathDemo application which graphically illustrates several search algorithms, including A*. The A* algorithm tutor (http://www.geocities.com/SiliconValley/Lakes/4929/astar.html) by Justin Heyes-Jones offers a detailed account of the algorithm. Amit J. Patel's web site on games programming (http://www-cs-students.stanford.edu/~amitp/gameprog.html) covers several relevant topics, including pathfinding (with a bias towards A*), tile games, and the use of hexagonal grids. Information on A* can be found at game AI sites, usually under the pathfinding heading. Two excellent sources are:
A modern AI textbook, which discusses several search algorithms (including A*), is Artificial Intelligence: A Modern Approach (Prentice Hall) by Stuart Russell and Peter Norvig. Many of the pseudocode examples from the book have been rewritten in Java (including those for doing searches), and they're available from the web site, http://aima.cs.berkeley.edu/. |