Neon Runner: storage write and new Text per coin, HUD redrawn each frame

Aberta
#36 0 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
4/5
Tempo estimado
3-5 dias
Facilidade para iniciantes
57/100
Tipo de issue
Bug
Clareza
Claramente especificada
Status de atividade
Ativa
Stack de tecnologia
javascript, typescript
Domínio
game-dev, performance

Direção de pesquisa

Start with games/runner/scenes/GameScene.ts at lines 361–376 and 533–539, then read shared/achievements.ts around addCounter and shared/ui.ts around floatText. Run npm run typecheck and npm run build after tracing coin collection and distance HUD updates. Done means active play causes no storage writes while counters still persist if the tab closes mid-run.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

performance severity: low

Summary

Collecting a coin serialises and writes the whole trophy save and creates a new floating Text. The distance HUD text changes 32 to 77 times per second, so its canvas is redrawn and re-uploaded on almost every frame.

Where

  • games/runner/scenes/GameScene.ts:361-376, games/runner/scenes/GameScene.ts:533-539
  • shared/achievements.ts:122-128 (addCounter persists on every call)
  • shared/ui.ts:70-73 (floatText)

Impact

A six-coin row at top speed is six Text creations and six synchronous storage writes in under a quarter of a second, likely visible as hitches on phones. Astro has the same per-event write at a lower rate. Not measured.

Suggested fix

Keep counters in memory and persist on game over and on visibilitychange (or debounce persist()), pool a few float-text objects or show one "+N" per row, and update the distance text every 100ms or every 5m.

Acceptance criteria

  • No storage write happens during active play
  • Counters still persist if the tab is closed mid-run

Getting started

  • Relevant files: games/runner/scenes/GameScene.ts, shared/achievements.ts, shared/ui.ts
  • Run locally: npm install, then npm run dev
  • Checks: npm run typecheck and npm run build (there is no test suite yet)
  • Related docs: README.md

Filed by repo-audit/full-audit at b001f5d. Severity: low. Effort: S. audit-key: performance|games/runner/scenes/GameScene.ts|collectCoins

Linguagem predominante
TypeScript
Estrelas
3
Forks
3
Métricas de merge de PRs
Nenhum PR com merge em 30d

Preparar o ambiente

Este projeto não oferece contêiner de desenvolvimento, Dockerfile nem guia de contribuição, então a configuração fica por sua conta: comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de TMHSDigital/GH-Arcade

Todas as issues de TMHSDigital/GH-Arcade

Issues semelhantes

Mais issues de TypeScript

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.