Author Topic: Airwalk: keep/cull? After suddenly losing ground, walkers still walk once  (Read 499 times)

0 Members and 1 Guest are viewing this topic.

Offline Simon

  • Administrator
  • Posts: 2533
    • View Profile
    • Lix
Hi,

airwalk happens in Lemmings 1 and in Lix. I consider it a physics bug. Here are pictures taken in successive frames:





Explanation:
  • Many clustered walkers are immediately in front of the wall.
  • Assign imploder to one of the walkers. (It doesn't matter if you implode the first, last, or one in the middle.)
  • Physics update begins.
  • The imploder removes therrain. (Physics update terrain removers first, then skills that don't affect the terrain. This is why choice of walker to implode didn't matter.)
  • All walkers see the hole before they update.
  • (No check whether they have ground.)
  • All walkers notice open space ahead, thus walk one step ahead in the air.
  • All walkers notice the lack of ground, thus begin falling.
  • Physics update is finished, and the result is drawn to screen.
  • The fallers will eventually land on the ledge created by the imploder.
Problem: These walkers land on a ledge, but shouldn't be in the space over the ledge in the first place. It's weird that walkers react to the lack of wall immediately (thus can walk forward), but fall due to lack of ground only after airwaking once. It's also inconsistent with the general philosophy that terrain removers should immediately affect everybody in the same frame, in every way.

Proposal: Walkers should check for ground both before and after possibly walking forward. If they hover before the move, they immediately fall and don't move forward anymore.

Downsides of change: Walking is the most ubiquitous activity. If you have walkers in a digger hole, this change affects them as the digger breaks through. I haven't implemented any fix yet, thus haven't run the replay checker on this. Also, other activities might have similar bugs -- fixing only the walker in isolation might be inconsistent.

-- Simon
« Last Edit: October 02, 2018, 08:27:55 pm by Simon »