Agents

Ontwikkelaar lost technische problemen op bij taalmodel voor rollenspel

21 oktober 2026 · 3 min leestijd

Ook gepubliceerd in 한국어, ไทย, Español

person holding black corded computer keyboard
Luis Villafranca / Unsplash

Een softwareontwikkelaar heeft een browsergebaseerd tekstrollenspel gecreëerd waarin een taalmodel fungeert als spelleider. Het systeem verwerkt acties van spelers, genereert verhalende reacties en beheert spelmechanica zoals gezondheid, geld, kenmerken, inventaris en twintigzijdige dobbelsteenworpen. De ontwikkelaar ondervond dat de integratie van probabilistische modellen met deterministische spelregels complexe technische uitdagingen opleverde die verder gingen dan eenvoudige instructies voor het genereren van tekst.

De eerste benadering, waarbij het model het volledige personageblad ontving en werd gevraagd de status bij te werken, faalde snel. Het taalmodel vergat voorwerpen, deelde onrealistische bonussen uit en verwarde financiële waarden, waardoor de spelstaat na enkele beurten onbruikbaar werd. De oplossing ligt in een strikte scheiding van taken: het model levert uitsluitend een gestructureerd antwoord in JSON-formaat dat naast het verhaal alleen specifieke wijzigingen bevat. Een aparte software-engine past deze wijzigingen toe en bewaakt de grenswaarden. Deze engine zorgt ervoor dat pantser de schade maximaal halveert, dat kenmerken niet oneindig groeien en dat voorwerpen een plafond voor bonussen hebben. Het model bedenkt de narratieve gebeurtenissen, terwijl de code de numerieke consequenties berekent. Belangrijke feiten worden opgeslagen in een beknopte kroniek die aan toekomstige prompts wordt toegevoegd, zodat de context beheersbaar blijft zonder de volledige geschiedenis te laden.

Om vertragingen en kosten te reduceren, werd het proces van twee verzoeken per beurt teruggebracht naar één enkel verzoek. Oorspronkelijk bepaalde het model eerst of een controle nodig was, waarna de speler dobbelde en een tweede verzoek het verhaal genereerde. De nieuwe methode laat de server de twintigzijdige dobbelsteen werpen voordat het verzoek naar het model wordt verzonden. Het resultaat wordt in de prompt opgenomen met instructies om bij een benodigde controle eerst de uitkomst te specificeren en vervolgens het verhaal daarop af te stemmen. Als geen controle nodig is, wordt de dobbelsteen genegeerd. Het antwoord wordt door de server bewaard totdat de speler op de knop drukt. Een bijkomend probleem doet zich voor wanneer het model ten onrechte succes meldt bij een lage worp. Omdat het verhaal al is geschreven, past de server in zulke gevallen de moeilijkheidsgraad achteraf aan zodat deze overeenkomt met de tekst, waarbij kritieke waarden van één en twintig onaangeroerd blijven.

Tijdens het testen werd een fout ontdekt waarbij de maximale gezondheid van een personage onbedoeld verdubbelde bij elke toename. De oorzaak lag in een onduidelijke instructie in de prompt over wijzigingen versus eindwaarden voor gezondheids punten. Het model interpreteerde een totaalwaarde als een toe te voegen bedrag, wat leidde tot exponentiële groei. De ontwikkelaar loste dit op door in de prompt expliciet te stellen dat maximale gezondheid zelden en met maximaal vijfentwintig procent mag wijzigen, terwijl genezing alleen de huidige waarde beïnvloedt. Daarnaast controleert de engine of een ontvangen waarde binnen de toegestane stapgrootte valt. Waarden die te groot zijn worden behandeld als eindtotalen en omgezet in het juiste verschil. Wanneer het maximum stijgt, wordt de huidige gezondheid automatisch met hetzelfde bedrag verhoogd om visuele consistentie voor de speler te garanderen.

De implementatie van verschillende stijlen voor de spelleider, variërend van klassiek tot documentair, vereiste ook aanpassingen in de promptstructuur. Initieel negeerde het model de stijl instructies omdat deze verloren gingen in lange blokken met regels en voorbeelden. Door de stijlinstructie naar het einde van de systeemprompt te verplaatsen en deze direct voor de speleractie te herhalen met een korte zin, verbeterde de naleving aanzienlijk. Elke stijl kreeg ook een specifieke toegewezen lengte voor het antwoord om de toon adequaat weer te geven. Deze kleine aanpassing in de prompt zorgde voor een merkbaar verschil in de kwaliteit van de interactie zonder extra rekenkracht te vereisen.