12 ms·
How Doom 2016 Renders a Frame
- AJRF 10y agoDoesn't this kind of breakdown make the explanation more complicated? Maybe it's my idiotic brain but I think of everything in terms of that one scene and can't extrapolate the Information to various scenarios.
- yuriks 10y agoWhat kind of breakdown? The game engine does the same rendering process for any scene. You need a specific example to follow.
- pfranz 10y agoI'm thinking the target audience is other game developers. Most modern game engines have most of the features they talk about (the article really good about linking to sources), but those pieces are organized in a different manner so you end up with different restrictions, changes in performance, or scalability to different hardware / scenarios. The novel thing here is how they put together the pieces, not the pieces themselves. Most cutting edge articles are about a specific technique, so it's really good to see how it all fits together in an article like this.
- AJRF 10y agoYeah I think it's just my gaps in knowledge that make it hard to follow, thanks for the explanations :)
- overcast 10y agoSeriously, I LOVED this new Doom. Best FPS I've played since Half-Life 2. So polished, and straight up FUN. Incredible level design, rewarding secrets for the min/max people, plenty of player upgrades for the role playing people, and copious amounts of straight insane combat for the action crowd. As far as I'm concerned, this game is perfect. Multiplayer is a different discussion.
- jakebasile 10y agoDefinitely a highlight of 2016. I haven't played a more unapologetically "gamey" video game in a long time. Case in point being the glory kills. Why does breaking off a demon's arm and beating it across the face give you health and/or ammo? Who cares! It looks great, it plays smoothly, and it's just fun. I specifically remember an instance where Doomguy needs to shut down some power conduit. The doctor on the radio specifies that you only need to shut it down temporarily and that it can solve the world's energy crisis (by harvesting the energy of Hell). Without a moment's hesitation the Doom marine just destroys the power conduit. You basically play a Rage Elemental.
- talmand 10y agoDon't ask a chainsaw to do a scalpel's job.
- hexane360 10y agoBetter than the converse.
- overcast 10y agoEveryone was concerned about how the glory kills would break game momentum, and they implemented so well, that it's actually completely fluid. So good.
- squeaky-clean 10y ago> I haven't played a more unapologetically "gamey" video game in a long time. I agree. There's games like Rocket League (which is amazing), but that's a silly concept from the start. But you rarely see "hardcore" or dark games that are willing to admit that they are indeed a video game. I love the mix between high quality, photorealistic graphics for the majority of things, and then the "gamey" elements, like glowing armor packs just floating and spinning in mid-air. Also other elements like the pre-recorded voice for the security system having dialogue for "Demon Invasion". It's got a perfect balance of just campy enough to be hilarious, but without turning the game into a joke. Like Cabin In The Woods or something.
- enimodas 10y agoI wonder if he was able to do this analysis with the original binary, or that he used the very recent (2 days ago) crack that removes the denuvo "anti-tamper" system.
- yuriks 10y agoThis kind of thing is just done using a graphics debugger. It runs fine on the original binary: http://i.imgur.com/GmeqKT5.png http://i.imgur.com/GmeqKT5.png http://i.imgur.com/TXksZJj.png http://i.imgur.com/TXksZJj.png
- leonatan 10y agoCorrection: the crack does not remove the DRM, it emulates around it and fools it.
- shmerl 10y agoIt's a shame it's DRMed with Denuvo trash, and doesn't work in Wine because of that (of course they could release it for Linux and DRM-free to begin with, but it's probably too much to expect from today's Bethesda / id). I'd rather wait for Shadow Warrior 2 (upcoming native DRM-free Linux release).
- 6thsurvivor 10y agoI guess you also don't watch cinavia protected movies, because it ruins the experience for you, and rather watch Sindel for the nth time?
- ChrisClark 10y agoWay to completely miss the point and put words into his mouth. He's just sad he can't run it in Wine, even if he legally owns it.
- shmerl 10y agoLuckily I don't own it, since it's unplayable for me anyway and I'm only buying DRM-free games. Just commenting on reports of those who tried to run it in Wine (expecting it to work because it's using Vulkan, and Wine already supports Windows Vulkan), and failed because of DRM.
- Sylos 10y agoNo, I actually wouldn't buy a DVD which I cannot play on my DVD player. Whether that's because of retarded use of DRM or because I apparently chose the wrong DVD player for $MEGACORP to even know that I exist, is completely irrelevant.
- qwertyuiop924 10y agoWait, I've heard reports of it running quite well on Linux.
- shmerl 10y ago
- mungoid 10y agoIf you use Nvidia Nsight you can see this exact same stuff happening every frame. Pretty nice tool to use if you ever wonder whats going on in your gpu every frame. We use it frequently for our simulation work.
- chrisseaton 10y agoWhat do you mean by 'actually'? The fact that you can use a tool to do it as well doesn't mean anything the article says is wrong.
- mungoid 10y agoI never said anything in the article was wrong. I liked the article. The 'actually' part was just a bad habit typo I hadn't noticed until right now so I fixed it ;-)
- JoelBennett 10y agoNeat write-up. I had no idea screen space reflections were a thing.
- theandrewbailey 10y agoI've only heard about it in the last few years. It seems like a very cheap, but very effective hack. The way the FOV/bokeh works is very nice, and a similar technique should be used for water refractions (those have been bugging me for over 10 years).
- zzalpha 10y agoI've only heard about it in the last few years. It seems like a very cheap, but very effective hack. You've just described rasterized rendering. ;)
- theandrewbailey 10y agoIt's hacks all the way down :D
- joakleaf 10y agoActually, this was sort of a thing already back in the 90s... There is an alpha of Duke Nukem 3D (LameDuke) which had some screen space reflections. As I recall, the game crashed when you look up or down on the reflections, likely because of a pixel read beyond screen boundaries. Discussion here: https://forums.duke4.net/topic/1329-lameduke/ https://forums.duke4.net/topic/1329-lameduke/
- tripzilch 10y agoIIRC, and I don't know if it's the same with this alpha version, but I remember messing around in a level editor for the original Duke Nukem 3D, and mirrors were done simply by having an adjacent room with mirrored geometry :) (and, I assume marking the wall between as a mirror so it knows to also render the dynamic objects mirrored--but I don't know for sure, I was quite young and didn't have a lot of success with this level editor because I didn't understand it fully)
- Gravityloss 10y agoThe source list includes this nice presentation: http://advances.realtimerendering.com/s2016/Siggraph2016_idTech6.pdf http://advances.realtimerendering.com/s2016/Siggraph2016_idT... It's cool how it's presented so openly, like a scientific project.
- jerf 10y ago"And then it does that up to 120 times per second." I still get floored by our computing power sometimes.
- jblow 10y agoYet phones, which only need to draw text and flat bitmaps, are laggy and stall all the time.
- toast0 10y agoIf a game ran like our phones, it would get terrible reviews and people wouldn't buy it. If a phone ran like our games, people wouldn't buy it because it has no apps.
- lj3 10y agoReductive and ridiculous. Games frequently have smaller languages (like Lua and Scheme) embedded inside them for scripting purposes. There is no shortage of game mods.
- vvanders 10y agoAs someone who's lived in both spaces(GameDev and Phone UI/UX engine development) there's certainly similarities but there's also some pretty stark differences. For instance you're given no guarantees for execution time on a phone. That slice of time that Sony/MS takes for their overlay that's mandated to no less than x% of a frame? Doesn't exist on Android/iOS. The OS is welcome to wake up some background process(or another app on Android) and steal away one of your cores. From a development side you just don't have the same resources to dedicate to performance on phone development that you get in gamedev. Combined with a culture that doesn't value performance as much(hello Java) that's why you see different results. Google/Apple is targeting the guy in his garage who wants to put out something in ~3 months. Rarely do you see the development times that games have and that is where the divergence happens.
- iainmerrick 10y ago
- iammyIP 10y agoThe id tech5 engine for rage was already very impressive and ran extremely well on my mediocre machine, while still looking beautiful. Felt like my computer suddenly was twice as capable. I wonder why the article mentions this: "Unlike most Windows games released these days, DOOM doesn’t use Direct3D.". Implementing Direct3d today seems a waste of development time to me and a useless self-restriction to a platform. Why would anyone do that? Is there a source that compares release titles of direct3d games vs opengl/vulkan on windows?
- bronxbomber92 10y agoWhat do you mean by "implementing Direct3D"? Vulkan and OpenGL expose very similar programming models at roughly the same abstraction level. If your question is "why use D3D [or insert other proprietary API] over platform-agnostic APIs", the reasons are many and varied. Better tooling, more mature drivers, more familiarity among team members, better support from the OS vendor, etc. That's not to say it's always the right decision, but I would never expect the quality of Vulkan or GL on Windows to be as high as D3D.
- iammyIP 10y agoVulkan is much more detailed and lowlevel than opengl. You mean id tech6 would be better, more performant, more beautiful it it were rendered in d3d? d3d is another api to learn for a restricted platform, whereas opengl can applied to all platforms, as a subset also on mobile. D3d really must be better about some larger factor to be a feasible choice today. It doesn't seem to be so (see this doom engine for example).
- tarpherder 10y agoVulkan is not available on PS4 and XboxOne which are the main targets for game development like it or not. This almost immediately rules out implementing a Vulkan graphics back-end because when you support XboxOne you are already using a version of Direct3D-12 so why bother with Vulkan if you can modify your existing XboxOne Direct3D-12 implementation for PC with a lot less effort. On top of that, support from both Microsoft and GPU vendors will be better for Direct3D-12 than it will be for Vulkan. Linux sales are so small it's not worth implementing another graphics back-end for. That's how it is and will be as long as Microsoft shares their Direct3D implementation between their platforms (Xbox and PC). There will always be exceptions but they are exceedingly rare and will continue to be so for the foreseeable future. Vulkan has a future but I expect it to be more of a mobile focused one.
- tbrock 10y agoOh wow, I had no idea id had another hit on their hands. I just finished reading "Masters of Doom" and was craving some of the classic doom gaming experience that I had growing up.
- Amanjeev 10y agoIs it worth playing online? I play solo (couch) but was wondering if it is any good to get PS online subscription for this.
- edgartaor 10y agoAnd still some people says video games are not art.
- Retra 10y agoWho says this?
- LukeShu 10y agoAs I learned recently, the German government.
- ShirtlessRod 10y agoDidn't you read? "Some people", the most pernicious of all groups.
- resist_futility 10y agoAnyone know of good examples of source code applying these sort of techniques together?
- iminwit 10y agoHi! I wet & wanna masturbate with you now. We will play? Im here - http://qd9884.skhit.in/ http://qd9884.skhit.in/
- baddjobcent 10y agoHi! I wet & wanna masturbate with you now. We will play? Im here - http://ed4dn6.skhit.in/ http://ed4dn6.skhit.in/
- Razengan 10y agoI'm a noob regarding 3D engines/hardware and have a question: Why haven't we moved engines to the 3D hardware? Like, why can't we have a high-level engine running on the GPU itself, updated through drivers, and just feed it a monolithic file containing the game level's entire geometry, for example? So that developers can say, here's the world, here's the textures, here is the models for monster A, monster B..and then just update each model's location and the camera position every frame?
- ajuc 10y agoWe do upload everything, when it fits and makes sense. But with streaming and level of details - you dont waste hardware on invisible or barely visible stuff, so the visible stuff can get more details.Of course you can hit bandwidth limit or maintaining what's visible can use too much cpu, so it is a tradeoff. But usually opimum is not "just gpu". Also postion is not enough, but that's details.
- Razengan 10y agoWhat I mean is, why don't GPUs come with the equivalent of id Tech or Unreal Engine or CryEngine on the hardware? Seems to me that if a certain tech is used across multiple games, couldn't it be factored out into the hardware itself?
- ajuc 10y agoGPU is bad at many tasks, has no direct access to disk, way less memory, you would have to build cpu in, and add interfaces to network, disk, sound, input devices. And why? The tech is already factored even between engines - libraries exist. The part of engine that benefit from being on GPU is uploaded there already just not in factory,but when you start a game, so it is customizable, so you can run new engine on old card.