This wiki was in read-only mode for many years, but can now be edited again. A lot of information will need to be updated.
BZRobots: Difference between revisions
→See Also: removed link which redirects back on to its own page |
merged content from BZRobots/Ideas and resorted content |
||
| Line 6: | Line 6: | ||
BZRobots requires that you have already configured and are running an instance of [[BZFS]], that allows one or more bots (using the -botsPerIP setting). Also, BZRobots is a "headless" client (i.e. there are no graphics, it is only text-based), so if you want to watch your bots in action, you will also need to join as an observer or player using the BZFlag client. | BZRobots requires that you have already configured and are running an instance of [[BZFS]], that allows one or more bots (using the -botsPerIP setting). Also, BZRobots is a "headless" client (i.e. there are no graphics, it is only text-based), so if you want to watch your bots in action, you will also need to join as an observer or player using the BZFlag client. | ||
=Quick Start: Building= | =Quick Start: Building= | ||
| Line 52: | Line 43: | ||
=See Also= | =See Also= | ||
=BZRobots/Ideas= | |||
This page is to collaborate on ideas for the [[BZRobots]] Programmable Computer Player Client | |||
= Suggested ideas = | |||
==API functions== | |||
* 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 == | |||
* 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 = | |||
==Scripting== | |||
* Be able to load multiple modules. | |||
** A small amount of work in bzrobots client should make this happen | |||
= 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) | |||
* Add a getTank(callsign) function | |||
** (Rejected due because BZRobots now supports the onScannedPlayer event) | |||
=History= | |||
The BZRobots Programmable Computer Player Client was originally developed by Brigham Young University as a project called [http://bzrc.cs.byu.edu/ BZRC] | |||
In 2007 it was further developed by Jørgen Pedersen Tjernø (AKA daxxar) as part of the [[Google_Summer_of_Code#Programmable_Computer_Player_Client|Google Summer of Code]]. Information about his work can be found on his GSoC blog at http://gsoc.daxxar.com | |||
This work was continued in 2009 by Mathew Eis (AKA Bulldozer and KingRobot), again as part of [[Google_Summer_of_Code#Programmable_Computer_Player_Client|Google Summer of Code]]. | |||
The current BZRobots code can be found in the [[BZFlag_SVN| BZFlag subversion system]] at http://bzflag.svn.sourceforge.net/svnroot/bzflag/trunk/bzflag/src/bzrobots | |||
Latest revision as of 05:14, 15 November 2025
About BZRobots
(Note that the following information applies to the BZRobots in the upcoming BZFlag 3.0 release)
BZRobots is a programmable computer player client that is compatible with the BZFS server. It is designed to be an artificial intelligence training and development tool that operates under the BZFlag platform.
BZRobots requires that you have already configured and are running an instance of BZFS, that allows one or more bots (using the -botsPerIP setting). Also, BZRobots is a "headless" client (i.e. there are no graphics, it is only text-based), so if you want to watch your bots in action, you will also need to join as an observer or player using the BZFlag client.
Quick Start: Building
Linux/OS X
The BZRobots client (and support for C++ bots) will by default as a standard part of the bzflag trunk build. However, if you want to build Python bots, you will need to run ./configure with the option --enable-bzrobots-python (and of course have the necessary dependencies)
Windows
Open the bzrobots solution, then build the bzrobots and testbot projects.
Quick Start: Running
(Note: This quick start assumes that you will be testing bzrobots from within the build directory, have already run 'autogen.sh', 'configure', and 'make' and have not run 'make install')
(Due to the use of libtool, the binary TestRobot.so is in the .libs directory)
# cd bzflag/src/bzrobots # ./bzrobots -team red sobot@localhost .libs/TestRobot.so
Linux/OS X: Python [.py]
# cd bzflag/src/bzrobots # ln -s .libs/bzrobot_pyext.so ./bzrobot_pyext.so # ./bzrobots -team red pybot@localhost ../../bots/python/TestRobot.py
Linux/OS X: LUA [.lua]
# cd bzflag/src/bzrobots # ./bzrobots -team red luabot@localhost ../../bots/lua/bzbot.lua
# cd bzflag # bzrobots.exe -team red dllbot@localhost TestRobot.dll
Windows: LUA [.lua]
# cd bzflag # bzrobots.exe -team red luabot@localhost bots\lua\bzbot.lua
Developing Robots
- BZRobots/API - A description the BZRobots API
- BZRobots/API_BZRobots_vs_Robocode - For those coming from RoboCode, a list of differences between the RoboCode and BZRobots
See Also
BZRobots/Ideas
This page is to collaborate on ideas for the BZRobots Programmable Computer Player Client
Suggested ideas
API functions
- 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
- 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
Scripting
- Be able to load multiple modules.
- A small amount of work in bzrobots client should make this happen
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)
- Add a getTank(callsign) function
- (Rejected due because BZRobots now supports the onScannedPlayer event)
History
The BZRobots Programmable Computer Player Client was originally developed by Brigham Young University as a project called BZRC
In 2007 it was further developed by Jørgen Pedersen Tjernø (AKA daxxar) as part of the Google Summer of Code. Information about his work can be found on his GSoC blog at http://gsoc.daxxar.com
This work was continued in 2009 by Mathew Eis (AKA Bulldozer and KingRobot), again as part of Google Summer of Code.
The current BZRobots code can be found in the BZFlag subversion system at http://bzflag.svn.sourceforge.net/svnroot/bzflag/trunk/bzflag/src/bzrobots