HtMaze est un jeu simple/poc d’un jeu sur Unity. Le jeu est un jeu multijoueur ou un joueur joue sur Unity tandis que le 2e joueur joue depuis un portail web. Le joueur Unity possède un code de partie lorsqu’il créer une partie. Le joueur web doit alors écrire ce code dans le portail web afin de se «connecter» à la partie. Le joueur web est alors libre de «dessinner» un labyrinthe sur la page web. Une fois le labyrinthe terminé, il sera envoyé au joueur Unity, le joueur Unity spawnera ensuite dans le labyrinthe a l’endroit choisi par le joueur web et devra trouver le point de fin de ce labyrinthe. À la fin d’une partie, le temps de complétion s’affiche chez le joueur Unity.
Screenshots
Écran Attente de joueur web :
Entrée du code de la partie pour le web :
Création du labyrinthe côté web :
Les carrés jaunes représentent des murs, le carré vert représente le spawn du joueur Unity et le point noir montre sa destination à atteindre. Une fois le labyrinthe affiché, le jouer web est renvoyé sur la page d’accueil avec le formulaire de code tandis que l’écran du joueur Unity s’actualise.
Une fois que le joueur clique sur PLAY, il spawn dans le labyrinthe et dois le résoudre, une fois réussi il pourra voir le temps qu’il a mis pour le compléter.
Avec plus de temps, l’idée pourrait être poussée plus loin, avec un plus grand quadrillage il est possible d’imaginer un «map builder» où l’on peut créer le décor que l’on souhaite avant de l’envoyer à un joueur, un peu comme un jeu de rôle sur table.
Coté technique
La partie web est codée en HTML/CSS avec du JS pour la communication avec le serveur. Le serveur est un Websocket sous Node.js personnalisé et hébergé sur un VPS. Lorsque Unity crée un code de partie, celui-ci est envoyé sur une connexion sécurisée (protocole WSS) et cela créer un objet pouvant accueillir une connexion Unity et une connexion web. Avec ce système il est possible d’ajouter facilement un système de chat textuel entre les 2 joueurs. Pour ce qui est des assets, il s’agit principalement de modèles 3d trouvés sur l’Asset Store. Toute la partie code coté Unity a cependant été faite à la main en C#. Le labyrinthe est composé d’un Array, chaque item contenant un nombre représente ce qui est censé remplir un carré de la grille labyrinthe.
English version
HtMaze – Un jeu comprenant une partie unity et une partie web