Code Samples

AStar.cpp
This C++ code sample is pulled from my DigiPen senior game project, Last Stand. It implements a highly optimized A* pathfinding algorithm used by the grunt enemies in our game. It makes use of a binary heap for open list sorting. It also uses a data structure for all the tiles on the map maintained between calls with a shifting base ID, so the map does not need to be cleared every time the A* algorithm is run. A further optimization at a higher level, not shown here, is that the grunts only pathfind roughly 15 tiles in the direction toward the goal instead of pathfinding the entire way to the goal, then build a new path once they have reached about half way to the temporary goal. The AI I developed in Last Stand is extremely efficient, so hundreds of enemies can exist in the world without a noticeable impact to performance. This code will not compile on its own as it requires other parts of the project to exist.

Move.txt
This code sample is a complete ASP file pulled directly from my online web game, Teragaia. This file is executed whenever a player clicks one of the move buttons, which is the most logically complicated action in the game. The script must check if the player has moved on open ground, along a road, into his hometown, into another player's town to trade or ally, into an obstructed tile, into a guarded road, off the map, and so on. Once it determines where the player is moving, it takes appropriate action, or gives the user an error message if the action is for some reason illegal. The file uses the VBScript language for the game logic and Microsft Access SQL for the database updates and queries. I have renamed the file to a .txt file so it won't actually run and you can view it in your web browser.