Hugo Hismans
EN

Retour à l'atlas

Capture de Amazeme sur ordinateur
Capture de Amazeme sur téléphone

HH·031JeuxAbouti22 septembre 20265 commits

Amazeme

Un labyrinthe 3D à la torche, avec un Minotaure qui t'entend venir

Un labyrinthe en vue subjective, éclairé à la torche, qui tient dans un seul fichier HTML sans aucune dépendance. Trente niveaux de 8×8 à 40×40, un défi du jour identique pour tous, et un mode Minotaure : un monstre animé erre dans les couloirs, entend les pas du joueur et charge dès qu'il l'aperçoit. Il faut alors l'attirer ailleurs avec une pierre ou faire sauter un mur à la bombe. À l'arrivée, la caméra s'élève et compare le trajet parcouru au chemin optimal.

Ce qui brille

  • Moteur WebGL 1 écrit à la main : briques, pierres, mousse et dalles humides sont calculées dans le fragment shader, sans aucune texture ; torche qui vacille, clair de lune, brouillard, ciel étoilé, poussière dans le faisceau
  • Minotaure animé par un shader de skinning écrit pour l'occasion, à partir d'un modèle Blender (maillage, poids, 24 images d'animation) converti en données compactes par un script Python
  • IA du Minotaure : l'ouïe se propage le long des couloirs (parcours en largeur), la ligne de vue est testée par lancer de rayon sur la grille, et le monstre suit une machine à états errance, recherche, chasse, sonné, attaque
  • Sons entièrement synthétisés en Web Audio : nappe grave, vent, pas, chocs, bourdon près de la sortie, fanfare et réverbération par convolution
  • Caméra en continu : plongeon depuis le menu jusque dans le labyrinthe, puis vue de survol à l'arrivée qui trace votre trajet (bleu) face au chemin optimal (or)

Mode d'emploi

Cliquer « Jouer » : ZQSD ou flèches et souris sur ordinateur, deux pouces sur mobile ; C boussole, M survol, F fil d'Ariane ; en mode Minotaure, E pierre, B bombe, Maj sprint.

Fabriqué avec

  • HTML/CSS/JavaScript sans framework (fichier unique)
  • WebGL 1 + GLSL écrits à la main
  • Web Audio API (dont ConvolverNode)
  • Canvas 2D (minicarte)
  • Pointer Lock API
  • localStorage
  • Python + Blender (bpy) pour exporter le modèle 3D
  • Google Fonts (Cinzel)

Dans la même constellation