Het artikel bespreekt de complexiteit van het creëren van een effectieve moeilijkheidscurve in game-design. In plaats van een lineaire stijging, introduceert de auteur het concept van de 'Moeilijkheidszaag', waarbij nieuwe mechanieken (zoals vaardigheden of vijandtypes) stapsgewijs worden geïntroduceerd en gecombineerd.
Belangrijke punten uit het artikel zijn:
- Spelerbehoud: Het voorkomen van frustratie (door te steile curves) of verveling (door te vlakke curves).
- Praktische tips: Het gebruik van optionele verzamelobjecten, dynamische moeilijkheidsgraden en subtiele visuele hints om spelers op het juiste niveau te houden.
- Level-opbouw: Een generiek model bestaande uit drie fasen: het aanleren van de mechaniek, de kern (toepassing onder druk) en de finale (beheersing).
- Data-analyse: Het gebruik van death maps en voltooiingspercentages om empirisch vast te stellen waar een level te moeilijk is.
- Pacing: Het belang van het afwisselen tussen adrenaline-pieken en rustmomenten om mentale verzadiging bij de speler te voorkomen.
Moeilijkheidsgraden in games ontwerpen
Mijn denkproces begon bij deze tweet van Russell Kay:
"We hebben ons hierover hoofd gebroken toen we Lemmings maakten. We deden er lang over om de moeilijkheidscurve glad te strijken en we brachten de stapsgewijze veranderingen aan in verschillende secties, zoals hoofdstukken in plaats van moeilijkheidsinstellingen. Hierdoor kon de gebruiker zelf kiezen en werden de verwachtingen beheerst." — Russell Kay (@RussellKay), 23 mei 2018.
Wat is een moeilijkheidscurve?
Kort gezegd gaat een moeilijkheidscurve over hoe games de moeilijkheidsgraad per level of puzzel schalen. Je wilt bijvoorbeeld niet te veel gameplay-systemen tegelijk introduceren, maar je wilt ook niet dat de eerste tien minuten van elk level heel langzaam iets uitleggen wat de speler vijf minuten geleden al begrepen had.
Voor een game-ontwikkelaar is dit lastig, omdat we het spel constant spelen en onbewust erg goed worden. Het is moeilijk om jezelf weer in te leven in iemand die het spel voor het eerst speelt. Simpele zaken, zoals hoe lastig een sprong moet zijn of wat elke knop precies doet, worden daardoor abstract.
Er heerst vaak de perceptie dat games steeds moeilijker moeten worden naarmate de speler verder komt. Dat is echter niet per se waar; je wilt spelers vooral het gevoel geven dat ze beter worden en hen daarvoor een digitale schouderklop geven.
De 'Moeilijkheidszaag' (The Difficulty Saw)
In plaats van het spel als één geheel te zien dat steeds moeilijker wordt, groeperen we mechanieken (zoals in de eerder genoemde tweet).
Wat verstaan we onder een nieuwe mechaniek? Dit kan zijn:
- Een nieuw vijandtype.
- Een nieuwe vaardigheid van de speler.
- Een nieuw type puzzel.
- Een specifieke manier om een systeem te gebruiken (zoals de triple jump in Mario).
- Een nieuw item.
- Een bestaand systeem op een andere manier gebruiken.
- Meerdere bestaande mechanieken op een nieuwe manier combineren.
- Het toevoegen van een nieuwe regel (bijvoorbeeld een tijdslimiet).
Dit betekent niet dat er in elk level een nieuwe mechaniek moet zijn, of dat een level altijd moet beginnen op 50% gemakkelijker dan het vorige en eindigen op 150% moeilijker. Ook hoeft de toename niet elke keer hetzelfde te zijn (denk aan games die "makkelijk te leren, moeilijk te beheersen" zijn) en hoeven mechanieken niet per se aan het begin van een level geïntroduceerd te worden.
De curve gladstrijken
Het doel blijft om de curve "glad te strijken". Hoewel dit misschien tegenstrijdig klinkt bij een zaagtand-model, gaat het hierbij om het verwijderen van extreme uitschieters (onderdelen die veel te moeilijk of juist veel te makkelijk zijn) en het geven van een eigen moeilijkheidscurve aan elke specifieke mechaniek.
Waarom is deze grafiek belangrijk?
Spelers willen het gevoel hebben dat ze constant vooruitgang boeken, zowel in hun eigen vaardigheid als richting het einde van het spel. In algemene zin geldt: hoe meer tijd de speler besteedt aan het omhoog klimmen van deze curve, hoe beter de game.
Wanneer de grafiek op een bepaald punt te steil of juist te vlak is, raken mensen gefrustreerd of verveeld. Een complicatie hierbij is dat elke persoon zijn eigen unieke leercurve heeft per puzzel.
Tips om spelers op het juiste deel van de curve te houden
Wel doen:
- Voeg optionele verzamelobjecten toe.
- Bied uitdagende alternatieve routes die makkelijke delen overslaan.
- Creëer gebieden waar een betere highscore behaald kan worden.
- Introduceer achievements die spelers belonen die met een nadeel spelen.
- Pas de moeilijkheidsgraad dynamisch aan op basis van de prestaties van de speler (dit is de 'magic sauce' en zou een onderwerp op zich kunnen zijn).
- Bied meerdere eindes aan.
- Sta toe dat spelers grinden voor ervaring of oefenen als ze zich niet bekwaam genoeg voelen voor een bepaald gebied.
- Creëer meerdere paden, zodat een speler die vastloopt een andere taak kan uitvoeren tot hij de nodige vaardigheden heeft om het hoofdpad te vervolgen.
- Maak duidelijk welke uitrusting nodig is voor een puzzel (door deze direct te geven, munitie te leveren voor het juiste wapen, kleurcodering te gebruiken of onnodige uitrusting tijdelijk te verwijderen).
- Bied diverse manieren aan om iets te leren (tekst, voice-over, knopprompts, particles die de weg wijzen, omgevingsgrafieken, verlichting, help-popups, visuele signalen).
- Geef subtiele grafische hints (bijvoorbeeld een bloemetje of muntstuk in Mario op de plek waar je moet springen).
- Toon het visueel: laat een vijand aan de andere kant van een raam een nieuw wapen gebruiken, of laat de schade zien die dat wapen heeft aangericht bij andere NPC's in de kamer.
Niet doen:
- Maak het spel niet makkelijker voor mensen die het al goed doen (bijvoorbeeld door skill-points te plaatsen op plekken waar alleen experts kunnen komen).
- Straf iemand niet voor slecht presteren door toekomstige pogingen moeilijker te maken.
- Laat iemand geen gebied overslaan als hij de benodigde vaardigheid nog niet heeft geleerd.
- Gebruik het verbergen van objecten niet als hoofdmechaniek van een puzzel.
- Plaats geen lange, onskippare cutscenes of intro's in gebieden waar veel herhaalpogingen nodig zijn.
- Toon geen informatie die de speler op dat moment nog niet nodig heeft (overlaad hen niet met beschrijvingen van vaardigheden die niet op hun huidige pad liggen).
Doelgroep en markt
Elk spel heeft zijn eigen curve. Je krijgt misschien feedback van vrienden dat een taak te makkelijk of te moeilijk is, maar zij zijn mogelijk niet je doelgroep. Je kunt een casual mobiele game maken met een zeer lange, flauwe curve, of juist een bruut moeilijke game waarbij de speler 100 levens verbruikt om één sectie te passeren.
Het is onmogelijk om een game te maken die voor iedereen perfect is. Kies een doelmarkt en verzamel feedback van mensen binnen die specifieke groep.
Een generiek voorbeeld van level-opbouw
Laten we kijken naar het aanleren van wall jumping (vervang dit door je eigen mechaniek).
- De mechaniek aanleren:
- Start in een veilige zone waar de enige uitgang via een wall jump bereikbaar is.
- Minimale afleidingen.
- Het belangrijkste leerpunt moet duidelijk zichtbaar en goed verlicht zijn (eventueel met particles, pickups of een markering op de muur).
(Na dit punt weet je dat de speler kan wall jumpen).
- De kern (Main body):
- Wall jump met beheersbaar gevaar (bijvoorbeeld een vijand voor je of spikes eronder).
- Wall jump gecombineerd met een mechaniek uit een vorig level.
- Wall jump onder druk (bijvoorbeeld vijanden of lava die je achternajagen).
- De finale:
- De basistechniek wordt moeilijker gemaakt door een specifieke eigenaardigheid (zoals het ontwijken van obstakels).
- Een optioneel gebied waar de speler kan laten zien wat hij heeft geleerd om een verzamelobject te bemachtigen.
De skillcurve van je game bepalen
Naast feedback en screenshots is het raadzaam om empirische data te verzamelen.
Data-analyse:
- Death maps: Games zoals Mario Maker registreren waar spelers sterven. Als alle sterfgevallen geclusterd zijn in één klein gebied, ligt dat deel waarschijnlijk boven de gewenste moeilijkheidscurve. Het doel is niet om alle sterfgevallen te elimineren, maar om ze gelijkmatig over het level te spreiden.
- Voltooiingspercentages: Als 80% van de mensen level 4 haalt, maar slechts 20% level 5, dan is level 5 te moeilijk of te saai. Als level 11 vaker wordt voltooid dan level 10, is level 11 waarschijnlijk leuker en kun je andere levels daarop aanpassen.
Kwalitatieve feedback:
- Objectieve vragen: Vraag testers specifiek: "Wat vond je van level 8?" of "Hoe lang deed je over level 9?". Noteer dit in een spreadsheet om uitschieters te identificeren.
- Gameplay bekijken: Kijk naar streams of opnames. Hoewel mensen zich anders gedragen als ze weten dat ze bekeken worden, zie je vaak waar ze de verkeerde oplossing proberen te vinden, wat helpt bij het aanpassen van de richtingaanwijzingen.
- Reviewers en Streamers: Zij zijn ervaren gamers en hun feedback is een goede indicatie van wat de pers zal zeggen. Let wel op: als je pas bij reviewers bent, is het vaak te laat voor substantiële wijzigingen.
- Expo's: Een ideale plek om mensen voor het eerst je game te laten spelen. Je kunt ze observeren en direct vragen stellen om het onboarding-proces te perfectioneren.
Laat de speler zien dat ze beter worden
Maak het spel niet alleen moeilijker, maar laat de speler hun eigen progressie voelen. Dit kan door knipogen naar eerdere puzzels; het is voor een speler erg bevredigend om te zien hoeveel makkelijker een oude uitdaging nu aanvoelt.
Een effectieve techniek is het verbergen van een shortcut die alleen toegankelijk is via kennis. In Portal 2 zijn er levels waar het begin- en eindpunt vlak bij elkaar liggen. Met slimme portal-plaatsing kun je het hele level overslaan, maar dit vereist technieken die je pas later in het spel leert. De ontwikkelaars wisten hiervan, maar stelden dat als iemand in staat is om zo naar het einde te 'glitchen', het level hem niets meer te leren heeft.
Wisselen tussen adrenaline-pieken en dalen
Films zijn erg goed in het wisselen tussen periodes van hoge actie en rust. Als mensen constant dezelfde stimuli krijgen, treden ze een verzadigingspunt tegen en blokkeren ze de input. Het contrast tussen actie en rust versterkt de ervaring.
Pas deze techniek ook toe op game-design: niet alleen voor emotionele impact, maar ook voor moeilijkheidsgraad, entertainment en het aanleren van vaardigheden.
***
Hoewel dit artikel zich richt op level-moeilijkheid, is dit concept breed toepasbaar. In mijn eigen project Undercrewed gebruik ik deze principes voor de snelheid waarmee spelers nieuwe kamers voor hun ruimteschip ontgrendelen. Hetzelfde geldt voor het introduceren van mechanieken, vaardigheden, vijanden en spelmodi.
Moeilijkheidsgraden in games ontwerpen
Mijn denkproces begon bij deze tweet van Russell Kay:
"We hebben ons hierover hoofd gebroken toen we Lemmings maakten. We deden er lang over om de moeilijkheidscurve glad te strijken en we brachten de stapsgewijze veranderingen aan in verschillende secties, zoals hoofdstukken in plaats van moeilijkheidsinstellingen. Hierdoor kon de gebruiker zelf kiezen en werden de verwachtingen beheerst." — Russell Kay (@RussellKay), 23 mei 2018.
Wat is een moeilijkheidscurve?
Kort gezegd gaat een moeilijkheidscurve over hoe games de moeilijkheidsgraad per level of puzzel schalen. Je wilt bijvoorbeeld niet te veel gameplay-systemen tegelijk introduceren, maar je wilt ook niet dat de eerste tien minuten van elk level heel langzaam iets uitleggen wat de speler vijf minuten geleden al begrepen had.
Voor een game-ontwikkelaar is dit lastig, omdat we het spel constant spelen en onbewust erg goed worden. Het is moeilijk om jezelf weer in te leven in iemand die het spel voor het eerst speelt. Simpele zaken, zoals hoe lastig een sprong moet zijn of wat elke knop precies doet, worden daardoor abstract.
Er heerst vaak de perceptie dat games steeds moeilijker moeten worden naarmate de speler verder komt. Dat is echter niet per se waar; je wilt spelers vooral het gevoel geven dat ze beter worden en hen daarvoor een digitale schouderklop geven.
De 'Moeilijkheidszaag' (The Difficulty Saw)
In plaats van het spel als één geheel te zien dat steeds moeilijker wordt, groeperen we mechanieken (zoals in de eerder genoemde tweet).
Wat verstaan we onder een nieuwe mechaniek? Dit kan zijn:
- Een nieuw vijandtype.
- Een nieuwe vaardigheid van de speler.
- Een nieuw type puzzel.
- Een specifieke manier om een systeem te gebruiken (zoals de triple jump in Mario).
- Een nieuw item.
- Een bestaand systeem op een andere manier gebruiken.
- Meerdere bestaande mechanieken op een nieuwe manier combineren.
- Het toevoegen van een nieuwe regel (bijvoorbeeld een tijdslimiet).
Dit betekent niet dat er in elk level een nieuwe mechaniek moet zijn, of dat een level altijd moet beginnen op 50% gemakkelijker dan het vorige en eindigen op 150% moeilijker. Ook hoeft de toename niet elke keer hetzelfde te zijn (denk aan games die "makkelijk te leren, moeilijk te beheersen" zijn) en hoeven mechanieken niet per se aan het begin van een level geïntroduceerd te worden.
De curve gladstrijken
Het doel blijft om de curve "glad te strijken". Hoewel dit misschien tegenstrijdig klinkt bij een zaagtand-model, gaat het hierbij om het verwijderen van extreme uitschieters (onderdelen die veel te moeilijk of juist veel te makkelijk zijn) en het geven van een eigen moeilijkheidscurve aan elke specifieke mechaniek.
Waarom is deze grafiek belangrijk?
Spelers willen het gevoel hebben dat ze constant vooruitgang boeken, zowel in hun eigen vaardigheid als richting het einde van het spel. In algemene zin geldt: hoe meer tijd de speler besteedt aan het omhoog klimmen van deze curve, hoe beter de game.
Wanneer de grafiek op een bepaald punt te steil of juist te vlak is, raken mensen gefrustreerd of verveeld. Een complicatie hierbij is dat elke persoon zijn eigen unieke leercurve heeft per puzzel.
Tips om spelers op het juiste deel van de curve te houden
Wel doen:
- Voeg optionele verzamelobjecten toe.
- Bied uitdagende alternatieve routes die makkelijke delen overslaan.
- Creëer gebieden waar een betere highscore behaald kan worden.
- Introduceer achievements die spelers belonen die met een nadeel spelen.
- Pas de moeilijkheidsgraad dynamisch aan op basis van de prestaties van de speler (dit is de 'magic sauce' en zou een onderwerp op zich kunnen zijn).
- Bied meerdere eindes aan.
- Sta toe dat spelers grinden voor ervaring of oefenen als ze zich niet bekwaam genoeg voelen voor een bepaald gebied.
- Creëer meerdere paden, zodat een speler die vastloopt een andere taak kan uitvoeren tot hij de nodige vaardigheden heeft om het hoofdpad te vervolgen.
- Maak duidelijk welke uitrusting nodig is voor een puzzel (door deze direct te geven, munitie te leveren voor het juiste wapen, kleurcodering te gebruiken of onnodige uitrusting tijdelijk te verwijderen).
- Bied diverse manieren aan om iets te leren (tekst, voice-over, knopprompts, particles die de weg wijzen, omgevingsgrafieken, verlichting, help-popups, visuele signalen).
- Geef subtiele grafische hints (bijvoorbeeld een bloemetje of muntstuk in Mario op de plek waar je moet springen).
- Toon het visueel: laat een vijand aan de andere kant van een raam een nieuw wapen gebruiken, of laat de schade zien die dat wapen heeft aangericht bij andere NPC's in de kamer.
Niet doen:
- Maak het spel niet makkelijker voor mensen die het al goed doen (bijvoorbeeld door skill-points te plaatsen op plekken waar alleen experts kunnen komen).
- Straf iemand niet voor slecht presteren door toekomstige pogingen moeilijker te maken.
- Laat iemand geen gebied overslaan als hij de benodigde vaardigheid nog niet heeft geleerd.
- Gebruik het verbergen van objecten niet als hoofdmechaniek van een puzzel.
- Plaats geen lange, onskippare cutscenes of intro's in gebieden waar veel herhaalpogingen nodig zijn.
- Toon geen informatie die de speler op dat moment nog niet nodig heeft (overlaad hen niet met beschrijvingen van vaardigheden die niet op hun huidige pad liggen).
Doelgroep en markt
Elk spel heeft zijn eigen curve. Je krijgt misschien feedback van vrienden dat een taak te makkelijk of te moeilijk is, maar zij zijn mogelijk niet je doelgroep. Je kunt een casual mobiele game maken met een zeer lange, flauwe curve, of juist een bruut moeilijke game waarbij de speler 100 levens verbruikt om één sectie te passeren.
Het is onmogelijk om een game te maken die voor iedereen perfect is. Kies een doelmarkt en verzamel feedback van mensen binnen die specifieke groep.
Een generiek voorbeeld van level-opbouw
Laten we kijken naar het aanleren van wall jumping (vervang dit door je eigen mechaniek).
- De mechaniek aanleren:
- Start in een veilige zone waar de enige uitgang via een wall jump bereikbaar is.
- Minimale afleidingen.
- Het belangrijkste leerpunt moet duidelijk zichtbaar en goed verlicht zijn (eventueel met particles, pickups of een markering op de muur).
(Na dit punt weet je dat de speler kan wall jumpen).
- De kern (Main body):
- Wall jump met beheersbaar gevaar (bijvoorbeeld een vijand voor je of spikes eronder).
- Wall jump gecombineerd met een mechaniek uit een vorig level.
- Wall jump onder druk (bijvoorbeeld vijanden of lava die je achternajagen).
- De finale:
- De basistechniek wordt moeilijker gemaakt door een specifieke eigenaardigheid (zoals het ontwijken van obstakels).
- Een optioneel gebied waar de speler kan laten zien wat hij heeft geleerd om een verzamelobject te bemachtigen.
De skillcurve van je game bepalen
Naast feedback en screenshots is het raadzaam om empirische data te verzamelen.
Data-analyse:
- Death maps: Games zoals Mario Maker registreren waar spelers sterven. Als alle sterfgevallen geclusterd zijn in één klein gebied, ligt dat deel waarschijnlijk boven de gewenste moeilijkheidscurve. Het doel is niet om alle sterfgevallen te elimineren, maar om ze gelijkmatig over het level te spreiden.
- Voltooiingspercentages: Als 80% van de mensen level 4 haalt, maar slechts 20% level 5, dan is level 5 te moeilijk of te saai. Als level 11 vaker wordt voltooid dan level 10, is level 11 waarschijnlijk leuker en kun je andere levels daarop aanpassen.
Kwalitatieve feedback:
- Objectieve vragen: Vraag testers specifiek: "Wat vond je van level 8?" of "Hoe lang deed je over level 9?". Noteer dit in een spreadsheet om uitschieters te identificeren.
- Gameplay bekijken: Kijk naar streams of opnames. Hoewel mensen zich anders gedragen als ze weten dat ze bekeken worden, zie je vaak waar ze de verkeerde oplossing proberen te vinden, wat helpt bij het aanpassen van de richtingaanwijzingen.
- Reviewers en Streamers: Zij zijn ervaren gamers en hun feedback is een goede indicatie van wat de pers zal zeggen. Let wel op: als je pas bij reviewers bent, is het vaak te laat voor substantiële wijzigingen.
- Expo's: Een ideale plek om mensen voor het eerst je game te laten spelen. Je kunt ze observeren en direct vragen stellen om het onboarding-proces te perfectioneren.
Laat de speler zien dat ze beter worden
Maak het spel niet alleen moeilijker, maar laat de speler hun eigen progressie voelen. Dit kan door knipogen naar eerdere puzzels; het is voor een speler erg bevredigend om te zien hoeveel makkelijker een oude uitdaging nu aanvoelt.
Een effectieve techniek is het verbergen van een shortcut die alleen toegankelijk is via kennis. In Portal 2 zijn er levels waar het begin- en eindpunt vlak bij elkaar liggen. Met slimme portal-plaatsing kun je het hele level overslaan, maar dit vereist technieken die je pas later in het spel leert. De ontwikkelaars wisten hiervan, maar stelden dat als iemand in staat is om zo naar het einde te 'glitchen', het level hem niets meer te leren heeft.
Wisselen tussen adrenaline-pieken en dalen
Films zijn erg goed in het wisselen tussen periodes van hoge actie en rust. Als mensen constant dezelfde stimuli krijgen, treden ze een verzadigingspunt tegen en blokkeren ze de input. Het contrast tussen actie en rust versterkt de ervaring.
Pas deze techniek ook toe op game-design: niet alleen voor emotionele impact, maar ook voor moeilijkheidsgraad, entertainment en het aanleren van vaardigheden.
***
Hoewel dit artikel zich richt op level-moeilijkheid, is dit concept breed toepasbaar. In mijn eigen project Undercrewed gebruik ik deze principes voor de snelheid waarmee spelers nieuwe kamers voor hun ruimteschip ontgrendelen. Hetzelfde geldt voor het introduceren van mechanieken, vaardigheden, vijanden en spelmodi.