Skip to content

Mythic Masters walk together: a full party costs about 13 ms a frame (15 rigged walkers), draw far friends cheaper #3704

Closed

Description

@QuinnsCode

Measured by the two-page journey (apps/mythic-masters/test/together.test.ts, from #3676) on the office Mac:

frame time
one friend drawn 16.5 ms
a full party (five friends, each with their two followers: 15 rigged beasts) 29.9 ms

Another run under a judge's load measured 36 ms for the full party. So a full party drops the open world from 60 fps to about 30.

Each friend and follower is a Walker3d (src/world/walker3d.ts): a full puppet with its own stand-in fighter, updated every frame in drawFriends (src/world/view.ts).

Likely cheaper, in order:

  • Draw a friend's followers only within about 40 m, and as the capsule beyond that.
  • Update far friends' puppets every other frame.
  • Share skinned meshes between walkers of the same creature.

This overlaps the frame-budget climb, #3664 (Cosmo, src/world/), so it's best taken there or right after it, since both edit the world's frame loop. Done when the two-page journey's full-party line reads under 20 ms on the office Mac, and its assert is tightened to match.

Activity

  1. QuinnsCode commented on Nov 6, 2026

    @QuinnsCode
    OwnerAuthor

    Issue-runner check (2026-11-06): covered by the frame-budget climb #3796, whose target is a party of six (95th percentile under 16.7 ms). Round 5 (#3794) walks with --party 1,6, profiles it, and runs friends' IK every other frame; #3787 and its follow-up set the party's draw-call limit. Drawing far friends cheaper is that climb's work from here. Phase done; moved up to #3796.

  2. QuinnsCode commented on Nov 9, 2026

    @QuinnsCode
    OwnerAuthor

    Done, from the 2026-11-09 board scan (notes/audit/2026-11-09-*.json): Moved up to frame-budget climb #3796 (party of six target); round 5 #3794 halves friends' IK, #3787 caps party draw calls

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

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions