| 
				   | 
				
| Line 1: | 
Line 1: | 
 | =Overview=
  |  | 
 | This page is to collaborate on ideas for the [[BZRobots]] Programmable Computer Player Client
  |  | 
 | 
  |  | 
  | 
 | = Implementation ideas =
  |  | 
 | * [[BZRobots/ShotsAndEnemies]]
  |  | 
 | 
  |  | 
 | = Suggested ideas =
  |  | 
 | ==Scripting==
  |  | 
 | * Be able to load multiple modules.
  |  | 
 | 
  |  | 
 | ==API functions==
  |  | 
 | * Provide an API for visual targets based on the same rules a player would see.
  |  | 
 | * Provide global, team, admin, and report chat APIs so bots can communicate just like players, perhaps with some parsing helper functions.
  |  | 
 | * Have methods to compute travel paths to desired locations, with updates for moving targets.
  |  | 
 | * Add a getTank(callsign) function
  |  | 
 | 
  |  | 
 | == Input ==
  |  | 
 | * Allows input of coordinates/properties from stdin, so info from other apps, gps, etc. can be pumped into the bot
  |  | 
 | 
  |  | 
 | = Accepted ideas =
  |  | 
 | * Add support for getShots() in BZAdvancedRobot - return a list of shots (class Shot) 
  |  | 
 | * Add support for a Shot class
  |  | 
 | ** getPosition(dt) -return position after dt seconds as is assumed
  |  | 
 | ** getType() - normal? gm? laser? ...
  |  | 
 | ** getHeading() - which way is the shot heading?
  |  | 
 | ** getShooter() - who shot it? at least own shots should be distinguished because on no-rico servers we could just throw them away when doing collision forecasts 
  |  | 
 | ** unique identifier so that frontend and backend can refer to individual shots: can be composed using player id and shot id
  |  | 
 | * Add support for getPlayers() in BZAdvancedRobot - return a list of players (class Tank) 
  |  | 
 | * Add support for a Tank class
  |  | 
 | ** getPosition(dt) - return position after dt seconds as is assumed
  |  | 
 | ** getVelocity() - return current velocity
  |  | 
 | ** getAngularVelocity() - return current angular velocity, i.e. how fast it is turning
  |  | 
 | ** getHeading() - which way the bot is heading?
  |  | 
 | ** unique identifier so that frontend and backend can refer to individual shots: can be composed using player id and shot id
  |  | 
 | 
  |  | 
 | = Rejected ideas =
  |  | 
 | ==API functions==
  |  | 
 | * Have methods to compute travel paths to desired locations, with updates for moving targets.
  |  | 
 | ** (Rejected as it defeats the purpose of BZRobots as an AI learning tool)
  |  |