Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

id Tech 1 games: Logic updates (Feb '25) #4677

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

KScl
Copy link
Contributor

@KScl KScl commented Feb 22, 2025

What is this fixing or adding?

The following logical changes have been made:

  • Across Doom 1993 and Doom 2, any items that are accessible in Ultra-Violence from the start of the level without putting the player in any danger are now considered in logic when that level is first received, without needing any weapons available. This is intended to give generation more possible outs for bad placements.
    • This affects the following maps in Doom 1993:
      • Toxin Refinery (E1M3): 1 location.
      • Command Control (E1M4): 1 location.
      • Computer Station (E1M7): 1 location.
      • Deimos Lab (E2M4): 1 location.
      • Tower of Babel (E2M8): 1 location.
      • Unholy Cathedral (E3M5): 1 location.
    • This affects the following maps in Doom 2:
      • The Waste Tunnels (MAP05): 2 locations.
      • Dead Simple (MAP07): 2 locations.
      • The Pit (MAP09): 1 location.
      • Refueling Base (MAP10): 1 location.
      • Nirvana (MAP21): 1 location, except see below.
      • Icon of Sin (MAP30): 9 locations.
      • Grosse (MAP32): 2 locations.
  • Doom 2 has had some more significant logical adjustments made.
    • The following Pro tricks have been added to Pro logic:
      • Circle of Death (MAP11): Lowering the exit wall without the Red key by hitting the switch to do so from the nukage. This makes three items previously locked behind the Red key available early, as well as the exit.
      • Suburbs (MAP16): Reaching the exit without any keys, as the gap between the pillar and the wall is large enough to let you through if you position yourself well. While multiple other squeeze glides exist (for example, you can skip the Yellow key in MAP21 by using one), this one is significantly easier than the rest; it does not require much precision, nor does it require vertical mouse movement.
      • Nirvana (MAP21): Skipping the Blue key, as there is a gigantic gap between the bars that attempt to block you.
      • The Chasm (MAP24): Skipping the Blue key by going extremely far through the nukage and finding one of a couple specific teleporters is now considered a Pro trick, and standard logic now expects the key to be obtained.
    • The following levels have had other logic adjustments:
      • The Waste Tunnels (MAP05): Requirements lowered to Shotgun + Super Shotgun + (Chaingun | Plasma gun).
      • The Crusher (MAP06): Requirements lowered to Shotgun + (Chaingun | Plasma gun) for areas immediately accessible. Going beyond the Blue key door also requires Super Shotgun.
      • The Factory (MAP12): The outdoors area, and the little room to the right of where you start, are accessible in sphere 1. These three items are all easily obtainable with only the pistol. The remaining items that are not in the central area are accessible with (Super Shotgun | Plasma gun), while the items in that area are accessible with Super Shotgun + Chaingun + (Plasma gun | BFG9000). This fixes Episode 2 not having an available sphere 1, and allows solo Episode 2 games.
      • Nirvana (MAP21): As above, the item in the starting room is accessible in sphere 1. Every other item that doesn't require a key is accessible with (Super Shotgun | Plasma gun). The room in which you use the Yellow key is accessible with Super Shotgun + Chaingun + (Plasma gun | BFG9000). This fixes Episode 3 not having an available sphere 1, and allows solo Episode 3 games.
      • The Catacombs (MAP22): The four items in the opening room only require (Shotgun | Super Shotgun | Plasma gun). The rest of the level is as before.
      • Bloodfalls (MAP25): Requirements lowered to Shotgun + Super Shotgun + Chaingun, as this level is unusually easy for its placement in the game. Progressing past the Blue key door additionally requires (Rocket launcher | Plasma gun | BFG9000) solely to deal with the Arch-vile at the end of the level.
      • Wolfenstein (MAP31): Requirements lowered to Chaingun + (Shotgun | Super Shotgun). This is closer to what the game expects from a non-secret hunting player from a pistol start.
  • The following logic bugs in Heretic have been fixed:
    • Quay (E5M3): An item in a Blue key locked hallway was previously marked as being in the "Main" region, thus considered to be accessible without that key. It has been moved to the appropriate "Blue" region.
    • Courtyard (E5M4): Logic previously assumed you could reach the Wings of Wrath from the opening room, when that isn't actually possible. Changing this moved some items previously in the "Main" region into a new "Green" region, and items previously in the "Kakis" (Yellow OR Green) are now in a "Yellow" region instead. Fixes Bug: Heretic logic for E5M4 Silver Shield 2 (Kakis region) is NOT green OR yellow, but just yellow. #4662.
  • For known problematic solo episodes, some additional special cases have been added.
    • Doom 1993, Episode 3: One of either the Shotgun or Chaingun is placed early. Slough of Despair (E3M2) is given as an additional starting level.
    • Doom 2, Episode 3: One of either the Super Shotgun or Plasma gun is placed early.
    • Heretic, Episode 1: The Docks (E1M1) - Yellow key is placed early.
  • The following levels (and thus, their items and locations) were renamed, due to typos or other oddities:
    • Barrels o Fun (MAP23) -> Barrels o' Fun (MAP23)
    • Wolfenstein2 (MAP31) -> Wolfenstein (MAP31)
    • Grosse2 (MAP32) -> Grosse (MAP32)
    • D'Sparil'S Keep (E3M8) -> D'Sparil's Keep (E3M8)
    • The Aquifier (E3M9) -> The Aquifer (E3M9)

The end result of all of this is that Doom 2 can now handle YAMLs that do not include Episode 1, and generation failures across all three games are significantly less likely than they were before.

How was this tested?

Many, many test generations, thanks to the fuzzer.

@github-actions github-actions bot added the waiting-on: peer-review Issue/PR has not been reviewed by enough people yet. label Feb 22, 2025
@Exempt-Medic Exempt-Medic added is: enhancement Issues requesting new features or pull requests implementing new features. is: bug/fix Issues that are reporting bugs or pull requests that are fixing bugs. labels Feb 22, 2025
@thecnoNSMB
Copy link

thecnoNSMB commented Feb 22, 2025

  • Across Doom 1993 and Doom 2, any items that are accessible in Ultra-Violence from the start of the level without putting the player in any danger are now considered in logic when that level is first received, without needing any weapons available. This is intended to give generation more possible outs for bad placements.

    • This affects the following maps in Doom 1993:

      • Toxin Refinery (E1M3): 1 location.

What location is this? It seems like you have to fight through a bunch of shotgunners (with vanilla monsters) to reach anything.

@KScl
Copy link
Contributor Author

KScl commented Feb 23, 2025

What location is this? It seems like you have to fight through a bunch of shotgunners (with vanilla monsters) to reach anything.

There's a shotgun in the room you start in, in skills 1/2. It's always present as an AP item.

Copy link
Contributor

@palex00 palex00 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This review is purely from a quantitive fuzzer analysis POV.

I reported the errors for DOOM 1993, DOOM II and Heretic and this PR was made to address those. I will list the initial error rate and what it went down to, every instance was 1000 fully random YAMLs:

DOOM (1993): 21 -> 3
DOOM II: 66 -> 3
Heretic: 6 -> 0

This is an incredible improvment! Especially DOOM II had a higher failure rate than 66 initially because of a setting that basically fails gen 50/50. The 66 was achieved with a modified apworld by Exempt-Medic. So in reality, the numbers are even better.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
is: bug/fix Issues that are reporting bugs or pull requests that are fixing bugs. is: enhancement Issues requesting new features or pull requests implementing new features. waiting-on: peer-review Issue/PR has not been reviewed by enough people yet.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Bug: Heretic logic for E5M4 Silver Shield 2 (Kakis region) is NOT green OR yellow, but just yellow.
4 participants