Hash Runner — Dévalez la chaîne
Un endless runner en WebGL dans la blockchain. Sautez les blocs périmés, esquivez les orphelins, ramassez des nonces et scellez des blocs. Gratuit, sans inscription.
Flèches ou A/D pour changer de voie, Espace ou W pour sauter. Sur mobile : balayez sur le côté, touchez pour sauter.
Comment jouer
- Les flèches ou A/D changent de voie ; Espace, W ou la flèche haut sautent. Sur mobile, balayez sur le côté pour changer de voie et touchez pour sauter.
- Une barre ambre couchée sur les trois voies est un bloc périmé. Sautez-la — se décaler ne sert à rien.
- Un mur rouge debout sur deux voies est un orphelin. Allez dans la voie libre — il est plus haut que votre saut.
- Les cubes verts sont des nonces. Six scellent un bloc, et chaque bloc accélère la piste jusqu'à son maximum.
Comment ça marche
Un endless runner avec deux obstacles qui attendent de vous des choses opposées. Un bloc périmé est couché en travers des trois voies — vous le sautez, changer de voie ne sert à rien. Un orphelin se dresse sur deux des trois — vous passez dans la voie libre, sauter ne sert à rien, parce que le mur est plus haut que le saut. Il n'existe donc aucune touche unique qui vous garde en vie : à sauter tout le temps, on meurt au premier orphelin, et à ne rien faire, on meurt tout aussi vite, contre une barre ou contre un mur dans la voie que vous n'avez jamais quittée. Les deux sont mesurés dans les tests plutôt qu'affirmés. Les nonces sont posés sur la ligne que survivre trace déjà : dans la voie libre d'un orphelin, et en l'air au-dessus d'une barre. Six nonces scellent un bloc, chaque bloc accélère la piste jusqu'à son maximum, et l'écart entre les obstacles passe d'un peu plus d'une seconde à quatre dixièmes, où il s'arrête — presque toutes les parties finissent là. Rendu en WebGL avec des shaders écrits à la main et sans bibliothèque 3D, pour que la page entière tienne dans le budget de performance ; sans WebGL, il bascule sur un rendu 2D et reste jouable. Tout tourne sur votre appareil, rien n'est envoyé nulle part.
Un jeu sur une chaîne, pas un guide de minage. Un vrai bloc périmé est ce que le consensus laisse derrière lui ; un vrai orphelin est un bloc arrivé avant son parent. On ne contourne ni l'un ni l'autre.
Questions fréquentes
Quelle est la différence entre un bloc périmé et un orphelin ?
Dans le jeu, un périmé est couché en travers de la piste et un orphelin se dresse sur deux voies : l'un demande un saut, l'autre un changement de voie. Les noms viennent du minage réel. Un bloc périmé est un bloc valide qui a perdu la course : miné, mais c'est un autre bloc de même hauteur qui a été prolongé. « Orphelin » s'emploie couramment pour la même chose ; au sens strict c'est un bloc dont un nœud n'a pas encore vu le parent, et que les clients modernes ne conservent plus. Le jeu emprunte les deux noms pour deux dangers qui punissent des habitudes opposées — ce n'est pas un cours sur la réorganisation de chaîne.
Puis-je juste garder une touche enfoncée ?
Non, et c'est voulu. À sauter tout le temps, on meurt au premier mur orphelin, plus haut que n'importe quel saut. À ne jamais sauter, on meurt tout aussi vite : une fois sur deux contre une barre périmée, une fois sur deux contre un orphelin planté dans la voie que vous n'avez jamais quittée. Les deux habitudes sont mesurées sur quarante graines dans les tests, et aucune ne dépasse deux cents mètres. Le fait qu'un saut ne franchisse pas un mur est vérifié aussi : s'il le franchissait, une seule habitude battrait le jeu entier.
Est-ce que ça devient impossible ?
Ça devient très dur, puis ça cesse de devenir plus dur. Les deux réglages — la vitesse et l'écart entre les obstacles — s'arrêtent à douze blocs scellés, donc au-delà d'une centaine de secondes le jeu se fige à une difficulté constante : 0,40 seconde d'écart, dont une esquive sur deux voies consomme 0,27, ce qui laisse environ 0,15 pour réagir. Presque toutes les parties finissent là. Qui lit correctement chaque obstacle n'est pourtant pas condamné à perdre : le jeu n'est jamais injuste par construction, et un test parcourt tous les niveaux de difficulté pour vérifier que l'écart ne descend jamais sous ce qu'un changement de deux voies exige physiquement.
Faut-il une machine rapide ?
Non. Il dessine chaque boîte du monde — piste, murs, nonces et vous — comme des instances d'un seul cube en un unique appel de rendu, avec des shaders écrits à la main et sans bibliothèque 3D. Un framework WebGL aurait coûté environ 150 Ko gzip sur la page exacte où l'on arrive depuis un lien partagé ; ceci en coûte deux ou trois. Sans WebGL, il bascule sur un rendu 2D et reste jouable.