Cada partida se graba jugada a jugada, y el visor la reproduce ronda a ronda. Revivir tus victorias (o estudiar tus derrotas).

Qué se guarda

Tras cada ronda, saveGameMove inserta una fila en game_moves:

CampoQué
roundnúmero de ronda
player1Choice / player2Choiceel arma que eligió cada uno
player1Damage / player2Damagedaño repartido
player1Hp / player2Hpvida tras la ronda
eventslos mensajes de la ronda (combos, veneno, robos…)

Atado a un gameRecord (la partida). Las partidas de práctica no se graban.

El visor

/replay/[id] reproduce la partida: barras de HP animadas, las armas jugadas, el daño y los eventos, con controles de reproducir / pausa / paso / scrub. Se llega desde el historial del leaderboard o desde las partidas recientes del perfil.

Dato que ya recogías

El backend grababa cada jugada desde el principio, pero no había forma de verlas — dato recogido y tirado. El visor convierte ese registro en una feature visible sin coste de datos nuevo.

Pendiente / ideas

  • Compartir una repetición (link público) — gancho viral.
  • Marcar momentos clave (el golpe que decidió la partida).

Conexiones

sistemas · progresion · dano