Robot Battle

**Robot Battle** on Brad Schickin kehittämä ja GarageGamesin julkaisema ohjelmointipeli, jossa käyttäjä suunnittelee ja ohjelmoi taistelurobotteja. Menestykseen Robot Battlessa ei vaadita refleksejä, vaan strategian hallintaa sekä tarkkuutta ja ajoitusta. Robotin toiminnan määrää kunkin pelaajan tekemä ohjelma. Alkuperäinen peli-idea on samantapaisesta RobotWar-pelistä.

## Historia

Robot Battle -pelin loi Brad Schick 1994 ja hän tarjosi sen vapaaseen levitykseen samana vuonna alkaen versiosta 1.2. Schick julkaisi pelistä monia versioita versioon 1.3 vuonna 1995.  Seuraava suurempi muutos oli David Finch:in tekemä versio 1.33 vuonna 1997. Robot Battle -yhteisö piti yhteyttä Robot Battle -sähköpostilistan (RBML) avulla helmikuulle 2004 asti ja siirtyi sitten Robot Battle Registry -foorumille.  Sähköpostilistan ja nyttemmin keskustelupalstan kautta on järjestetään turnauksia sekä neuvotaan uusia ja vanhoja pelaajia vaativissakin ohjelmointiongelmissa.

Vuoden 2001 alussa Schick alkoi työstää Robot Battlen versiota 1.4, joka lupaili laajoja parannuksia. RBML-postituslistalla satoi ideoita ja parannusehdotuksia ja avuntarjouksia. Lopputuloksena oli Robot Battle nykymuodossaan:

* 3D-grafiikka robotteihin (Emmanuel Athans – http://www.manopolis.com/)
* uudet ääniefektit (Steve Simmons)
* uusia ohjelmointikielen ominaisuuksia
** Sliding, *sivuluisu* (alun perin ohjelmointivirhe, nyt monien robottien tärkeä ominaisuus)
** XY-koordinaatit
** Radio
** Author- ja Version-muuttujat
** Taulukot
** Silmukat
* Joukkueasetukset

Vuoden 2001 puolivälissä GarageGames kiinnostui Robot Battle -pelistä ja Schick ryhtyi myymään sitä heidän kauttaan. Pian ensimmäisen virallisen 1.4 version joulukuussa 2002 alkoi Robot Battle Registry -foorumin työstäminen. Robotteja voitiin tuoda näin toisten ladattaviksi ja organisoida turnauksia. Registry avattiin toukokuussa 2003. 

Robot Battle saa yhä uusia käyttäjiä. Yhteydenpito tapahtuu Registryn keskustelupalstojen ja IRC:n kautta. Foorumi on nyttemmin avoin kaikille ja pelikin on taas vapaassa levityksessä marraskuusta 2004 asti.

Robot Battle on toteutettu avoimen lähdekoodin MPL-lisenssillä. Kuka tahansa voi tutustua ohjelman lähdekoodiin kehittääkseen robotteja tai RSL:ään liittyviä omia sovelluksiaan.

## Robotti

Robotit koostuvat kolmesta osasta. Runko teloineen on todellisuudessa 33x33 ruudukko.  Se pyörii korkeintaan viisi astetta vuoroa kohti. Tykki voi ampua eri kokoisia ammuksia, jotka voivat tuhota miinoja, keksejä ja toisia ammuksia sekä tietenkin vaurioittaa toisia robotteja. Tykin pyörimisnopeus on korkeitaan kymmenen (eräässä tapauksessa 15) astetta yhdellä vuorolla. Tutka skannaa keksejä, miinoja, robotteja sekä seiniä. Pyörimisnopeus on 15 (tai 5+10+15 = 30) astetta kunkin vuoron aikana.

## Pelin skriptauskieli

Robotit ohjelmoidaan **Robot Scripting Language** -skriptauskielellä (**RSL**). Robotit tehdään ja tavallisimmin myös julkaistaan .prg-formaatissa, mutta jotkut ohjelmoijat käyttävät salattuja .dst-tiedostoja. Salausohjelmisto on Schickin alun perin versioon 1.3 tekemä; sekä Joseph Fowler (Sorcerer) ja Mark Duller ovat muokanneet sen Robot Battle 1.4 -yhteensopivaksi, kumpikin tehden oman itsenäisen versionsa.

RSL muistuttaa BASIC-, C-, ja JavaScript-ohjelmointikieliä. Robotissa on monta sektiota. Sektiolla on nimi ja sitä seuraa koodi kaarisuluissa. "Init" on ainoa pakollinen sektio. Muut sektiot määräytyvät tapahtuman ja tärkeysjärjestyksen perusteella.

Core-sektio suoritetaan, kun mitään korkeamman prioriteetin tehtävää ei ole. Ascan, silloin kun käytetään, on prioriteetiltaan tavallisesti kaikkein alhaisin. Ascan suoritetaan vain robotin liikkuessa. Muita tapahtumia voivat laukaista törmäykset ammuksiin, seiniin tai toisiin robotteihin tai vaikkapa skannatuksi tuleminen, ja myös oman tutkan löytäessä jotain mielenkiintoista.

Robotin eri osia ohjataan komennoilla.

Aluksi kannattaa tutkia ohjelman mukana tulevia valmiita robotteja: *Combo*, *Smart Corner*, *Events*, *Fire*, *Rammer*, *Shell*, *Side Liner*, *Target*, *Walls II* ja *Zag*. Nämä esimerkit valaisevat komentojen ja sektioiden peruskäyttöä, kuin myös vaativampia taktiikoita kuten radion ja "command blocking off" -komennon käyttöä.

## Aiheesta muualla
* Robot Battle: Home (Wayback Machinen kautta)  
* Robot Battle Registry (Wayback Machinen kautta) 
* Garage Games 
* Robot Battle Fandom