Infinibattle 2018 - The Return of the Bots

Vrijdag 31 augustus vond de tweede editie van de Infinibattle plaats! Infi’ers en aanhang streden om de eer door zelfgeschreven bots tegen elkaar te laten strijden op een door Infi gebouwde server.

Het was een bloedige strijd met veel slachtoffers en één kampioen. In de eerste editie van de Infinibattle - die georganiseerd is door mijn geliefde collega Sander - heeft onze oud-collega Erik Tillema de titel verworven. Met gemengde gevoelens moet ik hier schrijven dat het hem wéér gelukt is om alle andere breinen te overtreffen. Van harte gefeliciteerd Erik, we krijgen je nog wel...!

Wat is de Infinibattle?

Twee jaar geleden had Infi’s visionair Sander een prachtig idee, wat hij de Infinibattle heeft genoemd. Hoe die eerste editie is gegaan, kun je lezen in ons vorige blog.

Een Infinibattle is niet moeilijk om uit te leggen. Er is een hoofdapplicatie die een spel draait (bijvoorbeeld mens-erger-je-niet) en de regels handhaaft. Dan zijn er spelers in de vorm van speler-applicaties (bots) die tegen de hoofdapplicatie zeggen welke zet ze willen uitvoeren. Iedereen die met de Infinibattle meedoet programmeert zo’n speler-applicatie met zijn of haar eigen geheime strategie die hopelijk iedereen aftroeft.

Deze tweede editie van de Infinibattle was het (relatief onbekende) spel ‘Onitama’ uitgekozen. Het is een spelletje dat een beetje op schaken lijkt. Zo speel je met pionnen op een veld en zijn er twee spelers die tegen elkaar strijden voor de winst.
 

Het moment van de waarheid

De 31e van augustus om 15:00 uur was het dan zo ver. Alle deelnemers hadden weken lang hun uiterste best gedaan om een beest van een bot te schrijven. We begonnen om 15:00 uur met een korte uitleg van de regels:

  • We spelen een double elimination, met voor elke match een best of three;
  • Eens per best of three mag een speler een timeout of een regel breken, daarna verlies je;
  • Alleen de finale is best of five.
Vervolgens begonnen de wedstrijden. We hadden geregeld dat een gespeelde match op basis van de gelogde zetten visueel afgespeeld kon worden. Daarom konden we elke wedstrijd met zijn allen op een beamer bekijken nadat hij voltooid was (wat maar enkele seconden duurt). Het was heel leuk en vaak spannend om te zien welke zetten de botjes maakten!

De finale werd gespeeld door onze Wilco met zijn bot “Schaakmeester” en de regerend kampioen Erik met zijn bot “Calculon”. Beide bots werkten met een minimax algoritme dat zo veel mogelijk zetten uitrekent en steeds de best mogelijke zet probeert te kiezen.

Na een uiterst spannende finale moest Wilco het onderspit delven en kon Erik zichzelf de kampioen van de Infinibattle blijven noemen. Natuurlijk hoort er bij zo’n prestatie een mooie prijs, en die  bestaat uit:
  • Eeuwige roem en bragging rights;
  • Een ge3Dprintte bokaal in Infi-kleuren om mee te nemen;
  • Een bronzen 1-op-1 schaal buste van je gezicht op het kantoor van Infi - ter vereeuwiging van je persoon en prestatie.
(tekst gaat verder onder foto)

Hoe hebben we het gedaan?

Mijn - inmiddels oud - collega Jorik van der Werf en ik hebben met hier en daar wat hulp van anderen de server en het spel gebouwd waarin de botjes van de deelnemers draaien.

Deelnemers konden hun botjes uploaden naar onze spelserver nadat ze die geprogrammeerd hadden. Zodra hun bot op onze server stond, konden ze die laten spelen tegen bots van andere deelnemers die ook geüpload waren. De botjes kregen informatie van de server en maakte zelf zetten door berichten te sturen over de StandardIn en StandardOut, wat de meest basale manier van communicatie van een programma is.

Afhankelijk van hoe technisch u bent, waarde lezer, vraagt u zich misschien af hoe een deelnemer zijn of haar bot kan testen, gezien het spel gehost wordt op de spelserver. Wij leverden daarvoor een stukje code aan de deelnemers waarmee ze vanaf hun lokale computer konden simuleren (via sockets) dat hun bot op onze server stond en dus wedstrijden konden spelen met hun debugger aan. Op die manier hoefde spelers niet bij elke revisie van hun code de bot opnieuw te uploaden om te zien wat de bot deed.

We zijn allebei behoorlijk tevreden over wat er nu staat, en we hadden het idee dat deelnemers redelijk goed hun botjes konden ontwikkelen en testen. Jorik en ik hebben veel tijd besteed aan dit project, en hebben er ook veel van opgestoken. We zouden iedereen aanraden iets soortgelijks te starten!

Dankjewel!

Een van de redenen waarom dit hele traject zo leuk was, is het enthousiasme van alle deelnemers en omstanders. Het was leuk om te ervaren hoe fanatiek men was om te winnen, en hoe welwillend iedereen was om mee te denken of helpen aan dit project.

Ik heb nu al zin in de derde editie die hopelijk zal plaatsvinden in 2019. Ik hoop dat we dan eindelijk Erik Tillema van de troon kunnen stoten en de eer bij Infi binnen kunnen halen!

Ook meedoen?

Wilt u, waarde lezer, ook een gooi naar de prijs doen? Dat kan op twee manieren:

Beide opties kan ik van harte aanraden!

Wil je iets waarmaken met Infi?

Wil jij een eigen webapplicatie of mobiele app waarmee jij het bij anderen maakt?

Waargemaakt door de nerds van Infi.
Nerds met liefde voor softwareontwikkeling en die kunnen communiceren. En heel belangrijk: wat we doen, doen we met veel lol!

Wij willen het fixen. Laat jij van je horen?

Voor wie heb je een vraag?