Welcome GuestLogin

Programming Games Wiki

RSS RSS

Search

»

Explore


Share




Botbattle Reloaded

RSS
Modified on 2011/12/14 17:47 by Zheng Li Categorized as Arena Games
Botbattle Reloaded screenshot

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

History

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

Description

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

Programming

The language is a custom language that is meant to resemble natural English. An example snippet of code is below:

local $energy
if
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
    if
    $energy less than 6
    or
    not
    abot has deflector
        set target to abot
        #fire the laser!
	fire item1
        wait
        wait
        wait
    endif

    #post-shot analysis
    if
    not
    abot alive
        #gloat!
	say Headshot!
    endif
    return
endif
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

External Links