Search Unity

Doom 2016 making heavy use of floating geometery and visual trickery

Discussion in 'General Discussion' started by Lethn, Sep 6, 2018.

  1. Lethn

    Lethn

    Joined:
    May 18, 2015
    Posts:
    1,583


    I found this video fascinating to watch it's crazy how much floating geometry is used and how all these fancy camera angles and animations are just tricks of the eye, optical illusions. It makes me wonder just how many other games developers, especially the big publishers that like to boast about how amazing their games are, are hiding stuff.

    Have you guys found other examples of this in games that have surprised you? Skyrim etc. are obvious ones but Bethesda are pretty relaxed about letting players go where they shouldn't. I managed to glitch myself by accident in Planetside 2 underneath the terrain after dying and I saw that they had just intersected a bunch of models underneath the ground to make it look right to players rather than model it all cleanly.
     
  2. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    21,205
    All of them.

    I have never been surprised but I have been thoroughly amused. Here are a couple easy examples.

    https://www.pcgamer.com/heres-whats-happening-inside-fallout-3s-metro-train/
    http://fallout.wikia.com/wiki/Ron_the_Narrator
     
    Ony and hippocoder like this.
  3. BIGTIMEMASTER

    BIGTIMEMASTER

    Joined:
    Jun 1, 2017
    Posts:
    5,181
    This is how video games are made.

    You don't waste time and resources building stuff that isn't necessary. This is why Doom 2016 looks better than most games and runs better too.
     
    Ony, carking1996, RavenOfCode and 3 others like this.
  4. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
  5. Antypodish

    Antypodish

    Joined:
    Apr 29, 2014
    Posts:
    10,780
    Also Kerbal Space Program, with multiple cameras trickery.
     
  6. Murgilod

    Murgilod

    Joined:
    Nov 12, 2013
    Posts:
    10,162
    The basic premise of optimisation is doing the least amount of work possible for the same perceptible results, so yeah, this is pretty common.
     
    Joe-Censored, Martin_H and Antypodish like this.
  7. bart_the_13th

    bart_the_13th

    Joined:
    Jan 16, 2012
    Posts:
    498
    but why keeping the legs instead of removing them? player cant see them anyway
     
  8. Antypodish

    Antypodish

    Joined:
    Apr 29, 2014
    Posts:
    10,780
    Height reference I suppose.
     
  9. Lethn

    Lethn

    Joined:
    May 18, 2015
    Posts:
    1,583
    I just found it totally fascinating, like you say, it makes total sense if the player can't see it anyway, they're not going to give a crap, but it's crazy just how many developers use cheap tricks no matter how experienced they are. I was under the totally wrong impression you had to do all sorts of detail to get to the level they're at only to discover all the cheap tricks being used by games developers to save on time.

    It's also a good reference points for other newbies if they're under the same incorrect impression that I am that you have to do tons of work in the animation and so on to make something that looks good. It also goes to some way explaining why games like Star Citizen are taking so long to develop because they aren't using quite so many of these tricks and are going full detail.
     
  10. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    15,620
    I wouldn't call them "cheap tricks". There is literally no benefit to spending time creating geometry that won't be seen, but there is a cost in both time and performance. They're not doing this despite their experience, they're doing it because they're experienced.

    Rather than thinking of it as a "cheap trick" think of it as an optimisation. Your PC never has to cull out geometry that doesn't exist, and the developers don't have to spend time on stuff that won't be seen.
     
  11. Lethn

    Lethn

    Joined:
    May 18, 2015
    Posts:
    1,583
    Oh true, but I can't help but think of that when I compare it to what you see as the player :p I mean it's really impressive that they can make something so good with something so ridiculous. For example with isometric gaming I was truly amazed with the use of 2D backgrounds and 3D characters, that blew my mind.

    I just hadn't considered this before, just goes to show that my research into how games are made is worthwhile though.
     
    Ony and angrypenguin like this.
  12. Antypodish

    Antypodish

    Joined:
    Apr 29, 2014
    Posts:
    10,780
    Personally I don't like term "cheap trick". Knowing where to optimize and how, comes with knowledge and gained expertise.
    For example making simple sky box of stars, rather than generating every single star. Is very performant and seams obvious approach to take.

    Famus/infamus No Man's Sky uses lots of texture backgrounds (skyboxes). It is not that you see real stars, as you may think. And there is lot more of illusionist tricks used.

    Thing is, if you have multiplayer game, is a bit harder for certain "tricks". But still plenty space for them.
     
  13. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    6,493
    Actually hardcore player of the game has debunk this, what you see is the map view from that point of the universe, on another camera, so when you switch from third person to map view, you can see the same pattern of star when there is strong visual pattern like alignment. It's still a cheap trick as in the map is rendered to another camera in another coordinate system, and drawn after all the close geometry, so it looks like a skybox (you don't have enough distance to have paralax).
    https://www.reddit.com/r/NoMansSkyT...lar_alignment_that_shows_in_galactic_map_and/
    https://www.reddit.com/r/NoMansSkyT...h/skybox_stars_are_accurate_to_your_location/
    The problem is how they managed the sun, you can't fly toward it, and the movement when you are on ground is faked based on how you landed. That's no skybox, but clueless people will use words they don't understand.

    I guarantee you it's not the reason, at a cursory glance, it seems the game has been rebuild (technically) at least 3 times from scratch (when they exceed the first milestone, when they move to 64bits, when adding ship frame of reference...). They have a lot of hard problem to solve that mean rolling back quite frequently. And it's normal for dev. All dev know that game dev is u shape, with the middle of the u well being depression and uncertainty if the game will come out well, it's generally not fun until everything is put together and major problem get shot down.

    The problem with open dev, is that your stakeholder are a thousand of clueless psychopath who will kill you if the specular on spiderman cloth change. So you have to cheat to maintain the normal level of expectation, the way you do it is by hiding the back end and focusing on teh front end (asset graphics, easy visual stuff), which is why they have so much details. Game tend to wildely change during dev, that's how you solve problem, but with open dev, the specs has to be carefully presented to the clueless stakeholder because they will accuse you of scam, you are simply not allow to fail, so you have to stay vague and focus on lore or high level mechanics and goal. I guarantee you they cheat like everyone else, they just can't show it, that's BAD marketing, they will be eviscerated.

    I can tell you right away that the presentation about 64bits is a white lie, they say 64bits allows them to see the station from the planet, it's not, no gpu are 64bits, you still need multiple camera rendering, you can achieve the same with 32 bits hierarchical coordinate anyway. The benefit of 64bits is more subtle and less visually impactful, but they had to emulate the benefit with an easy digestible news in a visual way.

    No man's sky wasn't even open dev, so there was no stakeholder, and yet it was eviscerated because while most features where there, the people imagined something different, eventually those dev worked to match that vision.

    Keep looking at that youtube channel.
     
  14. Antypodish

    Antypodish

    Joined:
    Apr 29, 2014
    Posts:
    10,780
    Images show indeed constellations of closer stars "moving" with camera, which doesn't mean far background is not a skybox. Maybe not. But is not difficult to generate skybox, instead of rendering hundreds of tiny stars, for performance reason. Is nothing wrong with it. Either way it does what suppose to.

    But sun case, yes I have seen that too before. I think that is very disappointing. And landing on "rotating" planet. Well, what suppose to be.

    It is actually not difficult to do it. Even without rotating planet itself. I have done it, with few camera tricks. So you can't see the difference, that planet is always at 0 rotation, while backgrounds camera rotates and still can travel to other planets. ( In my project, I just focus on solar system ). Only thing need to offset rotation, are satellites / objects on the orbit of the planet.

    Yes people did imagine different. Different what was released, but not far different from what was initially advertised. So basically miss selling. And in the end, dev get what they
    deserved in form of bad reviews.
     
  15. BIGTIMEMASTER

    BIGTIMEMASTER

    Joined:
    Jun 1, 2017
    Posts:
    5,181
    Just make a game.

    Pretty quick you'll realize that the only way to make one is with "cheap tricks."
     
    xVergilx, Ony and Joe-Censored like this.
  16. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    6,493
    I mean gamer's skybox, not as in dev skybox :p gamer misuse term every time, when they mean skybox, they mean pre rendered image that does not match "reality" (which the planet surface from afar are). For us skybox is whatever distant rendering optimization we can do. They are not exactly the same concept. For the actual implementation in now man's sky, we can never be sure, like I said the star map is useable at any moment in the game, so the rendering of sun position is cache somewhere, and it's smaller to use that point cache than to use a 6*(texture resolution) cubemap that need to be high to have distinct point, ie consume a lot of memory that you would rather use in the voxel landscape they have.

    It's not hard to do technically, but it has some nasty gameplay implication on navigation, I was floored by their solution really, especially when you want game with constant planet hopping. Your frame of reference is constantly changing, it's hard to pin point place you want to go and the travel time is highly variable. Which is something the dev said focus test brought up, player where confuse.
     
    Antypodish likes this.
  17. Antypodish

    Antypodish

    Joined:
    Apr 29, 2014
    Posts:
    10,780
    While this is valid point, In my case I resolved it, by just making bigger hit box, to be able click on distance planet. Some of them are quite far / small, so as long visible, hitbox need be big enough, so I can click on it easily, while planets rotates. Not that planet spins like crazy ;)

    The case is not different than any moving units in RTS for example.
    You try follow mouse to click unit, or make square frame selection, by holding mouse.

    But maybe dev has experienced something else as well.
     
  18. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    6,493
    Of course if you are clicking instead of moving manually with the sticks, that's a different use case :p
    Personally I'll try time compression at the cost of less detail generation. I want a fast semi immersive arcade version of no man's sky with rpg town, field and dungeon.
     
    Antypodish likes this.
  19. Antypodish

    Antypodish

    Joined:
    Apr 29, 2014
    Posts:
    10,780
    That would be nice to see. Call for: Give freedom to modders ;)
     
    neoshaman likes this.
  20. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    6,493
    I need to figure out a quad tree system that satisfies me first...

    ...but I'm code locked, some times my brain freeze and refuse to process a problem, so I move to other code up until it melt down again, I don't like coding, especially when there is random access or constant destroying and creation like in tree traversal, it frak my brain for some reason. But since I don't like coding I front load all the identified difficulty to tackle very early, and jump around with some code distraction, else if I drop coding I'll have great difficulty to come back, I must keep coding to stay in the flow.

    Right now I'm doing (unnecessary?) code for pseudo relief mapping by replacing texture with function, which mean another thing I don't like, math, and also it's a domain where the amount of help you can find approach zero. If you have advice to intersect ray with parametric 3d surfaces, simple or not (like extruded piecemeal quadratic, or simple slopes) I'm taking, I need help!
     
  21. Antypodish

    Antypodish

    Joined:
    Apr 29, 2014
    Posts:
    10,780
    So whats wrong with existing dozens of quad trees solutions? From asset store, to GitHub, to other internet sources, with ready to go code?
     
  22. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    6,493
    understanding
     
  23. LaneFox

    LaneFox

    Joined:
    Jun 29, 2011
    Posts:
    7,537
    Games are made with smoke and mirrors.

    And coffee/tea.
     
    xVergilx and Antypodish like this.
  24. snacktime

    snacktime

    Joined:
    Apr 15, 2013
    Posts:
    3,356
    Trees vary too much by use case. There is no one size fits all. Good *and* generic is almost an oxymoron when it comes to trees or just spatial search generally. Which is IMO why good here is hard to find on say github. By the time it's really that good, it's so specific as to be usable by only a very small number of people.
     
    Antypodish likes this.
  25. Antypodish

    Antypodish

    Joined:
    Apr 29, 2014
    Posts:
    10,780
    Personally, if I struggle with something understanding, I tend to pick up what is existing already. Then try adapt if possible. Or simply use it as reference point to study mechanics. Then either try optimize it, making own, or stick to what I got. Either way, I try make such way, I can replace in future, for something more convenient.

    So maybe anything will work for you too.

    Hard to win isn't it? Either too simple, or too specific. :D
    Surely either way, scripts can be modified to desired requirements, with a bit of tinkering.
    I find sometimes easier to strip something down of features, rather than add. But it depends of course.

    I solid agree with first paragraph.
    But some would argue on second paragraph.
    And replace it with beer for example :p
     
  26. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    6,493
    Yeah but in my case it's a bit more complex, I understand the general concept very well, and have implemented vanilla version. But I need more than vanilla version, I need something that is integrated, and someone else code don't provide that too. I need it to work, but I also need it to drive various pcg system, like circulation generation, stateless npc history simulation, and know the impact it will have on cpu, gpu and memory so I can optimize it. Ie I need to make multiple system work together interdependently. Since nobody has made my game yet, I have nowhere to look at the specific as everything is generic.
     
    Antypodish likes this.
  27. Antypodish

    Antypodish

    Joined:
    Apr 29, 2014
    Posts:
    10,780
    I see what you heading too.
    Have you considered for that purpose ECS? But again, that is coding ... :)
     
  28. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    6,493
    Yeah ecs is both exciting and a nightmare, should be cool if what I do map to the code structure, it's when there is a mismatch my brain BSOD. It's not really about complexity, sometimes I can do complex things, but some of them goes against my thought so it froze, it doesn't help that my body as memory of me throwing itself to code up until I had spasm, I really burn me out on code, hence why I think I have brain freeze, the brain just nope out of this.

    But then I want to target low specs hardware, as I'm poor and know the struggle to not have a good machine to run things, no man's sky don't run on any platform I own, they are all low specs ...
     
  29. Antypodish

    Antypodish

    Joined:
    Apr 29, 2014
    Posts:
    10,780
    Well, yep, coding can be sometimes exhausting. In my case I look for some temp switch off, from time to time. Something brain dead ;)
     
  30. AndersMalmgren

    AndersMalmgren

    Joined:
    Aug 31, 2014
    Posts:
    5,358
    I'm playing Doom 3 VR which lets you move head in cut scenes which the orginal did not do. Pretty funny how much things that they do not do. For example if only the chest area is in camera the legs are not animated.
     
  31. Fera_KM

    Fera_KM

    Joined:
    Nov 7, 2013
    Posts:
    307
    Reminds me that I really wish Unity would have a buildt inn Matte Shadow shader
     
  32. konsic

    konsic

    Joined:
    Oct 19, 2015
    Posts:
    995
    What
    What is Matte Shadow shader ?


    Did you see this case study? It's really nicely written

    http://www.adriancourreges.com/blog/2016/09/09/doom-2016-graphics-study/

    I could make a separate thread but can someone explain what is the difference between id tech engine and Unity in terms on rendering ?
     
  33. Fera_KM

    Fera_KM

    Joined:
    Nov 7, 2013
    Posts:
    307
    Only shadows shader (without self shadowing), can find shaders like that on various git repos, so it's usually not a problem, just that I'm not always on my own computer, and ease of access.
     
  34. passerbycmc

    passerbycmc

    Joined:
    Feb 12, 2015
    Posts:
    1,741
    Games are just a big smoke and mirrors show, also it's not a cheap trick if you don't notice what is really going on. At that point it is a well executed trick.
     
  35. BIGTIMEMASTER

    BIGTIMEMASTER

    Joined:
    Jun 1, 2017
    Posts:
    5,181
    It's not even a trick... it's just the obvious way to build things.

    Like, cars used to be made out of solid steel. They were heavy as hell, and despite common misconception, they were much less safe than modern cars are that are composed of various materials, including plastics and "lower grade" metals.

    Are modern car manufacturers pulling cheap tricks? No, they are making better cars than ever by working smarter every year. It's just working smart. You look at a problem, you develop a solution with what you know. You don't have any preconceptions about "what the right way to do it" is. Because that's nonsense.
     
  36. Antypodish

    Antypodish

    Joined:
    Apr 29, 2014
    Posts:
    10,780
    There is a bit true to it. While care are made to be safe, they are made also, so parts "must" be replaced. Upsetting driver owner dents, are much easier to get this days. Older cars were more resistant. But that offtopic anyway ;)

    But yeah, why bother spending resources for full body blown character, if you never see it ;)
    That was and is advantage of 1st person, comparing to 3rd person cameras.

    In first person you can imagine to be anything, without even need a mesh. Dog, person, drone, space craft, unicorn.
     
  37. BIGTIMEMASTER

    BIGTIMEMASTER

    Joined:
    Jun 1, 2017
    Posts:
    5,181
    In Doom's case, they due have to have full body models for the multiplayer, but obviously in single player there is no reason to draw the mesh as it is unseen.

    About intersecting geometry in the terrain for the OP's FYI -- look up any basic environment modeling tutorials and you will understand this isn't anything like a cheap trick, it's just the smart and obvious way to do things.
     
  38. Antypodish

    Antypodish

    Joined:
    Apr 29, 2014
    Posts:
    10,780
    Similarly like storing pool of objects (i.e. bullets) in a corner of the map, rather than destroying and instantiating constatnly.