Of course, but you'd think after 30 years the compute power should be enough to overcome any lack of optimization. It's a testament to the engineering that went into the original Quake engine.
CSS is a general rendering solution, not something built for rendering 3D games.
And no one has spent any time optimizing 3D transforms to make a game workable because no one would be able to justify the use of their time like that. It wouldn’t even give you brownie points ‘cause most people would just ask “why?”
Impressive. I guess this isn't only the renderer made to use CSS but also a full recreation of the engine and logic right? My guess is because a bunch of things do not behave like the original game, e.g. some buttons need to be shot instead of touched to activate, some secret doors open by touching them instead of being shot, etc.
Hi there! Thanks for the report, buttons should work properly now.
Regarding the game logic, the build step has a small JS extractor over QuakeC/progs.dat to generate JSON source facts: states, models, attacks, sounds, etc. The browser runtime is TypeScript and consumes those for Quake-ish gameplay.
As someone who passionately and ardiently hates prolifiration of this set of _hacks on top of hacks_ called CSS (and CSS/JS/HTML aka Web-stack), I must say this is good and valid use case for CSS. :)
Nice, but the view keeps clipping out to far ahead of the map (but the character seems to still be in its original position as I can die from monsters). It snaps back in place when I shoot.
edit: both on chromium and firefox, desktop linux.
I noticed my cursor was continuously sliding upward first in Neal.fun's latest canvas multiplayer game and I experienced it here as well. Anyone else see this behavior?
And maybe a skill issue but I was unable to jump out of the slime...
Really cool experiment. A lot of jank. It would sometimes rubber band me back, movement was grid aligned in a way that made accessing the secret room challenging, and the whole tab unexpectedly crashed with no error. 5 star would play again
After leaving the first area to the bridge... was the sky really so close to the ground in the original game, or the old monitors made it look differently?
Doesn't work at all for me. I keep jumping around and clipping through objects, can't even leave the first room without being stuck in the doorway to the elevator.
The game logic here is running in JS. Only the rendering is handled by HTML and CSS. Is it really wrong that you can do this? All it requires is 3D transformation of elements.
It is awesome though.
It should be "Decades of inventions from toasters to IOT AI Smart Air Fryers will not make better toast than the original"
But I'd argue the IOT AI Smart Air Fryer should make really good toast. Which is what GP is saying.
CSSQuake uses an intentionally-absurd rendering pipeline. It's not surprising that the result is sub-optimal.
(Though I agree that the meatloaf analogy is not very good.)
Still, why css is as slow as it is given what tech like imgui can do is a little wild.
And no one has spent any time optimizing 3D transforms to make a game workable because no one would be able to justify the use of their time like that. It wouldn’t even give you brownie points ‘cause most people would just ask “why?”
On my 7945HX this is plenty fast.
Regarding the game logic, the build step has a small JS extractor over QuakeC/progs.dat to generate JSON source facts: states, models, attacks, sounds, etc. The browser runtime is TypeScript and consumes those for Quake-ish gameplay.
Checked out https://cssdoom.wtf/ and loved it too, both are far lighter than current affairs. \o/
https://bsky.app/profile/html5test.com/post/3mok5febchs2g
- https://pantel.is/projects/css3d/
- https://keithclark.co.uk/labs/css-fps/ (the original)
but quake and doom took it to the next level :)
edit: both on chromium and firefox, desktop linux.
And maybe a skill issue but I was unable to jump out of the slime...
Also nice achievement...!
https://en.wikipedia.org/wiki/Trespasser_(video_game