DomCode: DomGame

Onze eigen Sander ontwikkelde speciaal voor DomCode in Utrecht een bijzonder spel: DomGame. 

Vrijdag 4 november was het zover: ontwikkelaars uit onze mooie stad Utrecht verzamelden zich voor de DomCode-conferentie in de Nicolaïkerk. Infi was als sponsor ook van de partij met een stand. Hier lieten we zien wat we allemaal doen, maar daarnaast zorgden we met demo’s van onze Oculus VR-set en 3D-printers ook voor wat afleiding tussen de interessante talks.

DomGame

Infi was ook aanwezig met DomGame, een aanpassing van Conway’s Game of Life. Iedere deelnemer aan DomCode kon een eigen ‘beschaving’ definieren. Deze beschavingen werden losgelaten in een virtuele wereld. Elke beschaving kon een aantal punten verdienen en aan het einde van de dag ontving de oprichter van de succesvolste beschaving zijn eigen Infi-pimped hoverboard. 

Het spel was een groot succes, tijdens de pauzes tussen de talks startten we telkens een nieuwe ronde op met 20 deelnemers. Het was erg gaaf om te zien hoe zich elke keer een grote groep deelnemers voor onze schermen verzamelden om hun eigen beschaving of die van een collega aan te moedigen. 

The Secret Sauce

Dan nu de veel gevraagde geheime formule van hoe het spel precies werkte.
 
Een beschaving bestaat uit 5 eigenschappen (Attack, Defense, Science, Culture and Government) Het gehele spel werd uitgevoerd over 100 generaties. Elke generatie werden voor elke cel de volgende stappen uitgevoerd:
 
1. Bepaal mogelijke buren om aan te vallen. Dit kon elke aangrenzende cel zijn die niet al bij dezelfde kleur hoorde en die niet de aanvallende beschaving als vorige eigenaar had.
 
2. Kies uit deze mogelijkheden 1 vijandige cel en val deze aan. Om te bepalen of een aanval slaagt werd de volgende formule uitgevoerd:
Attack = Aanvaller.Attack + ((Aanvaller.Science * Nummer van huidige generatie) / 25)
Defense = Verdediger.Defense + ((Verdediger.Defense * Nummer van huidige generatie / 25)
Wanneer Attack > Defense dan slaagde de aanval. In andere gevallen gebeurde er niks.
 
3. Verhoog de Culture punten van de cel. Wanneer deze hierdoor hoger worden dan 100, verlaag de waarde met 100 en geef de speler 1 punt.
 
De oplettende lezer mist nu de bijwerkingen van Government. Deze deed helemaal niks! Ik ben van plan om de simulatie nog verder door te ontwikkelen en daarin zal Government zeker wel een rol gaan spelen.

Techniek

Het spel is geschreven in .NET. Voor de site is MVC5 gebruikt. Het spel zelf werd gestart in een aparte thread. Aan het einde van elke generatie werd de 500x500 wereld getekend in een GIF-image. Aan het einde van elk spel werden de gegenereerde GIFjes verzameld in een animated GIF.

[Sander is ontwikkelaar bij Infi]

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?