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

Difference between revisions of "BZRobots/Ideas"

From BZFlagWiki
Jump to: navigation, search
(Accepted ideas)
Line 23: Line 23:
 
** getPosition(dt) -return position after dt seconds as is assumed
 
** getPosition(dt) -return position after dt seconds as is assumed
 
** getType() - normal? gm? laser? ...
 
** 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  
 
** 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  
+
** 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 =

Revision as of 06:03, 4 August 2009

Overview

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

Implementation ideas

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)