A Very Detailed Dissection of a Frame From DOOM (adriancourreges.com) 113
DOOM 2016 "cleverly re-uses old data computed in the previous frames...1331 draw calls, 132 textures and 50 render targets," according to a new article which takes a very detailed look at the process of rendering one 16-millisecond frame. An anonymous Slashdot reader writes:
The game released earlier this year uses the Vulkan API to push graphics quality and performance at new levels. The article sheds light on rendering techniques, mega-textures, reflection computation... all the aspects of a modern game engine.
Some of the information came from "The Devil is in the Details," a July presentation at the SIGGRAPH 2016 conferences on graphics by Tiago Sousa, id's lead renderer programmer, and senior engine programmer Jean Geffroy. (And there's also more resources at the end of the article, including a July interview with five id programmers by Digital Foundry.) "Historically id Software is known for open-sourcing their engines after a few years, which often leads to nice remakes and breakdowns," the article notes. "Whether this will stand true with id Tech 6 remains to be seen but we don't necessarily need the source code to appreciate the nice graphics techniques implemented in the engine."
Some of the information came from "The Devil is in the Details," a July presentation at the SIGGRAPH 2016 conferences on graphics by Tiago Sousa, id's lead renderer programmer, and senior engine programmer Jean Geffroy. (And there's also more resources at the end of the article, including a July interview with five id programmers by Digital Foundry.) "Historically id Software is known for open-sourcing their engines after a few years, which often leads to nice remakes and breakdowns," the article notes. "Whether this will stand true with id Tech 6 remains to be seen but we don't necessarily need the source code to appreciate the nice graphics techniques implemented in the engine."
And Grand Theft Auto V and Supreme Commander... (Score:5, Informative)
Wow. (Score:3)
Re: (Score:1)
Very detailed indeed. Definitely over my head.
Reading the article for the first time it was definitely over my head but I have played the PS4 Doom demo. Normally I dislike FPS games and especially multiplayer ones, but with Doom I actually found the story mode (What story? Just kill daemons) great fun to play.
Re: (Score:1)
Reading the article for the first time it was definitely over my head but I have played the PS4 Doom demo. Normally I dislike FPS games and especially multiplayer ones, but with Doom I actually found the story mode (What story? Just kill daemons) great fun to play.
Shadow warrior next?
(Support Rise of the triad too ;D)
Not really groundbraking (Score:5, Interesting)
This kind of tricks were more popular in the older days when you couldn't even wipe a screenful of data in one frame-time, much less render a frame in a straightforward matter
Today most coders rely on hadware speed to get away with things
Go code a realtime 60fps game on a 4 MHz cpu with a 15-cycle byte read from memory, you'll have to figure out the weirdest shit
compiled sprites, software pipelining, incremental rendering...
Re: (Score:1, Funny)
Cool story, gramps. Need someone to come over and reattach the onions to your belt?
Re: Not really groundbraking (Score:5, Funny)
I have a small shell script that does it for me
now get off my subnet
(i'm 36...)
(and i missed an 'e')
Re: Not really groundbraking (Score:1)
It's the only language they've heard, so that's what they learn and repeat. It's a positive feedback loop, and you're one half of it. You're also the one best equipped to break it, as you are the more mature one (hopefully).
Re: (Score:2)
Re: (Score:2, Interesting)
> compiled sprites,
You used to hang out on rec.games.programmer in the 90's as well ? :-)
90% of the /. readers probably don't even have a clue what that is. :-/
Ah, the days of self-modifying code to get high performance ...
Re: (Score:1)
Re:Not really groundbraking (Score:5, Interesting)
You'll probably enjoy this ... it shows how SQ3 rendered a frame piece by piece
Space Quest III art timelapse
https://www.youtube.com/watch?... [youtube.com]
Re: (Score:2)
That's a huge mindtrip. Why on earth did they store it like that I wonder? I would have assumed that RLE was been more efficient in space and render speed! I could see that being a format that the artists used for work in progress, but why use that in the final version? I'm incredibly curious now.
Re: Not really groundbraking (Score:1)
Guess: vectors take up even less space, and can be scaled at no extra cost.
Re: (Score:2)
After looking I was surprised that yes, they are smaller! Fascinating! Even, I presume, if you allow extra "colors" for stippling. But I have to disagree on the scaling thing. All the SCI games I've seen that were upscaled with third party tools look kinda... not good. Mainly when artists scribble with lines that produce good effects in the native resolution, but look like crayons scrawls if you scale them up to be rounded and smooth.
Oh well. I guess some games probably look better than others (yes Sp
Re: (Score:2)
> Why on earth did they store it like that I wonder?
It was optimized for space.
Remember Sierra started back on the Apple ][ where disk space was limited: 140 KB. When they switched to the IMB PC/jr storing a full 320x200 = 64,000 pixels is a _minimum_ of 8K compared to few hundred bytes to store the same scene.
> I would have assumed that RLE was been more efficient in space and render speed!
While RLE is extremely fast to decode it is still bloated compared to a poly-lines and/or polygon fill.
Re: (Score:2)
Interesting... I wonder if this means SQ3's graphics are, theoretically at least, resolution-free? They seem to be some kind of vector graphics, after all.
Re: (Score:2)
> I wonder if this means SQ3's graphics are, theoretically at least, resolution-free?
Yes, for the most part. It would be trivial to "normalize" the coordinates and then up-sample without general loss of precision.
As long as the final resolution isn't too large (*) the errors wouldn't be (too) noticeable.
(*) I'm not sure at what resolution the precision errors would start becoming noticeable. I would surmise that a scale factor of < 200 would be OK.
Re: (Score:1)
I wonder if that's a deliberate slowdown or just a really old PC. I seem to remember seeing screen paints like that sometimes on really slow hardware (not quite that slow, but you could see the paint-in happen).
Re:Not really groundbraking (Score:5, Insightful)
I can't tell if you're complimenting the Doom 2016 programmers or trying to say this stuff is easy compared to Back In The Day.
I *can* tell you that this stuff is not easy *at all*, and the fact that the game gets such good performance across such a wide range of hardware, while still maintaining a high level of visual fidelity on lower end machines, is impressive in its own right.
That they put in the effort to write a Vulkan renderer is itself proof that they're trying to squeeze as much performance out as possible, and not just lazily relying on the hardware to make up for slow/lazy/incompetent programming.
Re:Not really groundbraking (Score:5, Interesting)
I *can* tell you that this stuff is not easy *at all*, and the fact that the game gets such good performance across such a wide range of hardware, while still maintaining a high level of visual fidelity on lower end machines, is impressive in its own right.
This. The most impressive thing about Doom 2016 its not the way it looks (honestly, there're plenty of AAA games with comparable, if not better, graphics) but that it runs silk smooth on relatively underpowered hardware. You can consistently get 60 fps at 1440p on low-tier GPUs.
Re: (Score:2)
Deus Ex: Mankind divided.
Re: Not really groundbraking (Score:2)
Go read comments from angry 1080 founders edition users who can only get 30 fps at 4k? They blame the game for being poorly written
Re: (Score:2)
Doom has pretty high system requirements though, even though it doesn't look like anything special. If we're being honest, Carmack's technowizardry was only really relevant in the early 90s when people wanted to play FPS games on computers bought for DOS spreadsheets. The 3D accelerator made idtech largely obsolete, only remembered by inherited code in the likes of Source and Call of Duty. And they became obsolete as game developers the second Half-Life came out. Romero was right, it was about design not th
Re: (Score:3)
the mos 6510 in the c64 can do read-modify-write in 6 cycles and it is somewhat pipelined.
the saturn doesn't have such an addressing mode.
you would have to read a byte (15 cycles), load a byte constant in another register (5 cycles) and write the result (14 cycles)
so while the c64 is clocked lower, it can do it in 6 microseconds, the saturn needs 7.25 μs
plus, the MOS 6510 has lots *lots* more addressing modes than the saturn. There is no pre-post increment, no offsets, etc
You don't know what you
Re: (Score:3)
i even forgot to modify the value, which assuming is an arithmetic ALU op, would take 5 cycles, so the correct total duration is 8.5 μs, not 7.5 μs
Re: (Score:3)
Re: (Score:3)
Re: (Score:2)
Back in the original Doom you would need a 386 with at least 25mhz 4 megs of Ram and a VGA display. It usually took a while to render a full screen display. So there were many tricks with pallet color changing, pattern overlaying, and using a set of pre rendered material.
Sierra adventure games which were at its heyday during this time. Which offered a lot more detailed graphics, at the expense of waiting for every screen to load. So the excitement was getting to a new screen, each one rendered in high q
Re: (Score:2)
Good luck with that..
Re: (Score:2)
doom3's lighting was a pain.. It was nearly impossible to get decent looking lighting that didn't also kill performance...unless you were going for a dark scene. In many ways, the static lightmaps of the previous engines gave more realistic lighting and shadow, especially with later versions of the q3map compiler..
Re: (Score:2)
Looks good, but the geometry's fairly simple in that scene and there's only one or two light sources. Also, does that engine use a complete model like the OP I replied to suggested is needed?
I'm loving the Vulkan patch (Score:1)
Re: (Score:2)
I amazed at its 4K performance on a bottom-tier GTX 970. It runs incredibly well.
No Man's Sky, on the other hand — yikes.
Re: I'm loving the Vulkan patch (Score:2, Insightful)
What is bottom-tier about a high-end gtx 970 ?
Re: (Score:1)
Perhaps he meant that it has the stock cooler on it and isn't overclocked?
Re: (Score:2)
All this is true plus it is just about the minimum card capable of supporting 4K resolutions via HDMI 2.0.
Re: (Score:1)
If consoles didn't exist, then the PC market base wouldn't be any larger? Try again.
Zombies (Score:1)
Moribund artificially sustained tech, big fat evil hardware and software money lusting forces. How long until men recognize the utter superiority of the octree based work of Donald J. Meagher: http://goo.gl/sdjXVG
Bruce R. Dell's voxel rasterizer is a rediscovery of Meagher's late '70s early '80s discoveries. He had the idea of combining division hungry perspective projection with division free orthographic projection when the difference is negligible enough (e.g., not representable on a certain pixel grid):
Re: (Score:2)
I'm struggling to find any practical applications or demonstrations of this miracle tech. The Googles do nothing. Help me out.
Still too dark (Score:1)
Re: (Score:2)
.. presenting us a black screen and calling it a day.
I see what you did there. Nice!
Re: (Score:1)
Marvelous details (Score:2)
Re: (Score:1)
And all in vivid shades of dark brown
Zune.
Re: (Score:2)
It's a game about a marine killing demons from hell...on mars... What the hell did you expect? bright pinks and blues?
No Denuvo malware step? (Score:2)
It wouldn't be complete without including the time and resources taken by Denuvo malware.
Re: No Carmack? (Score:2, Informative)
Carmack is at Oculus now...
Re: (Score:2)
Which means probably no more GPL releases.
Re: (Score:1)
Re: No Carmack? (Score:1)
Who the hell has seriously thought AAA video games could come out of open source volunteers and the only barrier was the engine? Sounds like arguing with idiots or a strawman. The difficult part with producing modern large games has for a long time been the art resources. The games that cost millions of dollars to produce spend most of that money on an army of artists and a very small number of engine programmers. Similarly some solid open source engines have popped up on their own from hobby programmers,
Re: (Score:2)
Re: (Score:2)
The hardest and most expensive part of making a AAA-level game isn't the engine, it's the art assets and (to a slightly lesser extent) the gameplay code.
Re: (Score:3)
Nope. He pursued in other projects. Not everyone does the same thing forever.
Re: (Score:1)
Well you guys objected when we called you nazi scum, so we had to think up a new name...
National SOCIALIST WORKER PARTY is right wing now? All regimes with NAZI tactics and behaviours so far in the past have been socialist. Are you confusing fascists (Italian) with the NAZI? The latter grew out of the union movement and first met in gay bars. Hitler was being given female hormones by his doctor.
Re: (Score:2)
He never was any good at it to begin with, considering what other game devs had accomplished back then.
Who? Specific examples, please.
Re: No Carmack? (Score:2)
UU was indeed impressive... until Doom was released, which happened less than a year later.
To this day I can't believe there's people trying to downplay Carmack's contribution to 3D development and gaming in general.