Slashdot Mirror


A Very Detailed Dissection of a Frame From DOOM (adriancourreges.com)

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."

54 of 113 comments (clear)

  1. Re: No Carmack? by Anonymous Coward · · Score: 2, Informative

    Carmack is at Oculus now...

  2. And Grand Theft Auto V and Supreme Commander... by Anonymous Coward · · Score: 5, Informative

    The same site also posted detailed looks at Grand Theft Auto V, Supreme Commander, and Deux Ex: Human Revolution earlier this year.

  3. Wow. by basecastula+ · · Score: 2

    Very detailed indeed. Definitely over my head.

    1. Re:Wow. by donaldm · · 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.

      --
      There ain't no such thing as proprietary standards only proprietary formats. Standards are by definition open.
    2. Re:Wow. by aliquis · · 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)

  4. Re:No Carmack? by antdude · · Score: 2

    Nope. He pursued in other projects. Not everyone does the same thing forever.

    --
    Ant(Dude) @ Quality Foraged Links (AQFL.net) & The Ant Farm (antfarm.ma.cx / antfarm.home.dhs.org).
  5. Re: No Carmack? by Pseudonym · · Score: 1

    Which means probably no more GPL releases.

    --
    sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
  6. Not really groundbraking by gTsiros · · 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...

    --
    Looking for people to chat about multicopters, coding, music. skype: gtsiros
    1. Re:Not really groundbraking by Lunix+Nutcase · · Score: 1, Funny

      Cool story, gramps. Need someone to come over and reattach the onions to your belt?

    2. Re: Not really groundbraking by gTsiros · · Score: 4, 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')

      --
      Looking for people to chat about multicopters, coding, music. skype: gtsiros
    3. Re:Not really groundbraking by UnknownSoldier · · Score: 1, 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 ...

    4. Re:Not really groundbraking by UnknownSoldier · · Score: 4, 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?...

    5. Re:Not really groundbraking by blocked_lol · · 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.

    6. Re:Not really groundbraking by Sowelu · · Score: 1

      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.

    7. Re: Not really groundbraking by Anonymous Coward · · 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).

    8. Re: Not really groundbraking by Anonymous Coward · · Score: 1

      Guess: vectors take up even less space, and can be scaled at no extra cost.

    9. Re:Not really groundbraking by UnknownSoldier · · Score: 1

      > 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.

    10. Re:Not really groundbraking by Lisandro · · Score: 4, 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.

    11. Re:Not really groundbraking by gTsiros · · Score: 2

      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 are talking about. Go away.

      --
      Looking for people to chat about multicopters, coding, music. skype: gtsiros
    12. Re:Not really groundbraking by gTsiros · · Score: 2

      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

      --
      Looking for people to chat about multicopters, coding, music. skype: gtsiros
    13. Re:Not really groundbraking by TheRaven64 · · Score: 2

      ARM's Mali GPU also does a trick in hardware that's similar to one of the things listed here. It stores a hash of every square region in the frame buffer and only writes back the new value to RAM if it's changed. The power cost of communicating with the DRAM is far more than the cost of computing the hash, so if you get a modest hit rate then you end up saving a noticeable amount of power.

      --
      I am TheRaven on Soylent News
    14. Re:Not really groundbraking by stealth_finger · · Score: 1

      Whoah, chill out.

      --
      Wanna buy a shirt?
      https://www.redbubble.com/people/stealthfinger/shop?asc=u
    15. Re:Not really groundbraking by Nemyst · · Score: 2

      Eh. Old games had to work around poor performance and lack of hardware acceleration, but their graphical fidelity goal was also laughably low. As long as pixels were on the screen in what roughly looked like something, it was good to go. Today's games could never work without graphics acceleration, but that isn't to say they're easy or simple to do. It's fine if you don't grasp the algorithmic complexity of things such as texture atlasing or tiled rendering, but don't imply that they're easy stuff compared to the old 2D stuff.

    16. Re:Not really groundbraking by jellomizer · · Score: 1

      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 quality and spend hours on that screen to see what secretes it may hold, or hints. But these systems were so slow that either you needed to do a lot of extra tricks to make the game play fast while getting rid of detail. Or you leave the detail and you alter the game so you take as much advantage of that limitation.

      --
      If something is so important that you feel the need to post it on the internet... It probably isn't that important.
    17. Re:Not really groundbraking by ultranova · · Score: 1

      You'll probably enjoy this ... it shows how SQ3 rendered a frame piece by piece

      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.

      --

      Forget magic. Any technology distinguishable from divine power is insufficiently advanced.

    18. Re:Not really groundbraking by phorm · · 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).

    19. Re:Not really groundbraking by Lisandro · · Score: 1

      Deus Ex: Mankind divided.

    20. Re:Not really groundbraking by UnknownSoldier · · Score: 1

      > 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.

    21. Re:Not really groundbraking by drsquare · · Score: 1

      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 the engine.

    22. Re: Not really groundbraking by Sowelu · · Score: 1

      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 Space Quest, no Quest for Glory) and it's all a matter of taste anyway.

    23. Re: Not really groundbraking by Billly+Gates · · Score: 1

      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

    24. Re:Not really groundbraking by ScottMitting · · Score: 1

      I couldn't remember my old account so I connected my facebook just to be able to say: YES YES YES omg did the word "compiled sprites" bring me back to newsgroups and dreams directed by Michael Abrash and such :)

  7. I'm loving the Vulkan patch by Anonymous Coward · · Score: 1

    I've been Playing Doom at 1440p with maxed out settings on a three year old graphics card and consistently getting over 100 frames per second. I was lucky to keep it running a solid 60 FPS at those settings before the Vulkan patch. Seems like upgrading to 4K gaming will be happening sooner than I thought it would so long as more studios are able to replicate the success of Doom rendering via Vulkan.

    1. Re:I'm loving the Vulkan patch by Purity+Of+Essence · · Score: 1

      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.

      --
      +0 Meh
    2. Re: I'm loving the Vulkan patch by Anonymous Coward · · Score: 2, Insightful

      What is bottom-tier about a high-end gtx 970 ?

    3. Re: I'm loving the Vulkan patch by Anonymous Coward · · Score: 1

      Perhaps he meant that it has the stock cooler on it and isn't overclocked?

    4. Re:I'm loving the Vulkan patch by Anonymous Coward · · Score: 1

      If consoles didn't exist, then the PC market base wouldn't be any larger? Try again.

    5. Re: I'm loving the Vulkan patch by Purity+Of+Essence · · Score: 1

      All this is true plus it is just about the minimum card capable of supporting 4K resolutions via HDMI 2.0.

      --
      +0 Meh
  8. Re:The lighting sucks by epyT-R · · Score: 1

    Good luck with that..

  9. Zombies by Anonymous Coward · · 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): https://www.google.com/patents/WO2014043735A1

    Boundary representation should have died 25 years ago. But you love making NVIDIA, bad researchers, Carmack and such rich.
    The same holds for VR goggles, they are a perpetual failure that can only make you sick, dumb, debased and worthy of death when looked at. Dell's Holoverse is way better.

    1. Re:Zombies by Purity+Of+Essence · · Score: 1

      I'm struggling to find any practical applications or demonstrations of this miracle tech. The Googles do nothing. Help me out.

      --
      +0 Meh
  10. Re: No Carmack? by Lisandro · · Score: 1

    He never was any good at it to begin with, considering what other game devs had accomplished back then.

    Who? Specific examples, please.

  11. Re: No Carmack? by Lisandro · · Score: 1

    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.

  12. Re:Still too dark by Buchenskjoll · · Score: 1

    .. presenting us a black screen and calling it a day.

    I see what you did there. Nice!

    --
    -- Make America hate again!
  13. Marvelous details by SpaghettiPattern · · Score: 1

    Edge of technology. Marvelous details. And all in vivid shades of dark brown. Yay!

    --

    I hadn't the slightest objection to his spending his time planning massacres for the bourgeoisie... (P.G. Wodehouse)
    1. Re:Marvelous details by aliquis · · Score: 1

      And all in vivid shades of dark brown

      Zune.

    2. Re:Marvelous details by epyT-R · · Score: 1

      It's a game about a marine killing demons from hell...on mars... What the hell did you expect? bright pinks and blues?

  14. Re: No Carmack? by Anonymous Coward · · 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, as the engine, while somewhat difficult, is not the resource intensive part of a game. Open source engines are useful for simpler, free games that don't need a lot of art and where the engine would otherwise be the main barrier, and for helping small game businesses start up that can afford a couple artists but not multiple programmers.

  15. Re: No Carmack? by 110010001000 · · Score: 2

    This is true for some software, but not all. Not all types of software are equal. Games take a lot of money and people to produce. It is unlikely that "free" software will succeed in that area. However for IMPORTANT software, the GPL works because there is some funding available. There is one saving grace here: digital computers are not going to improve at the same rate they have in the past. The AAA titles you play now will be very similar to the ones you play 10 years from now, simply because processor speed isn't increasing at a high rate.

  16. No Denuvo malware step? by sethstorm · · Score: 1

    It wouldn't be complete without including the time and resources taken by Denuvo malware.

    --
    Twitter supports and protects racists - by smearing their critics with the "Hate Speech" label.
  17. Re:No Carmack? by aristotle-dude · · 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.

    --
    Jesus was a compassionate social conservative who called individuals to sin no more.
  18. Re:The lighting sucks by epyT-R · · Score: 1

    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..

  19. Re:The lighting sucks by epyT-R · · Score: 1

    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?

  20. Re: No Carmack? by Pseudonym · · Score: 1

    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.

    --
    sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});