En 2012, le créateur de Minecraft publiait une démo du moteur du jeu recréé à l’aide de HTML5 et Javascript sur moins de 4kb. Inspiré par l’initiative, un web développeur français a reproduit une démo similaire, mais reposant cette fois sur un code de 252 bytes seulement.
Sur le web, la recherche du « toujours plus léger » est une obsession constante. Mais pour certain, la miniaturisation relève presque de la performance. C’est le cas du webdesigner français Mathieu « P01 » Henri et de son Minicraft, une version ultra-light d’une expérimentation présentée par Markus ‘Notch’ Persson, le créateur de Minecraft.
L’année dernière, Notch avait ainsi montré une reconstitution simpliste du moteur de Minecraft en HTML5 et Javascript, le tout tenant sur moins de 4kb de mémoire. Mathieu Henri a repris l’idée, dans un premier temps en adaptant le moteur de Wolfenstein 3D sur 251 bytes d’HTML5.

Cliquez sur l'image pour accéder à la demo de Minicraft
Une performance qui relève plus de la curiosité technologique qu’autre chose, mais certaines techniques utilisées par Mathieu Henri méritent que l’on s’y attarde : ainsi, plutôt que de stocker une carte, c’est le code source même de l’application qui est utilisé pour générer l’environnement dans lequel va se déplacer la caméra. Une règle est créée pour considérer que les caractères typographiques tels que !"#$%&'()*+ et autres sont des murs. La carte est donc basée sur les 64 premiers caractères du code, la répartition entre caractères alphabétiques et typographiques fait que la carte ainsi générée dispose de quelques murs mais laisse suffisamment d’espace pour laisser passer la camera.

L'ensemble du code source de la demo Minicraft tient dans ce bout de code.
La version de développement du Wolfensteiny donne une bonne idée de la façon dont fonctionne cette astuce : sur la droite on peut voir une vue du dessus indiquant la position de la camera sur la carte et son champ de vision. On voit également le code source et la façon dont la carte est générée à partir des différents caractères.

Minicraft, la demo technique inspirée de Minecraft, repose principalement sur les travaux précédents de Mathieu Henri, sur Wolfenstein ou d’autres expérimentations réalisée en HTML5 telles que Mini District ou Tea Storm. Toujours en cherchant à réduire au minimum la taille du code (toutes les réalisations font moins de 0,25 kb), il est parvenu à des résultats étonnants. Son blog regorge d’ailleurs d’explications techniques sur la façon dont il a mis en place ses démos, mais l’ensemble est en anglais.