Spel- en leerdoelen
Het spelsdoel
Elk team (een keten) probeert de totale kosten van de keten zo laag mogelijk te houden: voorraadkosten, achterstandskosten, de boete voor stilstand bij de OEM en de capex van de foundry. De ranglijst in het dashboard sorteert op die ketenkosten. Daarnaast toont hij de leverbetrouwbaarheid, het aantal weken stilstand en de bullwhip.
Spelers weten niet hoeveel weken het spel duurt. Zo voorkom je dat ze aan het eind hun voorraad laten leeglopen.
Leerdoelen
Na de workshop kunnen spelers:
- uitleggen hoe de schakels van een keten van elkaar afhangen. Een beslissing in één schakel heeft met vertraging effect op de andere schakels.
- het bullwhip-effect herkennen en verklaren. Ze kunnen het effect in de data aanwijzen
(variantie van bestellingen neemt toe stroomopwaarts) en de oorzaken benoemen:
- vertragingen in informatie en goederen;
- lokale informatie: alleen de eigen cijfers;
- de pijplijn onderschatten: vergeten wat onderweg is (Sterman, 1989);
- overreageren op tekorten en vraagsignalen, en bij een gedeelde foundry shortage gaming: meer bestellen om een groter deel van de toewijzing te krijgen (Lee e.a., 1997).
- de bijzonderheden van de halfgeleiderketen benoemen en hun effect beschrijven: lange productiedoorlooptijd, beperkte capaciteit met trage en dure uitbreiding, onzekere yield, toewijzing bij tekort, en verstoringen (brand, exportrestricties, transport).
- reflecteren op hun eigen beslisgedrag en maatregelen voorstellen die de keten stabieler maken: informatie delen, kortere doorlooptijden, de pijplijn meetellen, afspraken over bestellingen en capaciteit.
Hoe het spel de leerdoelen ondersteunt
| Leerdoel | In het spel | In de nabespreking |
|---|---|---|
| 1. Afhankelijkheid | weekverhaal met één verband in de keten; vertragingen uit sim.orderDelay en sim.transportDelay | tijdlijn van één keten (Debrief, terugspelen) |
| 2. Bullwhip | standaard classic-vraag; infoRegime op local | bestellingen per rol tegenover de vraag; bullwhip in het dashboard |
| 3. Chipketen | sim.foundryLeadTime, sim.capacity, yield, gebeurtenissen, gedeelde foundry | rol van de foundry; wat gebeurde er na een gebeurtenis? |
| 4. Reflectie | reflectievragen aan het eind; tips (scaffolding) | gespreksvragen in het Debrief-tabblad |
Tip
Wil je één oorzaak laten zien, verander dan één instelling tussen twee teams of twee sessies. Speel bijvoorbeeld met
infoRegimeoplocaltegenovershared-demand: helpt het delen van de klantvraag? Of zetsim.modeopshared-foundryom toewijzing en shortage gaming te laten zien.
Voor de workshop
- Inloggen: ga naar
/admin. De begeleider die de server beheert geeft je een account via Begeleiders; alleen accounts met Mag begeleiders toevoegen kunnen nieuwe aanmaken. Wijzig daar ook je eigen wachtwoord. - Apparaten: spelers hebben een telefoon of laptop met internet nodig. Eén speler per rol; lege rollen speelt een bot.
- Tijd: reken op 10 minuten uitleg en oefenrondes, 30–45 minuten voor 30–40 weken met een timer van 60–90 seconden, en 20–30 minuten nabespreking.
- Presets: bovenaan het formulier kun je beginnen met een ingebouwd scenario (Klassiek, Chiptekort 2021, Geopolitiek, Seizoensvraag) of met een eigen opgeslagen preset. Een preset die je deelt, kunnen andere begeleiders ook gebruiken.
Tip
Maak vooraf een sessie zonder spelers. De bots spelen hem in een paar seconden uit, zodat je het dashboard, de debrief en de export alvast kunt bekijken.
Een sessie instellen
Kies Nieuwe sessie. Geef de sessie een naam en eventueel een seed (seed): met dezelfde
seed en dezelfde beslissingen speel je precies hetzelfde spel opnieuw. Leeg laten geeft een
willekeurige seed.
Spel
- Modus (
sim.mode):singlegeeft elk team een eigen keten met een eigen foundry.shared-foundrylaat alle teams bij één foundry bestellen, zodat ze om capaciteit concurreren. - Aantal teams (
teams): 1 tot 30 ketens die tegelijk spelen. - Lengte van de keten (
sim.chainLength): 3 (OEM, OSAT, foundry), 4 (plus distributeur) of 5 (plus Tier-1). - Aantal rondes (
sim.totalRounds): standaard 40. Spelers zien dit niet, zodat ze aan het eind niet anders gaan spelen. - Rondetimer (
timerSeconds): seconden per week; 0 = geen timer (de ronde sluit als iedereen beslist heeft of als jij hem sluit). Standaard 90. - Informatie voor spelers (
infoRegime):local: alleen de eigen cijfers (de standaard, en de klassieke opzet van het spel);shared-demand: ook de vraag van eindklanten;full: ook voorraad, achterstand en bestellingen van de hele eigen keten.
Vertragingen
Alle vertragingen zijn in weken.
- Vertraging orderinformatie (
sim.orderDelay): hoe lang een bestelling onderweg is naar de leverancier. Standaard 1. - Transportvertraging (
sim.transportDelay): hoe lang een levering onderweg is. Standaard 2. - Verwerkingstijd OSAT (
sim.osatProcessingTime): assemblage en test. Standaard 2. - Productiedoorlooptijd foundry (
sim.foundryLeadTime): van wafer start tot klare chips. Standaard 8.
Foundry
- Allocatie (
sim.allocation, alleen bij een gedeelde foundry): wie krijgt wat als er te weinig is. Achterstand wordt altijd eerst geleverd.pro-rata: in verhouding tot de bestellingen;fifo: oudste bestellingen eerst;manual: de foundry-speler verdeelt zelf met schuifjes per team.
- Capaciteit (
sim.capacity): maximum aantal wafer starts per week. Standaard 12. Bij een gedeelde foundry geldt dit voor alle teams samen. - Vertraging nieuwe capaciteit (
sim.capacityExpansionDelay): weken tot bijgekochte capaciteit bruikbaar is. Standaard 10. - Capex per capaciteitseenheid (
sim.capexPerUnit): kosten per eenheid nieuwe capaciteit. Standaard 50. - Max. uitbreiding per week (
sim.maxExpansionPerRound): standaard 20. - Yield minimum en maximum (
sim.yieldMin,sim.yieldMax): de yield van elke batch ligt willekeurig (maar vast per seed) tussen deze grenzen. Standaard 85–95%.
Voorraad en kosten
- Startvoorraad per rol (
sim.initialInventory): standaard 12. - Pijplijnvulling per slot (
sim.initialPipeline): bij de start zit er in elke week van de pijplijn al zoveel onderweg, zodat de keten in evenwicht begint. Standaard 4. - Maximale bestelling per week (
sim.maxOrder): standaard 60. - Voorraadkosten (
sim.costs.holding): per eenheid per week. Standaard 0,5. - Achterstandskosten (
sim.costs.backlog): per eenheid per week. Standaard 1. - Boete lijnstilstand OEM (
sim.costs.lineStop): per week dat de OEM niet alles kan leveren. Standaard 5.
Vraag van eindklanten
Het vraagscenario (sim.demand) bepaalt hoeveel auto's klanten per week kopen. Een grafiek
laat het verloop zien.
classic: de klassieke opzet. Een vast niveau dat in één week omhoog springt (standaard van 4 naar 8 in week 5).covid: een dip (de vraag zakt in), daarna een sterke opleving en een nieuw normaal.seasonal: een golf rond een basisniveau, met een amplitude en een periode.custom: je eigen reeks, ingetypt of als CSV geüpload. Is de reeks korter dan het spel, dan wordt de laatste waarde herhaald.
Willekeurige ruis (sim.demandNoise) voegt ± een aantal toe aan elke week. De ruis hangt aan de
seed en is dus voor alle teams gelijk.
Geplande gebeurtenissen
Met Gebeurtenis toevoegen (sim.events) plan je verstoringen vooraf: soort, beginweek, duur
en eventueel een team. Tijdens het spel kun je ze ook live toevoegen (zie Tijdens het spel).
fab-fire: brand in de fab. De capaciteit van de foundry is een tijd nul.export-restriction: zendingen tussen twee rollen (standaard foundry → OSAT) worden tegengehouden; ze blijven in de achterstand staan.yield-crash: wafers die in deze periode starten, krijgen een vaste lage yield (standaard 50%).transport-delay: zendingen die in deze periode vertrekken, doen er extra weken over.
Spelers zien een actieve gebeurtenis als waarschuwing, en het weekverhaal vertelt erover. In oefenrondes gebeuren nooit gebeurtenissen.
Spelers en bots
- Als een speler niet op tijd beslist (
fallback):repeatherhaalt de vorige bestelling;botlaat een bot beslissen. - Botstrategie voor lege rollen (
defaultBot):naive: bestelt wat er binnenkwam;anchor-adjust: het bekende gedragsmodel van Sterman (1989), dat de voorraad en de pijplijn maar half meeneemt, zoals mensen vaak doen;base-stock: een nette voorraadregel die de pijplijn volledig meetelt.
- Spelers zonder verbinding vervangen (
autoBotAfterSeconds): na zoveel seconden offline neemt een bot de rol over; de speler krijgt de rol terug zodra hij weer verbonden is. 0 = nooit. - Chat tussen spelers (
chat):none(geen),team(binnen het eigen team) ofopen(iedereen). Jij kunt altijd mededelingen sturen.
Instructie en verhaal
-
Oefenrondes (
practice.rounds): 0 tot 5, standaard 2. Ze spelen in een aparte oefenwereld met dezelfde instellingen maar zonder gebeurtenissen, en tellen nergens mee. Een sessie met alleen bots slaat ze over. -
Na de oefenrondes wachten op mijn startsignaal (
practice.waitForFacilitator): standaard aan. Je kunt dan kort nabespreken voordat je het echte spel start. Staat het uit, dan begint het echte spel meteen. -
Hulp voor spelers (
scaffolding):full: een korte tip de eerste keer dat iets gebeurt (welkom met de doorlooptijd, de pijplijn, een eerste achterstand, een verstoring, een eerste heel grote bestelling, een grote voorraad), plus uitleg bij de begrippen;basic: alleen uitleg bij de begrippen, geen tips over wat je zou kunnen doen;off: geen hulp.
Het niveau bepaalt ook de rolkaarten die spelers voor het spel lezen. Elk niveau laat zien wie ze zijn, wat ze beslissen en waar ze op spelen: de score is wat de hele keten kost, wat een chipset op voorraad en een chipset tekort kosten, en wat ze kunnen zien.
basicvoegt een kaart toe die elk cijfer op hun scherm uitlegt;fullook "Zo stuur je": vier vragen voor elke week (wat wordt er besteld, hoe sta ik ervoor, wat komt er nog, hoeveel bestel ik) en de bekende valkuil van een achterstand wegbestellen.Welke tips een speler zag, staat bij elke beslissing in de data. Zo kun je in onderzoek niveaus vergelijken.
-
Weekverhaal (
narrative.mode):ai: een AI-verteller (Claude) schrijft elke week een kort verhaal per speler;template: verhalen uit vaste zinnen;off: geen verhalen.
Onderzoek
- Informed consent vragen (
consent.enabled): spelers zien eerst jouw tekst (consent.text) en moeten akkoord geven voordat ze kunnen spelen. Het tijdstip en de versie (consent.version) worden vastgelegd.
De keten in het spel
| Rol | Bedrijf (verzonnen) | Beslist elke week |
|---|---|---|
oem | Elvaro, Helmond | hoeveel chipsets bestellen; ziet de vraag van klanten |
tier1 | Moduvant, Eindhoven | hoeveel chipsets bestellen |
distributor | Distrivolt, Tilburg | hoeveel chipsets bestellen |
osat | Pakketron, Nijmegen | hoeveel chipsets bestellen; verwerking kost extra weken |
foundry | Eemsfab, Enschede | hoeveel wafers starten (tot de capaciteit) en eventueel capaciteit bijkopen |
Tijdens het spel
- Lobby. Laat de deelcode en het adres zien (rechtsboven in de regiekamer). Spelers melden zich aan met een naam. Wijs rollen toe per speler of met Willekeurig toewijzen. Spelers zien nu hun rolkaarten.
- Starten. Met Spel starten begint de eerste (oefen)week. Lege rollen speelt een bot.
- Oefenrondes. In de regiekamer staat "oefenen" bij elk team. Na de oefenrondes zien spelers een wachtscherm. Druk op Echte spel starten als je klaar bent. Met Oefenrondes nu beëindigen stop je eerder.
- Weken. Je ziet per team wie al beslist heeft, de voorraad, de achterstand, de laatste
bestelling en de kosten per rol. Je kunt:
- pauzeren en hervatten (de timer stopt);
- de ronde nu sluiten (ontbrekende beslissingen worden aangevuld volgens
fallback); - de timer aanpassen;
- per rol wisselen tussen speler en bot.
- Gebeurtenissen live toevoegen. Kies een soort, beginweek en duur, voor alle teams of één team. Dat kan niet tijdens de oefenrondes.
- Chat. Stuur een mededeling aan iedereen of aan één team.
- Verteller. Het blok Verteller toont hoeveel verhalen door AI of uit sjablonen kwamen.
Let op
Staat Na de oefenrondes wachten op mijn startsignaal aan, dan blijven spelers na de oefenrondes op een wachtscherm staan tot jij op Echte spel starten drukt.
De server bewaart alles direct. Valt de server even weg, dan gaat het spel daarna verder in dezelfde week, met de beslissingen die al waren ingestuurd.
Nabespreken
- Dashboard: ranglijst (kosten van de keten, leverbetrouwbaarheid, weken stilstand, bullwhip), en grafieken per rol. Je kunt de eerste weken (inloop) buiten de berekening laten.
- Debrief: speel een keten week voor week opnieuw af, vergelijk teams, en zet de projectiemodus aan voor de beamer. Onderaan staan gespreksvragen om het gesprek mee te openen.
- Spelers zien aan het eind een terugblik, hun eigen bestellingen naast de vraag, de hele keten en de kosten per rol. Daarna zijn er drie reflectievragen.
Een bruikbare volgorde voor het gesprek:
- Laat spelers raden hoe de klantvraag verliep.
- Toon de echte vraag.
- Toon de bestellingen per rol.
- Vraag waar het misging.
De AI-verteller
Na elke week schrijft de verteller per speler een korte scène van 3 tot 5 zinnen: een moment bij
het eigen bedrijf, met de collega, en hooguit twee getallen (de rest staat op het dashboard). De
scène maakt één verband in de keten tastbaar, bijvoorbeeld "de dozen van vandaag vertrokken in week 3 bij
Distrivolt in Tilburg". Het verhaal geeft nooit advies en verraadt niets wat de speler niet mag
zien. De vaste verhalen (modus template, en de terugvaloptie) volgen hetzelfde patroon met vaste
zinnen.
Privacy
Het bericht aan het AI-model bevat alleen spelgegevens: de rol, de cijfers van die speler en zijn eerdere verhalen. Het bevat geen namen en geen chat.
- Limiet: de server staat per sessie een maximum aantal AI-verhalen toe. Bereikt een sessie dat, dan schakelt ze automatisch over op sjablonen, en het blok Verteller meldt dat.
- Zonder API-sleutel op de server komen alle verhalen uit sjablonen. Het blok Verteller meldt dat dan.
- Verhalen die niet kloppen (bijvoorbeeld een getal dat niet in de feiten staat), een time-out of een fout vallen terug op het sjabloon. Het spel wacht nooit op de verteller.
Onderzoeksdata
Het tabblad Export geeft een ZIP met CSV-bestanden in long format, session.json (alle
instellingen en de seed) en een codeboek. Spelers staan erin onder een pseudoniem. Namen staan er
alleen in als je daar uitdrukkelijk voor kiest.
node_rounds_long.csv,decisions.csv,orders.csv,shipments.csv,events.csv,end_demand.csv,metrics.csv,chat.csv,players.csv;narratives.csv: elk weekverhaal zoals getoond, met de feiten en de bron;reflections.csv: de antwoorden op de reflectievragen.
Belangrijk voor de analyse:
- Rijen uit de oefenrondes hebben
practice = 1.metrics.csvgaat alleen over het echte spel. visible_infoindecisions.csvlegt vast wat de speler zag toen hij besliste: de cijfers, het weekverhaal (id en bron), de oefenstatus en de tips.- Getypte tekst (chat, reflecties, namen) die begint met
=,+,-of@krijgt in de CSV-bestanden een'ervoor, zodat Excel het niet als formule uitvoert. De JSON-export bevat de tekst precies zoals getypt.
Problemen oplossen
Een speler is zijn verbinding kwijt. Laat de pagina opnieuw openen; de speler komt terug in
hetzelfde spel. Met autoBotAfterSeconds neemt een bot het tijdelijk over.
Een speler is er niet meer. Zet de rol op Bot in de teamtabel.
Spelers blijven op "De oefenrondes zijn klaar" staan. Druk op Echte spel starten in de regiekamer.
Een ronde blijft open. Iemand heeft nog niet beslist. Wacht, pas de timer aan of kies Ronde nu sluiten.
Er komen geen AI-verhalen. Kijk in het blok Verteller: geen API-sleutel, de AI-verhalen voor de sessie zijn op, of de modus staat op sjablonen.
