Mars

Metadata

Description

  • This is a demonstration of the A* search algorithm
  • The veridian circles are obstacles which randomly drift about
  • The tanks will navigate around the obstacles to pursue targets
  • When a tank is damaged, it is stunned and briefly cannot move
  • The brass circles are ammunition dumps at which tanks reload
  • Ammunition dumps gradually refill after being depleted
  • Ammunition dumps explode when damaged by tanks or explosions
  • After an ammunition dump explodes, it briefly stops refilling
  • When there are no more enemy tanks, the tanks will target the obstacles
  • Once all of the obstacles are destroyed, the level increments

Objectives

  • Enable the "Display nodes" checkbox to see the points searched for a path
  • Enable the "Display paths" checkbox to see the selected path to the goal
  • Use the "Pause" checkbox to see the nodes and paths at a moment in time

Controls

  • The "Reset" button restarts the level
  • The "Display nodes" shows the pathfinding nodes for a tank
  • The "Display path" shows the path a tank is following
  • The "Display update rate" checkbox displays the sampled rate
  • The "Pause" checkbox pauses the game

History

  • I previously wrote this game in the Java programming language in 2003.
  • It was deployed as part of the CroftSoft Collection.
  • I featured it in my 2004 book Advanced Java Game Programming in a chapter describing how to use the A* algorithm for path-finding.
  • In 2023, I converted the Java code to the Rust programming language. Since Java applets are no longer supported in Web browsers, I compiled the Rust code to WebAssembly (Wasm) to get it to run in a webpage. See my Rust and WebAssembly research page for links to tutorials that I wrote on how to do this.