Maribo Posted August 5, 2022 (edited) Welcome to the Doom Speed Demos Subforum! This forum is a central place to post any of your speedrun demos, whether they're going into various WAD-specific threads, or other places like the Failed Demo Attempts and Personal Best threads. This forum is regularly scraped by maintainers of the Doom Speed Demo Archive, so be aware that runs of valid compatibility for a given WAD will likely be picked up and uploaded. You can always feel free to opt out, and the easiest way to do this is by not including a readable text file with the demo. If you have an interest in recording and submitting runs for the archive, the first thing you should do is grab DSDA-Doom, which is the most recommended port for speedrunning. It maintains complete playback accuracy with the original executables, and includes a lot of useful quality-of-life features. Getting started recording a demo is simple. Two common methods would be using the DSDA-Launcher, or one of these batch files: bats.zip. These batch files, by default, will make a subfolder with your attempts inside. You can change the map by altering the warp= variable. Important: You should put your IWAD files (Doom, Doom2, TNT, Plutonia) inside the DSDA-Doom folder, so they will be detected and launch properly. For Mac or Linux users looking for an equivalent to these batch files: bashscripts.zip - originally offered in this thread, details over there. After you've recorded your demo, you should write up a .txt file to go with the demo. It doesn't have to be very long, just include relevant information like the version of DSDA-Doom you used, the wad name and map number, the time and category, and any comments you have about the run. Here is an example template: txt template.zip DSDA-Doom also has the ability to automatically generate a text file for the run, but you will have to play back an existing demo to use it. There is more information about doing this later in the thread. Next, you should check the naming scheme for the wad you ran, rename your demo file (lmp file extension) and the txt, select both of them and zip them together with the same name. Please submit .zip FILES ONLY, do not compress them into a .rar .7z or any other type other than a .zip file. Do not rename .rar .7z or other files into .zip files either. Zipping folders (rather than just the pair of files) is discouraged. However, if you wish to share extra stuff such as bonuses like interesting failed attempts, they are okay. The naming scheme is a short identifier taken from the wad name, the map number (and episode, if it is The Ultimate Doom), a category identifier, and the time. You can see the full list of identifiers at the bottom of the front page of DSDA. Here are a few examples: Spoiler Generally, the naming scheme will be something like this for The Ultimate Doom: e1m1-010.zip - Map 1 of Episode 1 of The Ultimate Doom, UV-Speed in 10 seconds. Some more examples: p2m7-019.zip - Map 7 of Episode 2 of The Ultimate Doom, Pacifist 19 seconds. r1h1o013.zip - Map 1 of Episode 1 of Return to Hadron, No Monsters in 13 seconds. For Doom 2, TNT: Evilution, and The Plutonia Experiment, they will look like this: lv01-054.zip - Map01 of Doom 2, UV-Max in 54 seconds. ("lv" as a wad code is a grandfathered format for Doom 2 demos. You will see similar other grandfathered codes for Doom 2 specifically, such as "nm" for nightmare runs. These were a product of the DOS era, which had a hard limit on how many characters a demo file could have in its name.) Some more examples: sy01n022.zip - Map01 of Syringe, Nightmare-Speed in 22 seconds. pl13-040.zip - Map13 of The Plutonia Experiment, UV-Speed in 40 seconds. Finally, you're ready to post your demo! If it's a record, go post it in the relevant thread (The Ultimate Doom, Doom 2, Final Doom), or if it's a Personal Best, go show it off in the Personal Best thread! Edited April 21, 2023 by Maribo 28 Share this post Link to post
Maribo Posted August 5, 2022 (edited) Extra info about DSDA-Doom, settings, launch arguments, etc. Here are some more in-depth details regarding DSDA-Doom, its settings, and usage. Settings: - most of these are already set to their recommended value, but these are here for convenience and posterity. Under General category: Spoiler Video - Vertical Sync - Set this to either *YES* or *NO*, depending on how it feels for you. Video - FPS Limit - If you play with an uncapped framerate or a capped framerate above 35, consider setting this to a value in multiples of 35 (70, 105, 140, etc) if you experience "stutter-y movement" or "lag". Mouse - Carry Fractional Tics: Consider turning this to *YES* if you feel that mouse movement is "laggy" or "inaccurate" when recording a demo, or playing with -shorttics enabled. Mouse - Vertical Mouse Movement: Set to *YES* if you want to vertical mouse movement to be off by default. You may still toggle it on and off with a key bind. Display Options - Use Extended HUD: Set to *YES*, and it will show the extra stats lines above the status bar. These include the elapsed time, kills, items, and secrets. Demo Settings - Strict Mode: Set to *YES* and DSDA-Doom will prevent you from doing things like accidentally entering cheat codes while recording a demo. Under Setup category: Spoiler Key Bindings - Toggles - Vertmouse: This keybind will toggle vertical mouse movement on and off. Vertical mouse movement is required for executing glides, so it can be useful to bind if you plan on doing them. You must still have your vertical mouse sensitivity set to anything higher than 0 for vertical mouse movement to work. Key Bindings - Misc - Restart Current Map: This keybind will restart the map and start a new demo recording, if you die you'll want to use this instead of pressing the 'use' key to respawn. Status Bar / HUD - Heads-Up Display - Report Revealed Secrets: Set to *YES* and a message will flash on screen + sound will play when you enter a secret sector. More Recording information: Here is a more generic batch file, made by Daerik: demo script.zip. A batch file is essentially an easier way to start a program through the command line, providing it with arguments to do specific things. In the case of speedrunning Doom, these arguments are things like setting the proper compatibility level, the skill level, warping to the map you want to run, and other stuff detailed below. This batch file is intended to be very easy to edit, where all you have to do is fill in the necessary information. All you have to do is fill it out, save it, then double click it to run it, and you'll be good to go. Here is a breakdown for each variable: set iwad= - set this to one of the iwads, most commonly one of: doom.wad / doom2.wad / tnt.wad / plutonia.wad set skill= - set this to a number from 1 to 5. The corresponding difficulties are: 1 = I'm Too Young To Die / 2 = Hey, Not Too Rough / 3 = Hurt Me Plenty / 4 = Ultra-Violence / 5 = Nightmare! - the most common ones you will set this to are 4 and 5. set warp= - set this to the map number (or the episode and map number, for wads based off of The Ultimate Doom), with a space between the episode and map number. set pwad= - set this to the name of the pwad, or leave it blank if you are running an iwad. set deh= - set this to the name of the dehacked file (.deh file extension) if the pwad uses one that is separate from the wad file itself. set complevel= - set this to the relevant compatibility level for the wad you're running. This can often be found in the txt file of the wad, either by being named directly or being named one of the following: vanilla or limit-removing = 2 for Doom 2, 3 for The Ultimate Doom, and 4 for TNT:Evilution and The Plutonia Experiment / boom or boom-compatible = 9 / MBF = 11 / MBF21 = 21. set name= set to whatever you wish to be the name of the demo. set additional= set to any additional parameters. Here is a short list of useful ones: Spoiler -analysis - will output an analysis txt file with information about the run and what category (or categories, if multiple) it qualifies as. -levelstat - will output a txt file with stats for the run such as time elapsed, kills, items, and secrets. Will output one line for each map, for episode or movie runs. -shorttics - enables shorttics movement when not recording a demo. shorttics are otherwise automatically enabled when recording demos. -stroller - automatically restricts movement in line with stroller requirements -time_all - will output a message in-game with exact times for pressing the use key and picking up keys. -nomusic - will disable music playback. Here are a couple of example batch files using this template: Cyberdreams MAP15 on Ultra-Violence, complevel 2, and load the external dehacked file: cy15.zip Deathless Episode 3 MAP05 on Ultra-Violence, complevel 3, and print an analysis text file: d3l5.zip Memento Mori MAP03 on Nightmare!, complevel 2, with music disabled: mm03.zip Sunlust MAP10 on Ultra-Violence, complevel 9, print a levelstat text file and an analysis text file: sl10.zip Playing back lmp files (Demos): It is recommended to associate files with the lmp extension with your DSDA-Doom; in order to do this, just double click on an lmp, then follow the standard menus to select your DSDA-Doom exe to launch it with. Additionally, you'll want to have the Use Windows Launcher option in the menus set to SMART; this will result in DSDA-Doom automatically launching demos with the right PWADs when it can determine which PWAD to use for sure and provide you a launcher menu to select playback parameters in other cases. You can also playback a demo from a batch file or the command line, using the -playdemo argument. Example: dsda-doom.exe -iwad doom.wad -playdemo p1m1-897.lmp You may also make use of demo playback to generate an automatic text file, using the -export_text_file argument. Example: dsda-doom.exe -iwad doom.wad -playdemo p1m1-897.lmp -export_text_file This will generate a txt file in a preset format provided by DSDA-Doom with information like the time and category. Edited February 23, 2023 by Maribo 16 Share this post Link to post
Maribo Posted August 5, 2022 (edited) Co-op Demos In order to create co-op demos, currently, you will need a separate source port from DSDA-Doom, as DSDA-Doom does not have co-op support at the moment. The current recommendation is Woof, as it has largely the same compatibility range support as DSDA-Doom does. You'll want the latest version of Woof (10+), as prior versions of the port with co-op support were unstable for demo recording. Otherwise, most of the settings listed above for DSDA-Doom still apply to Woof. For setting up co-op specifically, you will need two different kind of batch files; one for the host of the co-op session, and 1-3 for other players joining the session (classic Doom only supports co-op up to 4 players). Here's an example of a host batch file; woof_coop_server.zip - notably, you will need to provide the following extra arguments: * -server: this indicates that you are hosting the session * -nodes #: should be set from 2-4 to indicate how many players you expect in the session * -port ####: largely optional, but recommended to set to 2342 For other players, the required batch file arguments will depend on whether or not the co-op session is happening through the Internet (LAN example: woof_coop_autojoin_example.zip, Internet example: woof_coop_connect_example.zip). Here's an explanation of the arguments needed in either case: * -autojoin: in LAN, this just joins an existing co-op session * -connect {ip_address}: over the Internet, each player will need the host's IP address for connecting to their session. You can find this out at https://www.whatismyip.com/. The game mode settings will derive from the host, but all players' batch files should have the same complevel, wads, skill, etc., set to be on the safe side. For more information, please see the Multiplayer section on the Chocolate Doom wiki: https://www.chocolate-doom.org/wiki/index.php/Multiplayer. While the info in that section assumes Chocolate Doom, pretty much all of the info there also applies to Woof co-op. Edited October 4, 2022 by Maribo 17 Share this post Link to post
Maribo Posted August 5, 2022 Old links and other stuff of interest: Old welcome thread Daerik's DSDA-Doom usage guide DSDA Discord server The Next Iteration of DSDA Old DSDA-Doom development threads: Spoiler v0.24.3 and earlier v0.25.x v0.26.x v0.27.x Some context for this thread: Spoiler The old welcome thread is pretty much an impenetrable giant wall of text with information that is interesting but ultimately not really useful for the purpose of getting into speedrunning Doom in current year. The goal of this thread was to make a relatively quick guide for just getting in there and running the game, and then include extra info like all the esoteric settings and command line stuff that becomes more relevant AFTER you determine if you even like running the game. This is why it's kept to simply suggesting DSDA-Doom, nobody who wants to get into running a game wants to read an essay about how you need to use ZDoom for ZDoom wads, how Crispy is only for vanilla/limit-removing so you'll need to stick to complevel 2-4 wads, etc. Some credits: I wrote up most of this myself, with multiple suggestions and critiques from rd, Doomkid, vdgg, and dew. Pretty sure I adapted some stuff from old posts by Grazza. Daerik wrote the original guide for DSDA-Doom, I adapted it and updated it a bit. 4shockblast made the co-op section. I probably got a lot of other input from other runners in the DSDA server when I was posting the original drafts, (I can think of kraflab and Zero-Master at minimum) so thank you too if you said anything. 15 Share this post Link to post