Innovatie & Strategie

Software-ontwikkeling
gamer

Betere games met live programmeren

Impact van veranderingen sneller inzichtelijk

© CC BY-SA 2.0 - Flickr.com ulricaloeb
22 april 2020

Impact van veranderingen sneller inzichtelijk

Games hebben wereldwijd invloed op het leven van miljarden spelers, maar het maken van goede games met interessante spelervaringen is moeilijk. Met een domeinspecifieke programmeertaal voor games (DSL) kunnen gamedesigners volgens Riemer van Rozen sneller betere games ontwerpen door de mogelijkheid om live te programmeren.

Softwareontwikkeling is onderhevig aan steeds veranderende eisen. Hierdoor neemt de complexiteit toe en staat de kwaliteit van broncode onder druk. Games zijn een ‘snelkookpan’ van verandering omdat gamedesigners constant aanpassingen moeten maken aan het spelontwerp om de kwaliteit van het spelen te verbeteren. Enerzijds hebben designers snellere feedback nodig over het effect van de aanpassingen.
Anderzijds ontbreken zowel de benodigde specifieke interactiemechanismen als de generieke technologieën
om aanpassingen direct (live) inzichtelijk te maken en uit te voeren. Hoe je software, en games in het bijzonder, live aanpasbaar maakt is nog een open vraagstuk. Welke oplossingen zijn daarvoor mogelijk?

Games design

Goede games ontwikkelen is razend ingewikkeld. Dit komt hoofdzakelijk doordat gamedesign, het
ontwerpen van interessante spelervaringen, intrinsiek complex is. Om games te verbeteren, moeten gamedesigners steeds nieuwe spelregels uitproberen (playtesten). Zo komen ze erachter hoe ze het spelontwerp voor spelers leuker, meeslepender, overtuigender of leerzamer kunnen maken. Helaas komen ze er keer op keer achter dat tijdrovende aanpassingen aan de spelregels nog niet het beoogde effect hebben gehad.

Figuur 1

 

Figuur 1: Het ontwikkelen van games behelst het iteratief ontwerpen, playtesten en verbeteren van de spelregels als ‘kartonnen’ prototypes (1) en softwareprototypes (2).

Gameontwikkeltrajecten falen wanneer teams niet op tijd de vereiste kwaliteit kunnen bereiken omdat verbeteringen te lang duren. Figuur 1 illustreert oorzaken van de vertraging. Enerzijds neemt de kwaliteit van broncode steeds verder af naarmate snel veranderende requirements continu aanpassingen vereisen aan de broncode (+1). Dit algemene fenomeen heet ‘software decay’ [2]. Anderzijds missen gamedesigners geschikte specifieke notaties en gereedschappen om

tijdig feedback te vergaren (+2) en spelervaringen te verbeteren zonder hulp van software-engineers (+3) [4].

In onderstaand kader 'Live gamedesign' wordt een voorbeeld beschreven dat een combinatie van twee oplossingsgebieden illustreert. 

1. Geautomatiseerd gamedesign ondersteunt en versnelt creatieve designprocessen [4]. Het biedt designers visuele talen en gereedschappen die hen helpen de kwaliteit te verbeteren. Om beurten schaven designers aan de oplossing en genereren tools voor ontwerpsuggesties.
2. Live programming wordt gekenmerkt door stapsgewijze veranderingen en onmiddellijke feedback [3].
Ontwikkelaars passen een werkend programma aan door de broncode te wijzigen. Ze krijgen onmiddellijk feedback wanneer het zich in reactie daarop aanpast.

Beide technieken helpen om te exploreren en ondersteunen het voortschrijdend inzicht. Het kader 'Live gamedesign' illustreert dit met een kijkje onder de motorkap van Johnny Jetstream, een 2D flyby shootergame, ontwikkeld door IC3D Media uit Breda.

Game-economieën

Veel games hebben een interne economie, een soort 'knikkerbaan' die de spelregels uitdrukt. Het draait hierin natuurlijk allemaal om de knikkers. Gamedesigners introduceren de hendels, valluiken en spaarpotjes die spelers interessante keuzes bieden. Spelers kunnen de knikkers (bijvoorbeeld goud, kristallen of levenselixir) herverdelen, uitgeven, verzamelen, stelen of juist weer kwijtraken. Het is tijdrovend om vast te stellen of deze regels interessante puzzels, strategieën of leerzame ervaringen opleveren. De visuele notatie Machinations helpt om de spelregels te begrijpen [1]. Lussen in de knikkerbaan beschrijven remmende voorsprong, versterkende voordelen, langetermijninvesteringen en kortetermijnwinsten.

 

Live gamedesign

Om het gamedesign te automatiseren en te versnellen, maakten we een domeinspecifieke programmeertaal van Machinations die ontwikkelaars in staat stelt om diagrammen in games te integreren. Met Micro-Machinations kunnen gamedesigners live de spelregels van werkende gamesoftware aanpassen tijdens het playtesten [5]. Loren Roosendaal (Knowingo en IC3D Media) noemt dit “zero iteration time”.

In de volgende stappen bestuderen we de broncode van Johnny Jetstream en realiseren we (samen
met een fictieve designer) een nieuwe ontwerpbeslissing. Het prototype van de game integreert Micro-
Machinations en live aanpasbare spelregels.

Figuur 1

Broncode versie 1: Vijanden raken levert goud op

Hiernaast zie je het werkende spel met de speler (het vliegtuigje links), de ‘health bar’ (boven) en een vijand (de drone rechts).

Drone 1 Rozen

Het playtesten van deze eerste versie levert op dat spelers al snel overweldigd worden door tegenstanders. Onze designer probeert dit in de tweede versie op te lossen door een interactief mechanisme toe te voegen.

Figuur 2

Broncode versie 2: Voegt een manier toe om levenselixir te kopen (in blauw).

Met buyMedkit kunnen spelers voor 20 goudstukken levenselixer kopen, dat 10 levenspunten teruggeeft. Anders dan voor de ‘health bar’, die levenspunten weergeeft, heeft dit nieuwe interactiemechanisme geen vooraf gekozen representatie. De game voegt daarom als reactie hierop live een generieke knop toe aan de user interface waarmee spelers de nieuwe regel kunnen activeren, zoals hiernaast is te zien. Dat is een kleine verbetering, omdat spelers het langer volhouden.
De generieke knop kan later vervangen worden door een mooi vormgegeven icoontje.
Natuurlijk is dit pas een eerste stap, en om het een leuk spel te maken zijn er complexere regels nodig. Omdat het prototype van de game Micro-Machinations integreert, kunnen designers vliegensvlug nieuwe variaties uitproberen. Zo kunnen ze sneller een beter spel ontwerpen.

Rozen Drone 2

 

Essentiële uitdagingen en kansen

Software is veelal een product van voortschrijdend inzicht. Daarbij hoort dat de eisen en functionaliteit steeds veranderen. Live programming is een veelbelovend oplossingsgebied om de kwaliteit van software gedurende de hele levenscyclus te blijven verbeteren. Dit vereist echter dat aanpassingen en effecten expliciet gerepresenteerd worden [6], en dat is nu helaas nog zelden het geval.

Naast geschikte technologieën hebben ontwikkelaars interactieve omgevingen voor live programmeren nodig die de aanpassingen inzichtelijk maken. Dat vergt visuele feedback waarmee ontwikkelaars hun mentale modellen (voorstellingsvermogen) kunnen verbeteren. De werkende software zelf dient de veranderingen te kunnen doorvoeren. Uiteraard zijn de hiervoor benodigde programmeertalen en gereedschappen essentieel. De uitdaging is generieke herbruikbare methoden en technieken te ontwikkelen die helpen de complexiteit te reduceren door geschikte dimensies van aanpassing (evolutie) te introduceren.
 

Game-economieën zijn een geschikte aanpassingsdimensie voor game development, omdat gamedesigners gedurende het hele ontwikkelproces spelregels prototypen, playtesten en finetunen [5]. Visuele programmeeromgevingen kunnen daarbij helpen. Echter, niet alle games hebben een grote interne economie. Andere eigenschappen om te verbeteren, zijn storytelling, virtuele
werelden, gamelevels en geloofwaardige karakters [4].
Game development is veelzijdig en de toolsupport is nog beperkt. Daarom liggen er nog veel kansen voor toegepast onderzoek naar geautomatiseerd gamedesign.

 

Referenties

[1] E. Adams en J. Dormans. Game Mechanics: Advanced Game Design. 1ste ed. New Riders Publishing, 2012.

[2] T. Mens. “Introduction and Roadmap: History and Challenges of Software Evolution”. In: Software Evolution. Springer, 2008.

[3] S. L. Tanimoto. “A Perspective on the Evolution of Live Programming”. In: International Workshop on
Live Programming (LIVE). IEEE, 2013.

[4] R. van Rozen. “Languages of Games and Play: Automating Game Design & Enabling Live Programming”. Proefschrift. University of Amsterdam, feb 2020.

[5] R. van Rozen en J. Dormans. “Adapting Game Mechanics with Micro-Machinations”. In: Proceedings of the International Conference on the Foundations of Digital Games (FDG). SASDG, 2014.

[6] R. van Rozen en T. van der Storm. “Toward Live Domain-Specific Languages: From Text Differencing to Adapting Models at Run Time”. In: Software & Systems
Modeling 18.1 (feb 2019).

 

Magazine AG Connect

Dit artikel is ook gepubliceerd in het magazine van AG Connect (aprilnummer 2020). Wil je alle artikelen uit dit nummer lezen, klik dan hier voor de inhoudsopgave.

Lees meer over Innovatie & Strategie OP AG Intelligence
Reactie toevoegen
De inhoud van dit veld is privé en zal niet openbaar worden gemaakt.