All Playtest Notes

Monster AI Fixes and a Code-Review Sweep

· playtest, combat, systems, ui


Nine RulesVersion bumps this week (172 → 181), and almost all of them come from a full code review of the engine. The review found several monsters that weren't doing what the Player Guide says they do. Most of those are on depths 8–10, so this week the deep floors play differently from last week, even though no new content was added. There's also a terrain-generation fix for the drowned and emberworks floors, a smaller town, and a long tail of UI, audio, and website fixes.

If you're certifying runs: anything recorded against last week's build will not replay clean against this one. Expected, not a bug.

The quickest way to reach most of this is playtest mode: launch with --start-depth 8 (or 9, or 10) and you start on that floor with a random loadout.

Priority this week

  • Depths 8–10 combat. Thurs, jotun, manticores, cyclopes, wyrms, fomorians, gorgons and ifrits all changed how they fight. Does the deep end now feel hard-but-fair, or did it get unfair? Tell us which creature and what happened.
  • Charges hurt more now. A charging wyvern, hound, Minotaur, cyclops or fomorian now carries its venom, mire or armor-sundering on the slam itself. Is the charge something you can see coming and play around, or does it feel like a hit you couldn't avoid?
  • Drowned and emberworks rooms (depths 7–10). More of these rooms now get their chasms and cover. Look out for a room you can't get across, stairs you can't reach, or a fight that's impossible because of the layout.

Fixed

Thurs and jotun impale again (GH #585). These two giants (depth 8+) are meant to stab you from two tiles away with a long spear, but they never did. They always shot or backed off instead. Now, when one is exactly two tiles away in a straight line or a pure diagonal, with a clear view of you, it impales you for melee damage. If you step next to it, it backs one tile away along the same line to set up the next stab. Test: --start-depth 8 and find one. Stand two tiles away in a straight line, then two tiles away off the line (a knight's-move offset). Watch for: a stab from somewhere that isn't exactly two tiles in a straight line or diagonal, a stab through a wall or a corner, or a giant that still only shoots when you're lined up two tiles away.

Charging giants shoot first (GH #587). The manticore (depth 8+) and the cyclops, wyrm and fomorian (depth 10) are meant to shoot from range and charge only when a clear lane opens up. Instead, whenever their charge was ready they walked toward you and only fired while the charge was recharging. Now they shoot whenever they have a shot, back off if you close in, and still charge the moment you give them a straight lane. Test: fight a manticore in an open room and keep yourself off its straight lines. Then step into a line with it. Watch for: a giant walking at you while it has a clear shot, or one that won't charge down an open lane at all.

Cornered archers with a melee attack now swing (GH #586). The gorgon and ifrit (depth 9+) and the Chimera boss have a strong melee attack, but when cornered next to you they kept shooting point-blank for much less damage. Now, when you're directly next to one (up, down, left or right, not diagonal) and it can't back away, it hits you in melee. The same goes for the cyclops, fomorian and manticore while their charge is recharging. If there's room to back off, they still do that first. Test: corner a gorgon in a dead end or a corridor and stand right next to it. Then stand diagonally next to it. Watch for: a cornered gorgon still shooting point-blank from a straight-adjacent tile, or one that swings when it had an open tile to retreat to.

Charges carry the charger's on-hit effects (GH #588). A charge's slam used to deal damage and nothing else, so the creatures whose whole threat is the opening charge never applied their effects with it. Now the slam applies the same effects as a normal hit: the wyvern (depth 7+) and the Nuckelavee boss poison you, the hound (depth 5+) and the Catoblepas boss mire you, and the Minotaur, cyclops, fomorian and Baphomet can sunder your armor. Crashing you into a wall doesn't apply them a second time. Test: get charged by a hound on depth 5–6 while wearing armor, then by a wyvern on depth 7. Check your status line and armor after each slam. Watch for: a status that's applied twice from one charge, a sunder on bare skin or elven chain (both should be immune), or a slam that lands with no status from a creature that should apply one.

A spear only stops a charge if you're actually facing it (GH #593). A spear or war-spear stops a charge that comes at your front, which is the reason to turn and face the lane (with Ctrl+direction). With the Combat Awareness training, a spear stopped charges from every direction, including from behind. Now you have to be facing the charge, even with Combat Awareness. Combat Awareness still prevents the charge's flanking bonus. Test: buy Combat Awareness from the Trainer (it's on offer once you've reached depth 4), wield a spear, and let a gnoll or brute charge you from the side, then from the front. Watch for: the side charge still being stopped, or a front charge getting through.

Two Guards both get their strike (GH #626). Guard creatures (hobgoblins at depth 4+, behemoths at depth 10) hit you when you step away from them. If you were next to two of them, Riposte or the Cinder Band's thorns killed the first one, and the second one silently skipped its strike. This favoured you, but it was a bug. Now both strike. Test: with Riposte (from the Trainer or a potion of spite), step away from two hobgoblins at once while the first is badly hurt. Watch for: only one strike in the log when two Guards were next to you and the first one died.

Drowned and emberworks rooms get their chasms and cover (GH #606). On depths 7–10, a room that already had mire or fire in it often lost the chasm or cover the floor theme rolled for it, because the layout check treated mud and fire as walls. Those rooms now keep their features. On every floor, the same check now also makes sure stairs, open doors and the Heart inside a room can't be cut off. Test: play through depths 7–10 and look at room layouts. Watch for: any room you can't cross, a staircase or the Heart you can't reach on foot, or a monster spawned somewhere it can't reach you or you can't reach it.

A death in the Hollow now leaves a grave (GH #627). A hero who died in the Hollow (from poison or a bad potion, say) was recorded on "depth 11", where graves are never placed, so the next hero could never claim their blessing. A Hollow death now leaves its grave on depth 10. Profiles that already have one of these deaths get the grave moved to depth 10 too. Test: if you've ever died in the Hollow, look for that hero's grave on depth 10. Or, from --start-depth 10, go down into the Hollow while poisoned and let it finish you. Watch for: that hero missing from depth 10, or their grave somewhere other than depth 10.

Every action you take now says something (GH #589). A lot of commands used to fail silently: attacking something out of reach, a diagonal step without Diagonal Step, using the stairs when you're not on them, re-equipping what you're already wearing, opening something that isn't a door. Now each one prints a short line in the log saying why nothing happened. Test: press keys that shouldn't work and read the log. Watch for: a key press that still does nothing with no log line, two lines for one refusal, or a refusal costing you a turn.

Leaving a replay offers your suspended run again (GH #644). If you had a suspended run and watched a replay, the name-entry screen after the replay didn't show the "Resume — depth N" button. Test: suspend a run, watch the week's best run from the title screen, press Esc to leave. Watch for: the Resume button missing.

Weekly challenge buttons can't hijack your run (GH #643). If you clicked "Play This Week's Challenge" or "Watch the Week's Best Run" and then started a normal run before the website answered, the late reply could pull you back to name entry or swap your run for a replay. Descend now says "Still fetching…" until the reply arrives, and a reply that arrives late is ignored. Test: click either button and press Enter straight away, especially on a slow connection. Watch for: being thrown out of a run you'd already started.

Added / changed

The town is smaller and has no boneyard (GH #580). Rimhold no longer has a row of graves along its north edge for your fallen heroes. It had no mechanics and took up space. The town layout is packed a little tighter as a result, so buildings won't be where they were last week. Graves at each hero's death depth, and the names in the Hollow, are unchanged. Test: walk the whole town. Watch for: a building, signpost or townsperson you can't reach, a torch post sitting in a wall, or a grave still showing up in town.

The Tavern has its sign and the Barkeep has a portrait (GH #569). Last week's Tavern now has a hanging sign over the door, and the Barkeep has his own sprite. Watch for: a missing sign or a Barkeep still shown as a plain letter.

Combat sound cleanup (GH #615). Hitting enemies with Shockwave or your own charge used to also play the "an enemy hits you" clang. Now you only hear the ability's sound. Watch for: that clang on a hit you dealt.

Fewer messages about things you can't see (GH #622). The log used to report a creature off screen waking up (for example, from a poison tick) or resisting magic. Those lines now only appear when you can see the creature. Watch for: "jolts awake" for something you can't see, or a zap whose result never shows up in the log.

Smoother menus (GH #645, #646). The game now does less work every frame, and the Settings panel and Player Guide no longer re-read your profile from disk on every redraw. Watch for: the HUD, action bar or inventory showing something out of date after you act, or Settings or the Guide's Seeker tab showing old values.

Also landed

On the website: weekly leaderboard ties are now broken by who submitted first (GH #654), runs submitted just as the site redeployed no longer get stuck at "Pending" (GH #652), very large or very long run uploads get a clear rejection instead of hanging (GH #659), and the weekly challenge's seed no longer depends on the server's locale (GH #658). The Player Guide's "Open X →" links no longer clip their text (GH #616). The labyrinth autoplay bot now goes after the depth-10 boss instead of idling (GH #595). The rest of this week was internal cleanup that you shouldn't be able to notice; if something feels different and isn't listed here, please report it.

Found something? Esc → Report a Bug/Feature, same as always.