-
Notifications
You must be signed in to change notification settings - Fork 0
Spyro: AHT 3 ‐ Extra Logic Information
This page is only necessary if you want to know more about the internal logic used by the randomizer when generating seeds. This is very lengthy (as if the other pages aren't already long enough, I know...) for the sake of thoroughness, mostly so that I can refer back to this to remind myself of the logic used before too much time passes and it all leaves my brain 😂
The 2.0 update introduced 2 different complete, game-wide redesigns of the logical regions used by the randomizer to split up both item locations and "gem events", which are internal locations (the player does not normally see them) that inform the randomizer how many gems are accessible to the player. I tried to use a mentality of "only expect the player to do what an average player would consider doing" but it's very hard to judge that, as someone who has played way too much AHT in recent history.
This is a listing of all internal region names used in the randomizer. In most cases, the names inform what areas of the level they include. Each one has a series of "entrances" which define which other regions can connect to it, as well as what logical conditions/requirements exist for that entrance. This works in both directions so that open world mode can be supported.
- Dragon Village: DVEntry, DVGnastyCave, DVByrdLower, DVByrdUpper, DVLabSecret, DVHunterPreGlide, DVHunterPostGlide, DVOutsideBallGadget, and DVTunnelToCroc.
- Crocovile Swamp: CSPyramidAndTemple, CSWest, CSInsideTemple, CSInsideTempleElectric, CSEast, CSEastPoles, CSTree, CSAboveElder, and CSFredneck.
- Dragonfly Falls: DFBallGadget, DFEntry, DFSteepCanyon, DFAfterVultures, DFLGDoorEntry, DFLGDoorShop, DFElderStatue, DFCoveShop, DFCoveAboveShop, DFCove, and DFHunter.
- Coastal Remains: CREntry, CRWateryTomb, CRPiranhas, CRLGDoor, CRCannon, CRWindmills, CRCloudyElevator, CROttoPool, and CRWest.
- Cloudy Domain: CDEntry, CDCenter, CDOutsideElder, CDInsideElder, CRNorthEast, CDNorthWest, CDSouthWest, CDEndlessPlatforms, CDTallestTowerLower, CDTallestTowerUpper, and CDBallGadget.
- Sunken Ruins: SREntry, SRSwim1, SRSwim2, SRAfterSwim2, SRDepthsEntry, SRDepthsUpper, SRDepthsLower, SRToxicSwim1, SRToxicSwim2, SRToxicSwimAbove, SRToxicRise, and SRReturnToStart.
- Frostbite Village: FVEntry1, FVRedChamber, FVElectricGate, FVHeadingToCamp, FVIcyCamp, FVIcyCampUpper, FVReturnFromIC, FVEntry2, FVLGDoorEntry, FVLGDoorDJ, FVLGDoorGlide, and FVEast.
- Gloomy Glacier: GGEntry. Full level is one region as there are no logical blockers to doing the full level. as Hunter.
- Ice Citadel: ICCourtyardLower, ICCourtyardUpper, ICPastWaterGate, ICElderRoom, ICSuperchargeShop, ICUseSupercharge, ICDrawbridge, ICRoyal, ICRoyalBack, ICRoyalCannon, and ICRoyalToCourtyard.
- Stormy Beach: SBEntryLower, SBShop, SBEntryUpper, and SBCaveUpper.
- Molten Mount: MMEntryUpper, MMEntryLower, MMVillage, MMVillageImps, MMPostVillage, MMAfterPoles, MMBridgeEntry, MMBridge, MMBridgePoles, MMPostBridge, MMLumberEntry, MMNorth, MMLumber, MMPostLumber, and MMNorthEast.
- Magma Falls: MFtEntry, MFtCenter, MFtSouth, MFtWallKickLower, MFtWallKickUpper, MFtBallGadgetEntry, MFBallGadget, MFbEntry, MFbSouthEast, MFbBeforeImpRoom, MFbImpRoom, and MFbSparxShop.
- Dark Mine: DMEntry, DMLGDoor, DMAfterRocks, DMCaged, DMAfterCaged, DMBeforeIcePoles, DMSeeSaw, DMSeeSawShop, and DMGreenPoles.
- Red's Laboratory: RLEntry, RLCenter, RLSouthWest, RLMechaRed, RLNorthEast1, RLNorthEast2, RLNorthEast2Above, RLNorthEast3, RLNorthEast4, RLNorthWest1, RLNorthWest2, RLSouthEast1, RLSouthEast2, and RLSouthEast3.
A few things I decided on while doing the above region research were noteworthy enough that I left notes to mention them here:
- Accessing the center area of Magma Falls Top (going from MFtEntry -> MFtCenter) requires charge to defeat the rock monster, even though you could in theory double jump around him if careful.
- The upper courtyard area of Ice Citadel (going from ICCourtyardLower -> ICCourtyardUpper) requires double jump, even though it's possible to reach the upper area without it if you're careful about your jump aiming.
- The cannon in Frostbite Village near Icy Camp does not require glide to get to, because you can double jump from next to the large cannonball. It's a bit tight, but doable enough IMO.
-
- On a related note, there are some situations where a jump is too far to make with double jump but no glide, but could be made if the player charges out of the double jump. These situations are not accounted for logically - it should always expect glide if in doubt.
I made a number of assumptions while doing the gem logic research process, and also made some tradeoffs at points where I settled for one logical requirement when it might be tough for the average player or might be tighter than it needs to be, all in the name of simplifying the overall logic. I tried to be consistent but some edge cases simply justified being edge cases. Below is, in no particular order, various notes I left to myself to include on this wiki page that fit this category:
- The orange crabs and metal chests in Otto's Pool in Coastal Remains aren't considered accessible until you have the pool filled, because to assume otherwise would risk them becoming missable gems if you don't have swim before filling the pool.
- In all cases, I assumed the player would not use double jump to harm or kill enemies, even if they are frozen with ice breath first. Enemies require only a combination of breaths and charge, ever. Containers (baskets, chests, etc.) utilize any valid move, including double jumping to break them.
-
- There are some oddball cases of containers you can't break with double jump (due to a ceiling) but could break with shockwave, but shockwave in general is not accounted for.
- Supercharge is never used as an expected method for killing enemies. It is only ever used to break armored chests and things behind reinforced doors.
- All instances of fire imps which appear in the game expect the player to have water or ice breath to deal with them, even if they could be double jumped over or gone under. This was to be consistent, since the majority of fire imps are quite hard for a casual player to avoid using water/ice on.
- Some enemies in Icy Wilderness are very inconsistent in how many gems they drop when killed. The primary offender to this are yeti. However, he ice monster near the drawbridge in Ice Citadel and some skeletons in Gloomy Glacier are also quite inconsistent.
- The room in Magma Falls Top which has you wall kicking does not expect the player to need Double Jump to access the gems there. It simplified the logic rules a ton, because as long as the player has at least one breath (specifically fire if wanting the firework), they can reach the gems without Double Jump. The Light Gem needs Double Jump, though.
- The start of Magma Falls Bottom does not require the player to have Double Jump until at the Dark Gem, even though some of the jumps across the platforms are a bit tight. Like the above, this significantly simplified the logic enough to be justifiable to me.
- The small gnorc at the end of Dark Mine which is constantly shooting at rats or the player is never expected to be killed by the player. It's possible to, but it's extremely awkward and difficult at times, and would've been a nightmare to program in logically, so I chose not to.