Botbattle Reloaded screenshot
Botbattle Reloaded''' is an arena-based programming game with a domain-specific language which resembles natural English. The game is deployed as a Java applet with an online database to allow easy competition with other programmers. "Bots" are customizable in their equipment and appearance. Four random bots fight in each round of play, though specific competitors can be designated during code development. The applet features a built-in debugger with variable watches, breakpoints, and stack traces to ease development.Edit
Botbattle Reloaded is based on Botbattle (see external links), with which it shares many similarities. The differences are a large expansion of the programming langauge to allow constructs such as loops, function return values, user-declared variables, math functions, and a richer, numerical instead of boolean, API with the game system. In addition, bug fixes and updates are added, particularly, allowing it to work with newer Java runtime environments. The applet has been re-skinned and the website is rebuilt with Ruby on Rails.
Botbattle Reloaded, like its predecessor, is free to play.Edit
The arena is 750 x 750 pixels and bots are 40 x 40 pixels. Each bot is equipped with up to four weapons or devices with different characteristics. Examples are: laser, shotgun, armor, shield, and teleporter.
Bots' status are characterized by health, energy, and ammo. Different devices use different amounts of energy and ammo. Health, energy, or ammo replenishments are dropped at intervals at random locations, allowing bots to heal or re-arm. The scarcity of energy and ammo is a central component of the game, forcing successful bots to be judicious in aggression.
Computations are limited per game second by number of instructions interpreted. Combat ends when one bot is left alive or after an inactivity timeout.Edit
The language is a custom language that is meant to resemble natural English. An example snippet of code is below:
abot health low #"abot" is a variable holding the identity of an opponent
#try to vulch a kill
#we need to make sure abot has no deflector shield
#or has not enough energy to use it, or our laser
#shot will be ineffective
set $energy to abot energy
$energy less than 6
abot has deflector
set target to abot
#fire the laser!
Many low-level computations are handled by built-in mechanisms, allowing the player to focus on high-level strategy and simplifying the process of building a new bot. For example, the sensing of opponents and computation of lead for weapons is automatic. The game is nearly perfectly observable. This is a difference from the previous Botbattle, which featured a cloaking device.Edit