CSSQuake
(cssquake.com)- Démo CSSQuake qui exécute Quake dans le navigateur, avec sur la page l’initialisation de
cssQuake v0.230et l’étatcoming soon! - Le rendu est assuré par PolyCSS renderer v0.2.6, et les journaux montrent le chargement des ressources manifest, progs, definitions, weapon model et
id1/pak0.pak - Le jeu inclus est Quake Shareware version 1.06, avec la mention de copyright
Quake (C) 1996 id Software, Inc. - L’écran multijoueur propose le nom, la couleur, la carte, fraglimit, timelimit, le nombre maximal de joueurs, ainsi que les actions Create, Join et Copy Link
- Les indications de commandes et les bascules de débogage sont également visibles, ce qui montre que la page affiche à la fois une démo d’exécution et une interface de configuration
Démo Quake initialisée dans le navigateur
- Le titre de la page est cssQuake - Powered by PolyCSS, et le corps affiche
v0.230ainsi quecoming soon! - Le journal en bas affiche
=== cssQuake v0.230 initialized === - L’état de chargement apparaît dans l’ordre suivant
Host_InitLoaded manifestLoaded progsLoaded definitionsWeapon modelAssets from id1/pak0.pak
- La zone d’indicateurs de performance affiche 0 FPS et 0 MS
- Les liens associés sont cssQuake GitHub, id Software Quake GitHub, Layoutit
Paramètres multijoueur et commandes
- Dans le menu Multiplayer, il est possible de définir le nom, la couleur, la carte, fraglimit, timelimit et le nombre maximal de joueurs
- La carte affichée par défaut est
E1M1 the Slipgate Complex - Les boutons d’action sont
Create,Join,Copy Link
- La carte affichée par défaut est
- La liste des cartes affiche les éléments suivants
E1M1 the Slipgate ComplexE1M2 Castle of the DamnedE1M3 the NecropolisE1M4 the Grisly GrottoE1M5 Gloom KeepE1M6 The Door To ChthonE1M7 The House of ChthonE1M8 Ziggurat Vertigo
- Les indications de commandes sont divisées en Gameplay et Menu
- Gameplay : déplacement avec WASD, visée à la souris, tir au clic, saut avec Space, course avec Shift, accroupissement avec Ctrl
- Menu : navigation avec les flèches, sélection avec Enter, retour avec Esc
- Dans les paramètres Debug et Gameplay, les bascules suivantes sont affichées
- Show outlines, Show stats panel, Show FPS panel
- Réglage du Crosshair
- Dynamic lighting, Mute sounds, Show particles, Show enemies
- Disable damage, Disable movement, Disable attacks, Invert mouse
1 commentaires
Commentaires sur Hacker News
C’est une réalisation impressionnante, mais ça me perturbe de me dire que Quake sur un PC Pentium-133 des années 90 semblait tourner plus fluidement que sur mon Mac M1 Pro
Génial. Encore plus difficile à quitter que vim
Impressionnant. Est-ce que ce n’est pas seulement un moteur de rendu conçu pour utiliser du CSS, mais bien une réimplémentation complète du moteur et de toute la logique du jeu ? On dirait bien, vu qu’il y a pas mal de comportements différents de l’original
Par exemple, certains boutons doivent être tirés dessus au lieu d’être touchés, et certaines portes secrètes s’ouvrent au contact au lieu de nécessiter un tir
Côté logique de jeu, pendant la phase de build, on exécute un petit extracteur JS sur QuakeC/progs.dat pour générer en JSON les informations source comme les états, modèles, attaques et sons. Le runtime navigateur est en TypeScript, et utilise ces informations pour reproduire un gameplay proche de Quake
C’est la première chose vue sur Internet depuis longtemps qui m’a fait rire sincèrement
J’ai aussi regardé https://cssdoom.wtf/ et c’était excellent. Les deux sont bien plus légers et agréables que l’actualité du moment \o/
Ce CSS Quake semble nécessiter du JS pour s’exécuter
Même si je vois la prolifération du CSS comme du bricolage empilé sur du bricolage, et même si je déteste passionnément la stack web CSS/JS/HTML, j’estime que c’est un excellent et tout à fait légitime cas d’usage du CSS :)
Ça vient de https://github.com/NielsLeenheer/cssDOOM ?
https://bsky.app/profile/html5test.com/post/3mok5febchs2g
Très cool. Je me demande jusqu’où vont les limites. On voit un chien abattu flotter dans les airs ; c’est à cause du CSS ou est-ce quelque chose qu’on peut corriger ?
.dog { display: float; }C’est impressionnant, mais ce genre de chose ne devrait quand même pas être possible avec un langage de style déclaratif
Waouh, vraiment génial. Ça tourne de façon très fluide. C’est complètement fou de constater qu’environ 25 ans plus tard, la mémoire musculaire est toujours là