Comment by kvakvs
10 hours ago
Since Doom renders the image with vertical columns of pixels (floor, lower wall, portal if exists continues rendering the other sector, then upper wall then ceiling) and since browsers are very good at drawing the sprites out of larger textures... You could send vertical divs shaded with the sector light level and picking the correct textures. Instead of hundreds per column you will have like 5 divs on average per column and they will be textured shaded and scaled by the browser?
I believe he stated in the beginning pretty clearly that the point of this exercise was to stress test the Liveview performance.
Making this more efficient would be kinda counter productive
I think the proposal here is to optimize for bandwidth by minimizing number of divs, because there are fewer divs per column per frame. It might actually turn out to be more work for the browser because it has to layout the columns with divs that are not uniformly sized.
I agree, but it certainly wasn't performant (in the video).
I'd be curious to see what parameters are required for a smooth / playable demo.
Or am I missing something?
(Slow input with no interpolation?)
To improve fluidity, all you have to do is change the frames per second or the resolution, although the goal is not to make it playable. :D
That is!
IIRC someone did exactly that around 15 years ago, a game renderer using div strips, first with Wolfenstein and then Doom. It may have been "Jacob Seidelin" who was very active experimenting with early HTML5 tech, but I've lost all links or they've vanished from the web - I only keep two screenshots I used in a lecture back then.
At that point just run the browser on the server and use proper cloud gaming tech to stream the screen and have low-latency interactivity.
If it's streaming at 60 fps, the bottleneck is in the browser, which is doing what it can :)
My phone and TV can go to 120hz, and my PC can go to 240 with adaptive sync. There’s still plenty of room to improve.