top | item 46443379

(no title)

kvakvs | 2 months 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?

discuss

order

ffsm8|2 months ago

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

jasonjmcghee|2 months ago

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?)

omoikane|2 months ago

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.

andros|2 months ago

That is!

Jare|2 months ago

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.

oersted|2 months ago

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.

andros|2 months ago

If it's streaming at 60 fps, the bottleneck is in the browser, which is doing what it can :)

dentalnanobot|2 months ago

Wonder if it would be more efficient to use a single-pixel column and then draw the colours with gradient stops?