This wiki is archived and useful information is being migrated to the main bzflag.org website

Editing BZRobots/Ideas

Jump to: navigation, search

Warning: The database has been locked for maintenance, so you will not be able to save your edits right now. You may wish to copy and paste your text into a text file and save it for later.

The administrator who locked it offered this explanation: Archived wiki

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
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 =
==Scripting==
+
* Add support for getShots() in BZAdvancedRobot - return a list of shots (class Shot)
* Be able to load multiple modules.
+
* Add support for a Shot class
** A small amount of work in bzrobots client should make this happen
+
** 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 =
 
= Rejected ideas =
Line 21: Line 38:
 
* 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)
 

Please note that all contributions to BZFlagWiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see BZFlagWiki:Copyrights for details). Do not submit copyrighted work without permission!

To edit this page, please answer the question that appears below (more info):

Cancel | Editing help (opens in new window)