Submission #6959: almostmatt1 & 38_ViTa_38's DOOM The Ultimate Doom "Episode 1" in 03:32.01

Doom
Episode 1
(Submitted: Episode 1)
(Submitted: doom.wad unknown)
XDRE 2.22
7421
35.0029869215506
0
Unknown
* Skill 3 * 1 players
almostmatt1
(Additionally: 38_ViTa_38)
Submitted by almostmatt1 on 12/8/2020 6:06 AM
Submission Comments
The Ultimate Doom - Episode 1 UV-Speed in 3:23.
The first 80 tics (2.31) seconds of this TAS were done by 38_ViTa_38, with a slight angle change not affecting overall movement and the addition of firing to manipulate subsequent RNG changed by almostmatt1. The rest was entirely done by almostmatt1. This TAS was completed on the 7th December 2020. These comments were written by almostmatt1.

Game objectives

  • Tools used: XDRE 2.22.
  • Complete the game as fast as possible on the Ultra-Violence difficulty setting. Kills, items and secrets are not required.
  • Primarily aims for in-game time rather than RTA.
  • Manipulates RNG.
  • Takes damage to save time.
  • Abuses programming errors.

Recorded with:

This demo was built frame-by-frame in XDRE 2.20 and XDRE 2.22, which allow for the frame-by-frame building of demos. The program has the useful functions of also allowing you to track your current exact position, momentum, speed travelled per tic (and in which direction), position of enemies and how they move, proximity to switches/doors/linedefs, and damage given on each frame, all necessary information for multiple tricks and optimisations. Demo playback was recorded using the vanilla-compatible source port Prboom-Plus 2.5.1.4.

Playback

This demo will play back on a vanilla-compatible source port. I recommend Crispy Doom or PrBoom-Plus, the most recent versions that can be found on dsdarchive.com. Use the command line: "yourexe.exe -iwad doom.wad -playdemo ep1x323.lmp". It should also play back on the original Ultimate Doom v1.9. Use the command line: "doom.exe -playdemo ep1x323.lmp". For general convenience and quality I recommend a source port. Note that the popular source ports ZDoom and GZDoom are not vanilla-compatible and will not work.

Comments

This demo is a 22 second IGT improvement to the previously completed Episode 1 UV-Speed TAS in 3:45 by Andrey Budko from 2006, a demo that isn't available on tasvideos.org but which can be found on dsdarchive.com and YouTube. In addition to a 22 second faster overall time, each individual level is faster by at least a second. If anyone is curious, it's also 2:08 faster than the current fastest non-TAS record.
RTA timing is traditionally not considered in the Doom community but for this submission I also completed the level intermission screens as quick as possible for a better RTA time. From the beginning of the demo to the final input to display the end time, this demo is 1,372 tics faster than Andrey Budkos 3:45 - though again, it must be emphasised that IGT is the traditional goal for Doom and was Andreys goal and intent, so tics saved isn't as important a metric as in-game time. Speaking of in-game time - seconds are rounded down, and those whole seconds are added up for the overall time. So, completing two levels in 10.9 seconds and 10.9 seconds will yield a time of 20 seconds, not 21.8.
UV-Speed is a category that aims to complete the game as fast as possible on the Ultra-Violence difficulty setting, akin to the more traditionally used "any%" in other games. Ultra-Violence isn't the highest difficulty setting (Nightmare! being the highest), but Ultra-Violence is by far the more active and historically relevant difficulty setting, and it was my intention to improve the existing UV-Speed record.

Tricks and glitches used

  1. Wallrunning and thingrunning - Running against walls, enemies, and objects like barrels and lamps temporarily increases speed (technically increases distance travelled without increasing momentum). Only available on certain walls and in certain directions. Done often and in all levels, often only for a few frames at a time.
  2. RNG manipulation - My shooting (sometimes at no target) and movement is sometimes done for the purpose of altering several things that are RNG dependant, including monster movement, damage dealt by monsters, damage dealt by the player, and the spread of the shotgun projectiles. Done often and in all levels.
  3. Momentum preservation - Under precise circumstances the player can maintain their speed while a door opens, allowing them to travel through it at a significantly higher speed. Done in all levels except e1m2 & e1m8.
  4. "0.000000 trick" - Similar to momentum preservation but functionally different, this allows you to maintain momentum (but at a lower speed) in multiple directions and is primarily useful for getting around corners quicker immediately after doors open. Done on e1m1, e1m2, e1m3, e1m5, e1m6 and e1m7. This trick is very precise and requires brute forcing tools to do it without losing speed.
  5. Void Glide - Under very special circumstances the player can enter the out-of-bounds area (referred to as "the void" in the Doom community). This is rarely possible and useful, but is used in e1m8.
  6. Elastic collision - redirects momentum from one direction to another. Only done once at the start of e1m1.
  7. Deliberate self-damage - a quick e1m8 time relies on low health.

Stage by stage comments

e1m1

The movement of the first 2.31 seconds was taken from an e1m1 No Monsters individual level demo by 38_ViTa_38. The movement in their portion of the demo consists of a brief barrel thingrun, then a north wallrun, then a diagonal north wallrun (different and much harder to do on a diagonal wall), then an elastic collision to redirect momentum, then a northeast diagonal wallrun, then the 0.000000 trick, and then a difficult positional manipulation to exceed the regular player momentum limit of 14.5 units per second while performing this trick - all in 80 frames. My (almostmatt1) best attempt at this section was 1 frame slower. After this there is a wallrun, momentum preservation trick and 0.000000 trick. RNG is manipulated to kill two enemies in the least number of shots, have enemies move out of my way, receive only one hit, and receive the minimum possible damage from that hit. There are faster individual level TASes of e1m1. One is of the No Monsters category and so is easier to navigate, and the fastest with monsters heavily relies on monsters damaging the player to save 4 frames. As IGT was my goal, I opted to lose the 4 frames and conserve health while still getting 7 seconds.

e1m2

Pretty straightforward. Some RNG manipulation with firing to receive less damage (again with IGT and not RTA time in mind).

e1m3

Some RNG manipulation was difficult, there are some tight corridors densely packed with enemies which are hard to optimally move through.

e1m4

Very straightforward.

e1m5

This was the most difficult and frustrating level to build as manipulating and navigating enemy movement, especially in the trivial-looking final room with the 3 pinkies, was very hard to do. I exit this level 1 frame later than is possible as this gave me more favourable RNG for a trick in the following level, where an enemy moves into a certain position and keeps a door open (saves 30 seconds).

e1m6

This level takes a different route than Andrey Budko did, since going out of my way to gather additional rockets for the (now skipped) e1m8 fight is no longer needed.

e1m7

This level has some of the ugliest movement at the end as I constantly adjust my angle between chaingun shots, so it's quite jagged to watch. An attempt to do this with less turning would have resulted in a time a few frames slower.

e1m8

This map is the most interesting as it contains a fairly rare trick, the aforementioned "void glide". Due to reasons far too technical to explain here, under certain conditions the game will increase your momentum to such an extent that you exit the map, if you're close enough to the edge of it. Regularly in e1m8, the player is teleported to a room in which they take constant damage and the level finishes when their health is low enough. The special effect of this room is extended into a portion of the out-of-bounds area and so when the player reaches it they take damage and exit the level, just as if they had completed the level the intended way. The TAS was routed to ensure I had 1 rocket with which to damage myself so that my health was low enough to complete the map on the first frame that I reach this special area.

Other comments

I have left 5 seconds of blank frames in the encoded demo above to allow plenty of time to show to final time. It also shows the "wipe screen effect" between levels, which is possible to disable in the source port I used to record the video, but I decided to leave it on to give more of a vanilla-true experience.
However, having read "...DOOM internal relay files (LMP) are no exception, we only accept those without blank frames at the end.", the file submitted, ep1x323.lmp, has only one frame of the final time screen. The encoded video contains absolutely no other alterations, it simply contains an additional 5 seconds of blank frames at the end. If anyone needs a demo with an extended end screen for encoding, let me know and I can easily sort that out for you. I hope I've gotten everything right with the submission process, if I have made any errors please let me know and I will fix them as soon as possible. Also, note that e1m9 (the secret level) was skipped and is not required for UV-Speed.
EDIT 11/12/2020: I'm adding the level stats for this TAS and the old TAS that this one improves, since the intermission screens go by a too fast to make out this information. Sorry, because of formatting it's not very easy to read, I'm working on a way to do something about that but thought I'd update the information anyway until I do.
3:45 TAS by Andrey Budko:

E1M1 - 0:08.97 (0:08) K: 1/29 I: 1/38 S: 0/3

E1M2 - 0:19.54 (0:27) K: 11/79 I: 1/42 S: 0/6

E1M3 - 0:31.69 (0:58) K: 39/131 I: 8/95 S: 0/7

E1M4 - 0:11.77 (1:09) K: 1/85 I: 3/45 S: 0/3

E1M5 - 0:36.89 (1:45) K: 35/131 I: 4/29 S: 0/9

E1M6 - 0:41.80 (2:26) K: 28/177 I: 14/113 S: 2/4

E1M7 - 0:57.97 (3:23) K: 59/150 I: 26/84 S: 1/4

E1M8 - 0:22.86 (3:45) K: 5/41 I: 0/3 S: 0/1

3:23 TAS, this one ("TS:" means time saved, first number is IGT, bracket is RTA):

E1M1 - 0:07.97 (0:07) K: 3/29 I: 2/38 S: 0/3 TS: 1 (1.00)

E1M2 - 0:18.54 (0:25) K: 8/79 I: 0/42 S: 0/6 TS: 1 (1.00)

E1M3 - 0:30.69 (0:55) K: 39/131 I: 8/95 S: 0/7 TS: 1 (1.00)

E1M4 - 0:10.57 (1:05) K: 2/85 I: 3/45 S: 0/3 TS: 1 (1.20)

E1M5 - 0:34.66 (1:39) K: 39/131 I: 2/29 S: 1/9 TS: 2 (2.23)

E1M6 - 0:36.97 (2:15) K: 30/177 I: 8/113 S: 1/4 TS: 5 (4.83)

E1M7 - 0:52.63 (3:07) K: 69/150 I: 17/84 S: 1/4 TS: 5 (5.34)

E1M8 - 0:16.77 (3:23) K: 8/41 I: 0/3 S: 0/1 TS: 6 (6.09)


slamo: Thank you for doing justice to what is arguably the most difficult Doom episode to speedrun. As someone who is somewhat familiar with the mechanics and tricks of Doom, the technical competence is very obvious. There are things that are obviously spectacular like the OOB in E1M8. There are also extremely difficult things that may not be obvious to the viewer, such as the skip at the end of E1M4, numerous micro-wallruns and thingruns, and relentless RNG manipulation to get damage rolls and move enemies. There was an improvement mentioned in the comments, but given the extreme technical complexity of the run, it's not really an issue.
Feedback was overwhelmingly positive. Accepting to Moons.
feos: Pub.
feos: Movie with extended input userfiles/info/68378703002771412
Last Edited by adelikat on 11/5/2023 6:25 PM
Page History Latest diff List referrers