Skip to content

A creature stands idle after entering view, then jumps forward to catch up #272

Open

Description

@Mathih13

Expected. A creature's movement looks continuous to a client in view of it, and it engages a player who enters aggro range promptly, not after a multi-second delay.

Actual (at 87109e3c). Two causes remain from the investigation that split this issue off #252 (a third, no spline replay on a CREATE mid-leg, is already fixed).

The Gateway sheds a queued motion flush under deep egress, and a later leg supersedes the pending one in the same per-viewer slot (world_view.rs#L1810-L1822). The latest leg still reaches the client, but late: the client plays it from receipt, while the server has already advanced the mover past start_micros, so the next leg snaps the client forward.

Proximity aggro also runs on an eight-tick sense cadence, about four seconds at the 500 ms creature tick, while chase runs every tick once engaged (ai.rs#L428-L435). A player walking into aggro range can wait up to four seconds before the creature reacts.

How it shows. A creature under load stands idle, then visibly jumps to its real position on the next leg. Separately, a creature can let a player stand in aggro range for several seconds before it notices.

Fix direction. Decide whether a shed flush may be re-sent with its true start_micros so the client catches up at normal speed instead of replaying from receipt, or whether shedding should stop entirely for creature legs. For the sense cadence, either shorten SENSE_EVERY_N_TICKS or add a cheap proximity check that runs every tick. Verify with the stock 1.12 acceptance recording from #252: engage from rest, stop right after approach, kite in a straight line, with no multi-second idle followed by a compressed catch-up.

Activity

  1. Mathih13 commented on Sep 7, 2026

    @Mathih13
    ContributorAuthor

    Resident creature movement now replays after CREATE in merged PR #450. A viewer that enters during an active leg receives its current interpolated position and remaining duration. The change passed all seven checks and CodeRabbit review at head 153f55f.

    This completes finding 1. The issue remains open for the motion-flush shedding policy, proximity sensing cadence and the stated stock-client recording. No Realm was changed or client acceptance claimed.

  2. added
    P3someday / nice-to-have
    ready-for-humanNeeds a maintainer: a decision, a maintainer's Realm, or coordination
    on Oct 7, 2026
  3. changed the title [-]fix(gateway): creature spline relay shows idle-then-fast catch-up[/-] [+]A creature stands idle after entering view, then jumps forward to catch up[/+] on Oct 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    P3someday / nice-to-havebugSomething isn't workingready-for-humanNeeds a maintainer: a decision, a maintainer's Realm, or coordination

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions