| ▲ | rob74 7 hours ago | ||||||||||||||||||||||
This is taking a lot of inspiration from Doom, but the actual raycasting engine is more like Doom's predecessors, the most well-known of which is probably Wolfenstein 3D: perpendicular walls, constant floor and ceiling height. Wolf3D didn't have textured floors and ceilings because of performance reasons, but several other similar games had them. Doom and IIRC Duke Nukem as well used a BSP engine which was much more flexible (walls could intersect at any angle, variable floor and ceiling heights), although the levels were still "flat" (you couldn't have several "stories" inside a level, e.g. you couldn't design a bridge that you could walk over and under). | |||||||||||||||||||||||
| ▲ | badsectoracula 6 hours ago | parent | next [-] | ||||||||||||||||||||||
> Duke Nukem as well used a BSP engine The Build engine didn't use BSP, it treated connections between sectors as portals and rasterized the walls as (90 degree rotated) trapezoids while performing clipping against those portals. This allowed it to have dynamic wall geometry (e.g. moving trains, rotating light fixtures, etc) as well as "room-over-room" setups as long as you couldn't see both rooms at the same time (in both Blood and Shadow Warrior they found a workaround for it allowing to create more "3D" spaces by making identically shaped sectors with the floor of one sector acting as a portal to the ceiling of the other sector - supposedly this wasn't "natively" supported by the engine, but it was flexible enough for the game studios who used it -without even having access to the source- to do it themselves). The first level of Duke Nukem 3D does use a few Build tricks - e.g. another one is that sprites can be "axis aligned" instead of following the camera and they can also have collision - this can be used to create rudimentary 3D geometry by treating each sprite as an axis aligned quad and in the first level it is used to make a bridge between two buildings (right before the level exit button). | |||||||||||||||||||||||
| |||||||||||||||||||||||
| ▲ | bluedino 6 hours ago | parent | prev | next [-] | ||||||||||||||||||||||
> Wolf3D didn't have textured floors and ceilings because of performance reasons, but several other similar games had them Blake Stone Rise of the Triad used later versions of the Wolf3D engine and had textured floors/ceilings > Doom and IIRC Duke Nukem as well used a BSP engine which was much more flexible Duke Nukem (Build engine) did not use BSP | |||||||||||||||||||||||
| ▲ | torginus 2 hours ago | parent | prev | next [-] | ||||||||||||||||||||||
With regard to floors, afaik even DOOM didn't do them correctly. With vertical walls, the perspective divide needs to be done only once per column of pixels for a given wall segment. For floors, unfortunately there's no such luxury, and if I remember correctly DOOM subdivided floors into patches, and only did proper perspective at the corners, and interpolated inbetween. | |||||||||||||||||||||||
| |||||||||||||||||||||||
| ▲ | Grumbledour 7 hours ago | parent | prev | next [-] | ||||||||||||||||||||||
Later on, in Shadow Warrior, you could even do that, i think they used portals to implement it and i remeber it was a pain to set up in the editor. | |||||||||||||||||||||||
| |||||||||||||||||||||||
| ▲ | scrumper 7 hours ago | parent | prev [-] | ||||||||||||||||||||||
I thought at first it was just a skinned Wolfenstein 3D. Which is grossly unfair. A lot of work here. | |||||||||||||||||||||||