Hoe je een scène met vrije vragen in een game op koers houdt zonder de nieuwsgierigheid van spelers te beperken
Voor een ontwerper van indiegames met een verhaal die één scène bouwt waarin spelers een NPC alles kunnen vragen, blijft het verhaal samenhangend wanneer vragen en verhaalvoortgang afzonderlijk worden afgehandeld. Laat de speler vragen vrij formuleren, maar bepaal vooraf wat de wereld weet, wat deze NPC weet en welke exacte spelstatussen de scène mag veranderen. Koppel uiteenlopende vragen vervolgens aan een kleine set vooraf geschreven uitkomsten: antwoord met bekende feiten, stel uit wat de NPC niet kan beantwoorden of leid het gesprek terug naar een bekende route. De speler kan het gesprek sturen zonder per ongeluk een aanwijzing te verzinnen of een ongeplande wending in het plot te veroorzaken.
Begin met de feiten en status van de scène
Stel je een rustige fictieve scène voor bij een vuurtoren. De vuurtorenwachter, Mara, wacht op een koerier met een koperen sleutel. Het doel van de scène is om de speler te laten ontdekken waarom de vuurtoren donker is en te laten beslissen of die Mara wil helpen de haven een signaal te geven. Dit is een ontwerpvoorbeeld, geen verslag van een uitgebracht spel.
Maak voordat je dialogen schrijft een beknopt scènesheet met drie afzonderlijke lijsten:
Feiten over de wereld: De lamp is uit omdat de lens voor reparatie is weggehaald. De sleutel is bij de koerier. De haven wacht op een signaal.
Wat Mara weet: Ze weet dat de lens weg is en dat de koerier vóór zonsondergang zou komen. Ze weet niet waar de koerier nu is of waarom de speler is gekomen.
Toegestane toestandsveranderingen: lens_explained kan waar worden; player_offered_help kan waar worden; en signal_route_open kan alleen waar worden nadat de speler hulp aanbiedt en Mara akkoord gaat. Geen enkele vraag op zichzelf verstuurt het signaal, vindt de sleutel of verandert de locatie van de koerier.
Dit onderscheid is belangrijk omdat een aannemelijk klinkend antwoord ongemerkt een nieuw feit over de wereld kan worden. Als Mara improviseert dat iemand de koerier bij de noordelijke brug heeft gezien, kan de speler dat redelijkerwijs als een aanwijzing beschouwen. Tenzij de brug deel uitmaakt van de geschreven scène, heeft het antwoord inhoud gecreëerd en mogelijk een nieuwe opdracht opgeleverd. Het scènesheet geeft schrijvers en ontwikkelaars een gezamenlijk referentiepunt voor wat er gezegd kan worden en wat er kan gebeuren.
Laat vragen variëren en houd uitkomsten begrensd
In natuurlijke taal kun je hetzelfde op veel manieren vragen. Een speler kan vragen: “Waarom is het licht uit?”, “Wat is er met het baken gebeurd?” of “Kun je schepen nog steeds de weg wijzen?” Al die verschillende formuleringen kunnen uitkomen bij de vastgelegde uitleg over de lens. Maar niet elke vraag hoeft een rechtstreeks antwoord te krijgen. Deel vragen in op basis van hun relatie tot de feiten en het doel van de scène.
Vraag buiten het script: “Wie heeft de lens van de vuurtoren gestolen?” — Classificatie: Beantwoorden — Voorbeeldreactie en effect: “Niemand heeft hem gestolen. Hij is weg voor reparatie.” Stel lens_explained = true in; noem geen dader.
Vraag buiten het script: “Waar is de koerier nu?” — Classificatie: Uitstellen — Voorbeeldreactie en effect: “Dat weet ik niet. Die zou vóór zonsondergang komen.” Geen toestandsverandering; de NPC krijgt niet ineens kennis alleen omdat de speler ernaar vraagt.
Vraag buiten het script: “Kunnen we de lamp gebruiken om de haven een signaal te geven?” — Classificatie: Terugleiden naar een bekende route — Voorbeeldreactie en effect: Mara zegt dat de lens nog steeds weg is en biedt vervolgens de bekende keuze aan om de haven op een andere manier een signaal te geven. Open die route alleen als de speler ermee instemt en Mara akkoord gaat.
Deze labels beschrijven ontwerpuitkomsten, geen rigide reactiesjablonen. Een antwoord kan de formulering van de speler erkennen voordat het een bekend feit noemt. Bij uitstel kan een nuttige vervolgstap worden aangeboden, zoals nagaan of de koerier aankomt. Terugleiden naar een route betekent de vraag weer verbinden met de vooraf geschreven keuze van de scène; dat hoeft het gesprek niet af te kappen of dezelfde zin te herhalen. De kern is dat de formulering van de reactie flexibel kan zijn, terwijl de feitelijke beweringen en gevolgen voor de spelstatus vastliggen.
Bepaal de bedoeling en de spelstatus voordat je de zin formuleert
Lees bij elke binnenkomende vraag eerst de vastgelegde status van de scène. Bepaal of de vraag gaat over een bekend feit, een feit dat de NPC niet kan weten, of een verzoek om een toegestane handeling uit te voeren. Een vraag kan meer dan één categorie raken; een antwoord over de lamp en een aanbod om te helpen kunnen afzonderlijke uitkomsten zijn. Kies daarna een reactiepad en formuleer een zin binnen dat pad. De gegenereerde formulering geeft de beslissing weer; ze neemt de beslissing niet.
Deze volgorde is vooral belangrijk wanneer de speler naar een toekomstige gebeurtenis vraagt. “Is de koerier aangekomen?” krijgt een ander antwoord wanneer de koerier is aangekomen dan wanneer de scène de koerier nog als vermist registreert. Noch een zelfverzekerde toon, noch de aanname van de speler mag die status omgooien. Als de benodigde status niet beschikbaar is, moet de scène tijdens de ontwikkeling duidelijk falen en geen canonieke bewering doen. Ga er niet stilzwijgend van uit dat de koerier is aangekomen en verzin geen waarneming bij een brug om het gesprek afgerond te laten klinken.
Houd de geaccepteerde gevolgen voor de spelstatus klein en expliciet. Zo kan een hulpaanbod een bekende overgang naar player_offered_help aanvragen. De game kan controleren of de speler daarvoor heeft gekozen en of Mara akkoord is gegaan voordat signal_route_open verandert. Een vraag waarin alleen het woord “helpen” voorkomt, mag niet als aanbod tellen. In een prototype kunnen de reactie en de vastgelegde overgang naast elkaar worden gelogd om ze te beoordelen.
Voorkom dat de scène per ongeluk te vroeg antwoorden onthult
De speler kan rechtstreeks naar het uiteindelijke antwoord vragen voordat die heeft ontdekt waarop het berust. Bepaal welke informatie Mara op het huidige punt in het verhaal kan delen. Een waarheidsgetrouwe reactie als “Ik heb de koerier niet gezien” kan zowel de kennis van het personage als de mogelijkheid van de speler om verder op onderzoek uit te gaan intact laten. De reactie mag niet doen alsof er een aanwijzing is gevonden en mag een al vastgesteld feit niet verbergen alleen om de scène te rekken.
In Ubisofts verslag van het NEO NPC-prototype beschrijft de studio personagegeschiedenissen die door schrijvers zijn vormgegeven en beperkingen voor scenario's rond spontane invoer van spelers. Dit is een verslag uit eerste hand van een experimenteel prototype, geen onderbouwde bewering dat een bepaald ontwerp van grenzen succesvol is in uitgebrachte games. De bruikbare les voor deze scène is om de kennis en rol van het personage vast te leggen voordat je een model vraagt een zin te improviseren.
Jamin Smiths verslag over Acolyte beschrijft de voordelen van vragen in natuurlijke taal en een pacingprobleem waarbij ervaren spelers informatie te vroeg ontdekten. Dit is de reflectie van één ontwerper op één game. Voor het vuurtorenvoorbeeld is een nuttige evaluatievraag of vragen over de koerier een later plotfeit kunnen onthullen voordat de game dat heeft vastgesteld. Zo ja, pas dan de toegestane feiten aan voor die spelstatus, niet alleen de formulering van het antwoord.
Maak terugleidingen buiten het script nuttig in plaats van herhalend
Een onbekende vraag hoeft niet telkens dezelfde zin “Daar kan ik geen antwoord op geven” op te leveren. Mara kan een geldig deel van de vraag erkennen, een grens aangeven en naar één bekende keuze verwijzen. Als iemand vraagt waar de koerier is gebleven, kan ze vertellen wat ze het laatst weet en aanbieden de haven een signaal te laten geven. Als iemand vraagt of de lamp kan worden gerepareerd, kan ze de ontbrekende lens toelichten en het bekende alternatief beschrijven. Het antwoord blijft binnen de scène en gaat toch in op wat de speler werkelijk wil weten.
Een terugleiding moet een route zijn naar iets wat de speler kan doen, geen eis om een exacte formulering te gebruiken. Bied dezelfde vooraf geschreven handeling aan via meerdere natuurlijke vragen en via een zichtbare interactie buiten de chat. Zo kan een speler die stopt met praten toch verdergaan en kan de ontwerper testen of vrijuit vragen stellen het personage meer diepgang geeft in plaats van een verborgen wachtwoordpuzzel te worden. Optionele sfeerdetails kunnen sterk variëren; een noodzakelijke aanwijzing moet een vaste, inspecteerbare plek in de wereld hebben.
Test vrije vragen aan de hand van het vastgelegde verhaal
Geef een tester de scène en een eenvoudig doel: ontdekken waarom het licht uit is en beslissen of die wil helpen. Vertel niet welke vragen die moet stellen. Observeer welke beweringen de tester als aanwijzingen beschouwt, of een antwoord de volgende actie beïnvloedt en of de tester de bedoelde keuze kan bereiken zonder een specifieke zin te reproduceren. Vergelijk het gesprek daarna met het scènesheet en de daadwerkelijke toestandsveranderingen.
Voeg een negatieve testronde toe met vragen die uitnodigen tot verzinsels: “Welke brug is de koerier overgestoken?”, “Wie heeft de lens gestolen?” en “Heb ik het signaal al verstuurd?” In de beginstatus beweert een geslaagde reactie niet dat iemand de koerier bij een brug heeft gezien, dat er sprake was van diefstal of dat het signaal is verstuurd. De reactie kan het bekende reparatiefeit noemen, aangeven dat de locatie van de koerier onbekend is of de speler naar de geaccepteerde signaalkeuze leiden. Controleer zowel de tekst als de opgeslagen vlaggen in het logboek: signal_route_open moet onwaar blijven tot het aanbod is geaccepteerd, terwijl signal_sent onwaar moet blijven tot de afzonderlijke, vooraf geschreven handeling plaatsvindt.
Als een gegenereerde zin een niet-ondersteunde aanwijzing introduceert, onderzoek dan of het scènesheet een feit wegliet, de NPC te brede context kreeg of de reactie een expliciete grens negeerde. Als spelers vrijuit vragen kunnen stellen maar de volgende betekenisvolle handeling niet kunnen vinden, verbeter dan de route terug naar de vooraf geschreven keuze. Een samenhangende scène met vrije vragen is een scène waarin de formulering van de speler kan variëren, terwijl feiten over de wereld, kennis van personages en echte gevolgen begrijpelijk blijven.
