maart 26th, 2021

Portable Escape Game (part 4): Gameplay & Niveau/Moeilijkheidsgraad

Een heel ander hoofdstuk, maar net zo belangrijk als de hardware en software is de gameplay.
Welk thema wil ik gebruiken. En wat ga ik doen met het niveau van de puzzels.

Ik bouw de koffer uiteraard in eerste instantie voor mezelf. Maar in mijn achterhoofd ga ik er vanuit dat meer mensen dit willen spelen en uitproberen. Daarom moet de koffer ook weer aan een aantal eisen voldoen als het gaat om het spel zelf.

Moeilijkheidsgraad

Als eerste moet het vooral een leuke ervaring zijn. Als de puzzels heel erg moeilijk zijn en je loopt echt vast. Dan zal de gemiddelde mens misschien opgeven. En een groot deel van het plezier gaat dan verloren omdat het TE moeilijk is.
Aan de andere kant. De puzzels mogen ook niet te makkelijk zijn. Een echte puzzelfanaat die vind het dan te makkelijk en snel saai worden. En beleefd op die manier ook niet de optimale ervaring.

Hier heb ik lang over nagedacht. En meerdere oplossingen voor verzonnen.

Het spel gaat bestaan uit verschillende fases.  Elke fase wordt het spel een grote stap moeilijker. En na elke fase kan de speler kiezen of hij/zij de volgende fase wilt spelen. Of dat je het spel beëindigd.

In elke fase zal een puzzel in de meest complexe vorm worden gestart. En als mensen er niet uitkomen. Kunnen ze bijvoorbeeld na een bepaalde tijd gebruik maken van een hint. Een hint gaat ten koste van je score.
Bijvoorbeeld:  de totale score is 100 punten.

  • Hint 1 (75% score over) geeft je inspiratie naar richting waar je moet gaan zoeken of waar je aan moet denken.
  • Hint 2 (50% score over) geeft je een duidelijke richting wat er van je verwacht wordt.
  • Hint 3 (25% score over) geeft bijna een voorbeeld met wat je zou moeten doen.
  • Deze puzzel overslaan (0% score over)  De puzzel wordt niet opgelost en het spel gaat verder.

Elke hint kun je pas unlocken bijvoorbeeld na een bepaalde tijd dat de vorige hint beschikbaar is. Of met een extra code die je nodig hebt. Dus het skippen van een puzzel kan pas als Hint 3 nog steeds niet leidt naar de oplossing.

Highscore

Vroeger in de bekende Arcade games had je altijd aan het einde van het spel en soms aan het begin een Highscore lijst. Daarop stonden de namen of nicknames van de spelers en degene met de hoogste score staat dan bovenaan.
Ik wil zo’n zelfde lijst gaan toepassen. Zodat het spelers uitdaagt hun best te doen om zover mogelijk bovenaan deze lijst te komen.

En ik zou deze lijst nog kunnen splitsen in 3 delen. Voor de 3 verschillende fases/moeilijkheidsgraden.
De die hard puzzelaars zullen van goede huize moeten komen om fase 3 uit te spelen.

Thema

Ik heb me laten inspireren door de serie Mr. Robot op Amazon Prime. Het mooie van deze serie is dat het ook verschillende fases en dus verhaallijnen heeft die ik kan toepassen in de verschillende fases van het spel.

Wat ook een heel leuk aspect is is dat ze in de serie terugblikken op de jaren 80 en verwijzen naar films als “Back to the future” en “Fightclub”. Die ik zelf vele malen gezien heb. Ik wil niet perse alles letterlijk gebruiken. Maar als leidraad en verhaallijn kan ik wel wat clips en stukje gebruiken om zo mijn eigen verhaal en thema te maken.

Extra spelers

Wat ook echt op mijn lijstje staat is de mogelijkheid om met extra spelers te spelen. Ik wil op een bepaalde manier puzzels en opdrachten verwerken die je remote kunt doen. Denk hierbij aan puzzels via een website. En dat de koffer een database uitleest of real-time connectie maakt met de andere speler.

Via WhatsApp ben ik op basis van een old school real time text based strategy game een puzzel aan het maken. Hierbij zul je naar een nummer moeten appen die gekoppeld is aan een chatbot die ik via Google Dialogflow in elkaar heb gezet. Het lijkt een standaard chatbot. Maar bij de juiste vragen kom je terecht in een game waarbij je moet uitvogelen wat de bedoeling is. En als je dit doorstaan hebt unlock je een ander gedeelte van het spel.

Dit kan natuurlijk iedereen doen. Ook degene die de koffer bediend. Maar door een factor tijd toe te voegen zal het slimmer zijn om een 2e speler dit te laten doen zodat je als team meer punten overhoudt. Plus dat de mogelijkheid bestaat dat de speler van de koffer tegelijkertijd moet connecten met een lokaal wifi netwerk om op die manier de ander te helpen.

De mogelijkheid voor een 2e en misschien wel 3e speler is op deze manier praktisch goed haalbaar.

Mocht je zelf nog een idee hebben dan kun je dat altijd in de reacties hieronder laten weten. Of me direct benaderen.

Ik laat me graag inspireren 🙂

Portable Escape Game (part 3): Wat moet de koffer allemaal kunnen?

Oke, de koffer kan nu netjes open en dicht. En zelfs met het scherm gemonteerd in de klep!

Uiteraard heb ik een heel idee in mijn hoofd. Maar het is wel slim om dat af en toe eens op te schrijven.
Wat is er allemaal mogelijk. En wat moet de koffer eigenlijk kunnen. En past dat allemaal in de koffer.
En hoe ga ik dat alles aansturen.

Sensoren

Ik had bij Ali Express een starters kit besteld met een Arduino Uno en daarbij zaten ook wat bruikbare sensoren.
De volgende dingen had ik op mijn lijstje staan wat de koffer zou moeten kunnen:

  • De koffer moet automatisch kunnen openen. En een elektrisch slot hebben.
  • Beeld en geluid weergeven d.m.v. laptopscherm en een oude SoundBlaster als audio versterker.
  • 2 Analoge VU meters.
  • Led matrix module in het midden waarop ik bijv. resterende tijd kan afbeelden of codes.
  • Led ring ook in het midden met RGB leds, Om zo de status van een spel of countdown of klok etc. visueel weer te geven.
  • TFT scherm voor bijv. het weergeven van een QR code of een symbool.
  • RF-ID zodat je ook met pasjes etc. een code kunt invoeren
  • 5 Witte Arcade knoppen omgebouwd met een RGB led waardoor deze met elke kleur kunnen oplichten.
  • 4 Extra arcade knoppen met vaste kleuren
  • 20 Banaanstekker bussen. Zodat je doorverbindingen kunt maken tussen deze 20 bussen.
  • 8 tuimelschakelaars met 3 standen. Zodat je bijvoorbeeld een binair woord kunt instellen.
  • Een ruim LCD display om tekst weer te geven
  • 14 keer een 10 slagen potmeter. Zodat je bijv. een coördinaat kunt laten invoeren. 7 potmeters voor de lengtegraad en 7 potmeters voor de breedtegraad
  • 2 digitale potmeters
  • en dan uiteraard de frontplaat met de display en de 4 knoppen aan de buitenkant van de koffer.
  • XYZ Sensor om de positie van de koffer te bepalen
  • GSM module
  • GPS module
  • WIFI
  • Bluetooth
  • FM
  • En een hele berg RGB leds bij elke knop of gedeelte om zo een indicatie of hint te kunnen geven.

Zoals je ziet kun je met al deze sensoren en mogelijkheden wel een oneindig aantal puzzles verzinnen.
Zelfs geocaches hierin te verwerken.

Aansturing

De aansturing daar was ik grotendeels snel uit. De Raspberry Pi is de hoofdcontroller. Daarop draait het spel.
Ik had een tijdje geleden het idee om op de Pi gebruik te maken van Node Red als besturing. Node red is een visuele programmeertaal. Veel professionele escaperooms gebruiken ook Node Red omdat het zo flexibel is.
Later kwam ik daarop terug. Want 1 van de uitdagingen was dat ik weer wilde programmeren en wel in code en daar weer beter in zou worden en kennis te maken met Python.

De Raspberry Pi communiceert zoveel mogelijk via de I2C bus met de andere controllers.
Zo kan deze steeds de status van alle knoppen laten uitlezen door een andere controller en deze data komt dan binnen.

Hier kwam voor mij iets nieuws om de hoek. De Raspberry Pi heeft 3.3 Volt IO poorten. En een ESP32 heeft dat ook. Maar Arduino werkt met 5 Volt IO poorten.
En zo lang de master 3.3Volt stuurt is er niks aan de  hand. Maar als een ander device Master wordt en data stuurt naar de Pi of naar de ESP dan kan het zijn dat deze defect gaat.

En om er zeker van te zijn dat dat niet gebeurt heb ik een zogenaamde bi-directionele level shifter gebruikt.

Hierboven zie je er 1. Wat deze doet is eigenlijk heel simpel.  Als er op de lage ingang een 1 komt met dus een spanning van 3.3 volt dan zet hij deze om op de hoge kant in een 1 van 5 Volt. En andersom. Als er een 1 op de hoge kant komt dan zet hij deze om naar een 1 van 3.3 Volt.  En zo hou je deze 2 spanningen netjes gescheiden en kan er niks kapot gaan.

Deze level shifter heeft dus 4 lage en 4 hoge aansluitingen en verder moet je dan nog 3.3V, 5 V en Ground aanbieden.
En zoals je misschien kunt zien zijn ze zelfs al voorzien van Pull Up resistors van 10 Kohm.

Tot zover de theorie. Ik heb dit getest en het werkt. Maar tot welke snelheid dit goed gaat weet ik niet.
Op zich heb ik ook geen super snelle datasnelheden nodig. Dus als het zou moeten zou ik hier nog iets aan kunnen tweaken.

Mijn eerste idee was om elk deel van de koffer aan te sturen met een Arduino Nano. En deze allemaal via I2C met de Pi te laten communiceren. Maar in het kader van de flexibiliteit EN vooral het stroomverbruik van zoveel controllers ben ik overgestapt op het gebruik van de Arduino Mega. Deze heeft heel veel analoge en digitale IO poorten waardoor het nu mogelijk is om met 2 van deze controllers alles uit te lezen. En dan blijft de I2C bus ook een heel stuk minder bezet.