maniator / maniator/verticopolis

[Feature]: [P3] Budget the decorative per-frame re-rasters (scaled crane, fountain) on mobile

Open
#568 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
TypeScript
Stars
5
Forks
1
PR merge metrics
No merged PRs in 30d

Description

Deferred from /gds-code-review of the crane rescale (PR #567, spec-crane-scale, review finding E4). Backlog row decorative-raster-budget.

The crane rescale grows its animated re-raster and GPU texture upload 6.25x: the cache: true canvas went from 128x76 (~38 KB RGBA per upload) to 320x190 (~243 KB), re-uploaded every animating frame while the decorative clock runs. The fountain plaza already re-rasters per frame by design (cache: false, owner-approved), so the scene now carries two sizable per-frame texture uploads on phones the codebase documents as freeze-prone.

No player-visible defect is known; this is a measurement-first task:

  • Wait for the session_fps field telemetry (#538) or an on-device probe on a low-end phone to price the decorative uploads.
  • If they show up in frame health, mitigate: halve the crane's animation cadence (flagDirty every other decorative tick), split static mast/jib from the moving trolley/hook/beacon into layered actors so only a small strip re-uploads, or cap decorative re-raster work at low zoom where the motion is sub-pixel anyway.
  • Do not regress the pause/reduced-motion freeze semantics (repaint fully stops today) or determinism under the stepped screenshot clock.

Not a blocker for the crane PR: the cadence is unchanged, only the payload grew, and the fountain precedent stands until data says otherwise.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the session_fps telemetry from #538 or an on-device probe on a low-end phone, then measure the crane and fountain's per-frame raster uploads. Compare the results with the existing pause, reduced-motion, and stepped screenshot-clock behavior; done means a data-supported mitigation that preserves freeze semantics and determinism.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
game-dev, performance
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.