Autoridad del combate
En un mundo online el servidor resuelve el turno y el cliente lo dibuja.
Esa frase es fácil de escribir y difícil de sostener. La mayoría de los sistemas de combate «autoritativos» son autoritativos sobre el resultado y vagos sobre todo lo que pasa en el camino —y el camino es justamente lo que el jugador mira. Si el servidor decide el daño pero el cliente decide si el golpe fue superefectivo, dos jugadores mirando el mismo combate pueden ver peleas distintas.
Así que el servidor no manda un resultado. Manda qué pasó, hecho por hecho, y el trabajo del cliente es animar exactamente eso.

Nada de lo que hay en esa captura sale de una decisión local. El Caterpie salvaje lo eligió el servidor,
su nivel vino con él, y las cuatro acciones de la derecha son las únicas que el cliente tiene permitido
ofrecer: cada una se convierte en un pedido, no en un resultado. La insignia de abajo
(32ms · Server: US-East) y la tira de canales de arriba son la misma sesión: esto es una conexión, no
un combate atornillado a una sala de espera.
Qué vuelve de un turno
Cada acción enviada vuelve como un registro de turno. La parte interesante es cuánto de ese registro es narración y no números:
| Campo | Qué hace el cliente con él |
|---|---|
PlayerMoveName, EnemyMoveName | Nombra los movimientos que realmente se resolvieron |
PlayerDamageDealt, EnemyDamageDealt | El daño que entró |
PlayerHpRemaining, EnemyHpRemaining | Los PS que el servidor dice que quedan |
PlayerFainted, EnemyFainted | Quién cayó |
BattleEnded | Terminal: victoria, derrota, captura o huida |
FleeAttempted, FleeSucceeded, FleeChance, RunAwayAttempts | La historia completa de la huida |
EnemySubstituteMonsterId, EnemySubstituteSpeciesId | Quién entró cuando cayó el monstruo de un entrenador |
TurnNumber | El contador de turnos del servidor, no el del cliente |
Fijate en los campos de PS. El cliente no le resta el daño a los PS que creía tener: toma el número que declara el servidor. No son la misma cosa, y sólo uno de los dos sobrevive a un desacuerdo.
Fijate también en los campos del suplente. Cuando cae el monstruo de un entrenador, el servidor dice cuál entró, por id y por especie. Una versión anterior sólo decía que había habido un cambio, y «entró alguien» no alcanza para dibujarlo.
Negarse es una respuesta de primera clase
Hay tres campos para el caso que más importa:
| Campo | Qué significa |
|---|---|
Refused | El servidor se negó a resolver este turno |
RefusalReason | Por qué, en palabras |
RefusalFactor | La cosa puntual que no pudo modelar |
Un servidor que se topa con un factor que no modela —un efecto, una interacción de objetos, una regla de una compilación que no conoce— se niega a resolver el turno y nombra lo que lo detuvo. No lo resuelve en neutro.
Ese es todo el diseño, y la alternativa es peor de lo que parece. Un servidor que resuelve en silencio el factor desconocido como «sin efecto» produce un combate que llega hasta el final y está mal de una forma que nadie puede ver. El jugador mira un movimiento no hacer nada y concluye que el movimiento es malo. Negarse es ruidoso; adivinar es silencioso, y el silencio es la falla cara.
Una negativa se le muestra al jugador. Nunca se traduce en «entonces resolvé este combate en el cliente». En el momento en que un turno se resuelve localmente, el registro del servidor y la partida del jugador divergieron, y nada aguas abajo puede decir cuál de los dos es el real.
Qué te compra esto
Como el turno se resuelve del lado del servidor, un conjunto de trampas simplemente no tiene superficie:
- Los encuentros salvajes los genera el servidor —especie, nivel, IVs y si es variocolor—. Un cliente no puede tirar el dado hasta que le guste el resultado.
- Las capturas se verifican del lado del servidor. La tirada de captura no es del cliente.
- La variación del daño, los golpes críticos y los niveles de estadísticas son tiradas del servidor.
- Los PP, Combate (Struggle) y el uso de objetos los cobra el servidor, así que un cliente no puede gastar lo que no tiene.
El límite honesto
La autoridad del servidor está acotada al modo online. El camino de combate sin conexión del núcleo queda intacto: el mismo motor juega una partida de un solo jugador exactamente como antes, sin servidor en ninguna parte. Esa frontera es deliberada: la capa online es un módulo opcional, y un comprador que nunca la enciende nunca paga nada de esto.
Ver también: Combates PvP para emparejamiento, espectadores e incursiones, y Opciones del mundo para las reglas que el servidor aplica a los niveles de los entrenadores.