A Climbable Ladder




Vanilla Doom uses all kinds of constructs to go from one height to another, such as stairs, lifts, etc. And on some occasion a ladder is simulated with a set of very narrow steps. But that does not look very convincingly like a ladder.

Enter GZDoom with its ability to render 3d sectors. Constructing the ladder itself is quite straightforward. Where it becomes interesting is in the implementation of the climbing action. Several mappers came up with options like a variation of the action special ThrustThingZ, or swimmable sector, or using SetPlayerProperty. While these approaches do make the player "climb" the ladder, they do feel somewhat less believable of climbing a ladder.




Ladder 1

This approach uses 3D sectors for offsetting the rungs of the ladder, akin to actual steps.

rung_offset (83K)

Untitled (180K)

As one can see, the lowest rung is closest to the front of the ladder and consecutive rungs are offset towards the back. Now, when ascending the ladder it gives the impression of climbing upwards and also being able to stop midways.




3-10-TITLES (26K)

One drawback is that the ladder must be wider than the player's bounding box, ca 33 mu

3-10-box (14K)

or the player will not be able to climb the ladder.


Example PWAD for Ladder 1




Ladder 2

I first encountered this approach in Rex's Paranoid Map03, which uses 2 sets of 3D floors, one set for rungs placed inline

3d-10b-rung-sector (3K)

3d-10b-rungs (72K)

and another set of invisible 3D floors to facilitate the climbing action.

3d-10-ladder-sectors (9K)

ingame (194K)




3d-10-TITLES (25K)

The advantage of this method is that the ladder can be quite small and narrow, for example

ingame3 (264K)

When constructing the step sectors in front of the ladder, you have to pay attention to the opacity of the linedef textures,

3d-10-opacity2 (22K)

to make them invisible.

3d-101b-lowest-step (137K)

Example PWAD for Ladder 2


Kappes Buur
July 2018
My other tutorials