lunes, 03 de agosto de 2026devblog

Una línea: un GUID nuevo en cada carga

Cada jugador tiene ahora una identidad permanente, y todo su aspecto se genera a partir de ella. El bug era una línea que creaba un ID aleatorio cada vez que se cargaba la base de datos.

IDENTIDADPERMANENTE

Cada jugador tiene ahora una identidad permanente, y todo su aspecto se genera a partir de ella. Rice, del Brackfield United, se ve igual en cada partida, en cualquier equipo, para cualquier jugador del mundo. Su ID sale del archivo de datos, no de un número aleatorio al cargar.

El bug

Una línea: el cargador de la base de datos creaba un GUID aleatorio nuevo para cada jugador, cada vez que se cargaban los datos. Así que "el mismo" jugador en dos carreras eran dos personas distintas y, con el aspecto generado a partir del ID, dos caras distintas.

Ahora el ID se deriva de una clave estable que ya está en el archivo de datos, con hash FNV-1a. No la función de hash del motor: estos ID acaban escritos en las partidas guardadas, así que el hash tiene que ser mío y no puede cambiar nunca. Las funciones de hash del motor pueden cambiar con una actualización del motor.

Por qué importa más allá de las caras:

  • Partidas guardadas. Una partida que necesitaría cuarenta mil aspectos ahora no necesita ninguno.
  • Online, algún día. Un partido envía un ID de 16 bytes en lugar del aspecto de cada jugador. Los dos equipos construyen localmente la misma plantilla idéntica.
  • Mods. Si mantienes el ID de un jugador, es la misma persona. Si lo cambias, es alguien nuevo. Los packs de plantillas y los packs de aspecto pueden publicarse por separado sin entrar en conflicto.

Un cambio pequeño. Desbloquea el partido rápido, el online y los mods de la comunidad de una tacada.

Incluido: ID de jugador estables con hash a partir del archivo de datos · aspecto derivado del ID

Este artículo se ha traducido del inglés con ayuda de IA. Leer el original