6 ms·
I get some weird lighting bugs -- one side of everyone's face has massive shadowing from the centreline... ... but yes, surprised how well it ran on my old lap
by sonofgod 8y ago
I get some weird lighting bugs -- one side of everyone's face has massive shadowing from the centreline...
... but yes, surprised how well it ran on my old laptop!
- Thaxll 8y agoFor a game that released 15 years ago?
- rubbingalcohol 8y agoGetting something like this running in a web browser at acceptable performance is a significant technical achievement.
- nicoburns 8y agoIs it? Web browsers aren't that much slower than native (around 2x with web assembly and WebGL I think). It's much harder for apps that are trying to render to the DOM (which is very slow). But WebGL apps should be perfectly fast in browsers...
- johndough 8y agoAll WebGL implementations have significant overhead compared to native GL. For example, just clearing the screen at 60 fps taxes my CPU at 10% on Windows (30% on Linux) while a C program that does the same uses 0% CPU. The reason for the performance penalty with Firefox on Linux is that the framebuffer content is copied from GPU to host memory, compositing is done and then it's copied back to GPU. For other platforms I'm not sure. Further, SIMD support has been removed from Javascript and not been added back to WebAssembly yet, so that's another factor 4-8 for computation-heavy code. Experimental pthread support is only available in Chrome experimental for now due to the Spectre and Meltdown exploits. And general GPU compute apparently is really tricky to implement in a secure way, although DOOM does not use it.
- floatboth 8y ago> copied from GPU to host memory, compositing is done and then it's copied back to GPU Shouldn't happen with GPU compositing in Firefox (layers.acceleration.force-enabled), right?
- Thaxll 8y agoIt has been years that we have WebGL running in the browser, not to mention Linux kernel ect ...
- sneakernets 8y agoHardware acceleration in Linux? someone pinch me, I'm dreaming.
- Thaxll 8y agoI'm talking about running Linux in the browser: https://bellard.org/jslinux/ https://bellard.org/jslinux/
- sneakernets 8y agoIf you knew what was going on under the hood, yeah it's very impressive. Taking a fixed-pipeline shader based game and porting it to modern WebGL isn't easy.
- johndough 8y agoI don't know how this port is doing it, but with emscripten it might be as easy as adding the `-s LEGACY_GL_EMULATION=1` compile flag.
- bri3d 8y agoThe author used Regal rather than the LEGACY_GL_EMULATION feature in Emscripten, which I doubt was complete enough as Doom 3's fixed-function pipeline was easily one of the most demanding OpenGL 1.x games. Anyway, I don't think it's particularly valuable criticizing how hard or not-hard the effort was when the end result is novel and impressive.
- Gab_CV 8y agoOne of the difficult thing was not knowing during the whole porting process if in the end it would really work, or not... I almost gave up several time :)
- blackbeard334 8y agoHow long did it take to port?
- Gab_CV 8y agoFirst commits on the repos (D3 and Regal) are from 17/12. I started to work on this a week or so before the first commits, so it took roughly 4 weeks, with daily progress and commits. In the end the amount of changes in the code is relatively small. Time was mostly spent investigating and figuring out WHAT changes needed to be done for things to work
- azakai 8y agoSome more details here, including an explanation for that visual glitch: https://groups.google.com/d/msg/emscripten-discuss/pKcWvKppjUA/ihx7MwHMDgAJ https://groups.google.com/d/msg/emscripten-discuss/pKcWvKppj...
- jandrese 8y agoIt made everyone look like the racist aliens from that old Star Trek episode. I was having a lot of audio cutouts too, and the framerate tanked when the actions started heating up. Imps jumping around could drop it to the low single digits. Still, pretty impressive for playing in a browser.