Créé le 2024-01-30

Escape Game fait maison, E01

Faire un escape-game professionnel à la maison, dans une valise puis dans une caravane ! C’est ça la genèse de l’idée.

C’est après avoir fait un paquet d’escape games plus ou moins sérieux qu’on se rend compte que la principale difficulté c’est l’immersion dans le jeu. Il suffit qu’une porte branle un peu, qu’une logique soit trop facile ou trop visible et pan, le charme est rompu. Naturellement la difficulté pour les professionnels c’est de tenir dans la durée, les pièces étant manipulées toute la journée au moins 150 jours par ans.

illustration du côté dark de la création

Présentation

L’idée est donc de créer un système d’escape game de qualité professionnelle, facilement modifiable et flexible. Alors je sors le neurone et je me lance.

Pour garder des éléments de jeu propres et en état il y a 3 possibilités :

  1. Réaliser plusieurs éléments identiques pour faire un roulement: 1 en utilisation, 1 au nettoyage, 1 en cas de casse.
  2. Réaliser des éléments en matériaux résistants et durables: utiliser par exemple de l’aluminium à la place du bois ou du plastique résistant.
  3. S’en foutre et laisser les éléments s’encrasser jusqu’à avoir des plaintes 😌.

Le curseur est donc à placer en fonction de la fréquence d’utilisation et du type de public visé. Pour l’instant je m’en fout un peu et je vais faire ce que je peux avec ce que j’ai! Du matériel en bois et en impression 3D sera parfait pour commencer.

Ensuite je voudrai, si c’est possible, éviter de partir de zéro et me concentrer sur le jeu et pas la technique (même si c’est aussi le chargme de la job). Un peu de recherche et de bibliographie semble nécessaire! Pour le matériel, j’ai pu au fil de mes années de travail dans l’électronique amasser pleins de matériels divers et je vais donc piocher dans ce stock.

Je vais donc commencer doucement par un petit démonstrateur, tester les possibilités et mes concepts de jeux. Ensuite on(je) avisera!

Bibliographie

Première approche avec les conseils et le travail d’ici : https://github.com/playfultechnology/node-redscape/tree/master

Il y a aussi des choses intéressantes ici: https://github.com/xcape-io

Et encore là : https://learn.escaperoomtechs.com/

Il faut aussi prendre en compte ça: https://hub.docker.com/_/eclipse-mosquitto

Le Hardware

L’avantage de l’escape game c’est qu’il y a plusieurs possibilités pour arriver au même but: un simple cadenas ou une serrure pilotée par un microcontrôleur permettent aussi bien de verrouiller une armoire.
Ce qui m’intéresse dans cette démarche c’est de réaliser des défis inattendus, utiliser des capteurs peu courants et mettre en place des situations inconnues par les joueurs. Je trouve que l’offre commerciale d’escape game actuelle est basée sur des systèmes classiques, type interrupteurs et énigmes a aimant.

Il existe des capteurs moins utilisés que j’aimerai mettre en œuvre:

Pour le pilotage je vais rester simple et efficace:

Pour le moment je vais déployer les sketchs simples fournis par Mr PlayfullTechnologies qui ont l’air de s’intégrer avec Node-Red.

ESP32 mon amour!

Déployer depuis l’IDE Arduino, c’est beau, ça marche plutôt bien et ça intègre un outil de liaison série plutôt coopératif.

Il faut donc commencer par ajouter les librairies manquantes:

Le Software

Il y a plusieurs nécessités pour le logiciel d’un escape game. un petit schéma s’impose:

C h a m J A b e f r u f e x i c f h e a r g m e é e S u G t G d A d p e e e e f e e s m s s f s r t p t i v i s i j c i i o o e h n s n n u a d e x g i u d e c r u e s
un peu de Specs

Spécifications du système:

  • Temps de réponse < 2s
  • Efficace dans la mise en place des jeux
  • Vision claire
  • Flexibilité de conception

La partie Chambre est l’aire de jeu et la partie Superviseur l’espace de gestion.
La Chambre doit avoir une liaison vers le Superviseur, pour simplifier la logistique, elle sera en Wifi.
Gérer plusieurs objets connectés indépendamment via le réseau, ça ressemble assez à de l’IOT donc une liaison MQTT semble indiquée.
Pour le logiciel du Superviseur, il doit être assez flexible pour pouvoir gérer des liaisons MQTT, un scénario, et des affichages différents. Le tout en étant convivial!

Après avoir fait le tour de ma bibliographie, je vais utiliser Node-Red et un broker MQTT Mosquitto. Les 2 serveurs disposent d’un container Docker ce qui me va parfaitement pour isoler et stocker.
Utiliser Node-Red, ça peut paraître barbare pour un électronicien, mais le système permet assez de flexibilité pour tout mes désirs. C’est aussi un moyen simple de générer plusieurs instances indépendantes de superviseur. Les librairies sont très bien fournies et la plateforme est largement éprouvé !

Le site officiel c’est par ici !.

exemple de flux Node-Red

Installation de Node-Red

Je vais être plus que synthétique car il n’y a pas grand chose à savoir :
Le lien du guide d’installation propose pleins de commandes. Comme j’utilise Portainer pour gérer mes machines Docker. Il faut juste noter les informations suivantes :

docker run -it -p 1880:1880 -v node_red_data:/data --name mynodered nodered/node-red

Configurer l’ouverture du port TCP 1880 vers l’hôte.

Une fois le container en place il faut le démarrer et accéder à l’interface de Node-red avec l’adresse : localhost:1880

Installation de Mosquitto

Il faut mettre en place le container, ajouter la configuration et vérifier que le port soit accessible depuis l’extérieur de la machine hôte. Le port classique pour un MQTT non sécurisé est 1883.

docker pull eclipse-mosquitto

Configurer l’ouverture du port TCP 1883 vers l’hôte.

Ajouter la configuration dans le fichier mosquitto/config/mosquitto.conf :

persistence false
allow_anonymous true
connection_messages true
log_type all
listener 1883
persistence_file mosquitto.db
persistence_location /mosquitto/data/

Pour tester le fonctionnement du serveur il est bon d’utiliser un client de test comme MqttX car l’utilisation de docker peut générer des problèmes de réseau.

Créer une intrigue

Quand on crée un jeu de piste on peut le faire de 2 façons:

Dans ce second cas, le développement de l’intrigue est alors fait à l’envers et colle aux différents défis.

D S é o p l a u r t t i o d n e l a s b o o l î u t t e i o 2 n : i c n o d d i e c e 1 3 b i i o n n î d d t i i e c c e e 1 1 2 c l é 1 c a c h e 1
Développement depuis la solution

On introduit la difficulté au besoin en ajoutant des indices, des étapes ou avec un objet difficile à avoir. Cette représentation permet aussi de bien visualiser les besoins et la dynamique du jeu. Trouver une solution peut se faire de manière linéaire :

S o l u t i o n b o î t e 2 c o d e 1 i n d i c e 1
Simple chemin

Ou avoir plusieurs biais, ce qui introduit la possibilité d’avoir plusieurs chemins menants au même résultat:

S o l u t i o n b o î t e 2 c o d e 1 i i i n n n d d d i i i c c c e e e 1 2 3
Multiples chemins

Alors maintenant que la théorie est là, il y a plus qu’à se lancer. Le mieux pour une jolie histoire c’est un brainstorming avec des amis !