Difference between revisions of "BZRobots/Ideas"

From BZFlagWiki
Jump to: navigation, search
(Undo revision 6589 by Bulldozer (Talk))
 
Line 1: Line 1:
 
=Overview=
 
=Overview=
 
This page is to collaborate on ideas for the [[BZRobots]] Programmable Computer Player Client
 
This page is to collaborate on ideas for the [[BZRobots]] Programmable Computer Player Client
 
= Implementation ideas =
 
* [[BZRobots/ShotsAndEnemies]]
 
  
 
= Suggested ideas =
 
= Suggested ideas =
==Scripting==
 
* Be able to load multiple modules.
 
 
 
==API functions==
 
==API functions==
 
* Provide an API for visual targets based on the same rules a player would see.
 
* Provide an API for visual targets based on the same rules a player would see.
 +
** This would only apply to maps using flags
 
* Provide global, team, admin, and report chat APIs so bots can communicate just like players, perhaps with some parsing helper functions.
 
* 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 ==
 
== Input ==
 
* Allows input of coordinates/properties from stdin, so info from other apps, gps, etc. can be pumped into the bot
 
* Allows input of coordinates/properties from stdin, so info from other apps, gps, etc. can be pumped into the bot
 +
** What to do when multiple bots are running in the same client?
  
 
= Accepted ideas =
 
= Accepted ideas =
* Add support for getShots() in BZAdvancedRobot - return a list of shots (class Shot)
+
==Scripting==
* Add support for a Shot class
+
* Be able to load multiple modules.
** getPosition(dt) -return position after dt seconds as is assumed
+
** A small amount of work in bzrobots client should make this happen
** 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 =
 
= Rejected ideas =
Line 38: Line 21:
 
* Have methods to compute travel paths to desired locations, with updates for moving targets.
 
* 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)
 
** (Rejected as it defeats the purpose of BZRobots as an AI learning tool)
 +
* Add a getTank(callsign) function
 +
** (Rejected due because BZRobots now supports the onScannedPlayer event)

Latest revision as of 18:37, 15 August 2009

Overview[edit]

This page is to collaborate on ideas for the BZRobots Programmable Computer Player Client

Suggested ideas[edit]

API functions[edit]

  • Provide an API for visual targets based on the same rules a player would see.
    • This would only apply to maps using flags
  • Provide global, team, admin, and report chat APIs so bots can communicate just like players, perhaps with some parsing helper functions.

Input[edit]

  • Allows input of coordinates/properties from stdin, so info from other apps, gps, etc. can be pumped into the bot
    • What to do when multiple bots are running in the same client?

Accepted ideas[edit]

Scripting[edit]

  • Be able to load multiple modules.
    • A small amount of work in bzrobots client should make this happen

Rejected ideas[edit]

API functions[edit]

  • 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)
  • Add a getTank(callsign) function
    • (Rejected due because BZRobots now supports the onScannedPlayer event)