• TimeSquirrel@kbin.social
      link
      fedilink
      arrow-up
      11
      ·
      edit-2
      3 months ago

      Also, this’ll blow your mind too, Doom wasn’t actually 3D. It was a clever trick involving the lack of the ability to look up and down. They used some sort of algorithm (I forget how it works exactly) to turn the 2D walls, doors, and platforms that appear from the top-down view in the map into vertical stacks of lines that “look” like 3D objects in front of you. The sprites are also all just 2D projections overlayed onto the game.

      This system introduced all kinds of wierd quirks in the game, like the trippy effect you get when you activate no-clipping and clip through the edge of the map.

      • dual_sport_dork@lemmy.world
        link
        fedilink
        English
        arrow-up
        7
        ·
        3 months ago

        Like for instance, monsters and other sprite objects in the original incarnation of the Doom engine have infinite height. So you can’t step on top of, or over, any monsters if e.g. you are on a ledge high above them. That’s because they’re 2D objects, and their vertical position on the screen is largely only cosmetic. This is why you can’t run under a Cacodemon, for instance.

        “Actors” (monsters, etc.) in Doom do have defined heights, but presumably for speed purposes the engine ignores this except for a small subset of checks, namely for projectile collision and checking whether a monster can enter a sector or if the ceiling height is too low, and for crush damage.

        This was rectified in later versions of the Doom engine as well as most source ports. By the time Heretic came out (which is just chock-a-block full of flying enemies and also allows the player to fly with a powerup) monsters no longer had infinite height.

      • barsoap@lemm.ee
        link
        fedilink
        English
        arrow-up
        4
        ·
        3 months ago

        Most notably perspective only gets calculated on the horizontal axis, vertically there is no perspective projection. Playing the OG graphics with mouse gets trippy fast because of that. Doom doesn’t use much verticality to hide it. Duke Nukem level design uses it more and it’s noticeable but still tolerable. Modern level design with that kind of funk, forget it.

        • frezik@midwest.social
          link
          fedilink
          English
          arrow-up
          4
          ·
          3 months ago

          I learned recently that the Jedi Engine for the original Dark Forces had an additional trick. You could have a hallway over another hallway–which Doom cannot–but you can’t see both hallways at the same time. So there might be a bridge over a gorge, but the level design forces it so it’s a covered bridge, and you wouldn’t have an angle where you could see inside the bridge and down into the gorge.

          • barsoap@lemm.ee
            link
            fedilink
            English
            arrow-up
            2
            ·
            edit-2
            3 months ago

            Duke Nukem can do that, too, both it and Dark Forces use portal engines while Doom is a BSP engine. With a portal engine you’re not bound to a single global coordinate system, you can make things pass through each other.

            Not actually a feature of the renderer you can do the same using modern rendering tech, though I can’t off the top of my head think of a game that uses it. Certainly none of the big game engines support it out of the box. You can still do it by changing levels and it wouldn’t be hard to do something half-way convincing in the Source engine (Half-Life, Portal, etc, the Valve thing), quick level loading by mere movement is one of its core features, but it isn’t quite as seamless as a true portal engine would be.

    • DdCno1@kbin.social
      link
      fedilink
      arrow-up
      5
      ·
      3 months ago

      Here’s a video that explains the limitations of the DOOM engine and with it also briefly how the rendering part of it works (from 4:08 onward) in a very accessible manner:

      https://youtu.be/ZYGJQqhMN1U

      If you want a more in-depth explanation with a history lesson on top (still accessible, but much heavier), there’s this excellent video:

      https://youtu.be/hYMZsMMlubg