Introducción a Netcode: autoridad y sincronización

Comprende los fundamentos del multijugador en Unity con Netcode for GameObjects: servidor, clientes y estado sincronizado.

El multijugador en Unity con Netcode se basa en sincronizar estado entre una autoridad (servidor/host) y varios clientes.

`NetworkObject` identifica entidades replicadas; `NetworkBehaviour` define scripts con lógica de red.

La autoridad del servidor reduce trampas y mantiene consistencia cuando hay conflicto de acciones entre clientes.

Esta lección sigue contenido.md: introducir Netcode y diferenciar autoridad de servidor frente a cliente.

  • Entender topología de red evita errores conceptuales desde el principio.
  • En modo host, una instancia actúa a la vez como servidor y cliente local; útil para prototipos rápidos.
  • En arquitecturas dedicadas, el servidor valida reglas y los clientes envían inputs o solicitudes.
  • Diseña mecánicas pensando en latencia y desincronización, no como si todo fuera ejecución local instantánea.
  • Servidor autoritativo para reglas críticas.

Modelo básico: host, cliente y servidor

Entender topología de red evita errores conceptuales desde el principio.

En modo host, una instancia actúa a la vez como servidor y cliente local; útil para prototipos rápidos.

En arquitecturas dedicadas, el servidor valida reglas y los clientes envían inputs o solicitudes.

Diseña mecánicas pensando en latencia y desincronización, no como si todo fuera ejecución local instantánea.

  • Servidor autoritativo para reglas críticas.
  • Clientes envían intención, no verdad absoluta.
  • Sincronización incremental para escalar mejor.

Componentes clave de Netcode

Sin `NetworkManager` y `NetworkObject` bien configurados, no hay sesión multijugador estable.

`NetworkManager` controla conexión, inicio de host/servidor/cliente y ciclo de la sesión.

Cada entidad replicada necesita `NetworkObject`; los scripts de red heredan de `NetworkBehaviour`.

Separa lógica local visual de lógica de estado de red para evitar duplicaciones y side effects.

Autoridad y seguridad de gameplay

La regla crítica: el cliente propone, el servidor decide.

Evita que el cliente modifique directamente variables sensibles como vida, inventario o puntuación global.

Valida en servidor acciones de impacto para mitigar cheats y estados imposibles.

Mantén logs de eventos de red durante pruebas para entender desajustes de sincronización.

Unity
19

Introducción a Netcode: autoridad y sincronización

Comprende los fundamentos del multijugador en Unity con Netcode for GameObjects: servidor, clientes y estado sincronizado.

Código del tema: GameObject + Component = comportamiento

📘 Teoría

Modelo básico: host, cliente y servidor

Entender topología de red evita errores conceptuales desde el principio.

En modo host, una instancia actúa a la vez como servidor y cliente local; útil para prototipos rápidos.

En arquitecturas dedicadas, el servidor valida reglas y los clientes envían inputs o solicitudes.

Diseña mecánicas pensando en latencia y desincronización, no como si todo fuera ejecución local instantánea.

  • Servidor autoritativo para reglas críticas.
  • Clientes envían intención, no verdad absoluta.
  • Sincronización incremental para escalar mejor.

Componentes clave de Netcode

Sin `NetworkManager` y `NetworkObject` bien configurados, no hay sesión multijugador estable.

1

`NetworkManager` controla conexión, inicio de host/servidor/cliente y ciclo de la sesión.

2

Cada entidad replicada necesita `NetworkObject`; los scripts de red heredan de `NetworkBehaviour`.

3

Separa lógica local visual de lógica de estado de red para evitar duplicaciones y side effects.

Script base de entidad en red
using Unity.Netcode;
using UnityEngine;

public class PlayerNet : NetworkBehaviour
{
    public override void OnNetworkSpawn()
    {
        if (IsOwner)
        {
            Debug.Log("Jugador local con ownership");
        }

        if (IsServer)
        {
            Debug.Log("Servidor controla estado autoritativo");
        }
    }
}

Autoridad y seguridad de gameplay

La regla crítica: el cliente propone, el servidor decide.

1

Evita que el cliente modifique directamente variables sensibles como vida, inventario o puntuación global.

2

Valida en servidor acciones de impacto para mitigar cheats y estados imposibles.

3

Mantén logs de eventos de red durante pruebas para entender desajustes de sincronización.

🧪 Aprende probando

Ejemplo Ejemplo guiado Crea un script que herede de `NetworkBehaviour` y registre comportamiento distinto para owner y server.

🏁 Retos

Reto Reto práctico Implementa una entidad de red mínima que use `NetworkBehaviour` y compruebe `IsServer` para lógica autoritativa.

¿Qué es esto?

Soy Cristian Eslava y a veces hago webs para procrastinar yo y vosotros 😉.

Esta la hice en febrero de 2026 para facilitar el aprendizaje de mis alumnxs. Aprender desarrollo web practicando. La idea es que crezca semanalmente con nuevos temas, tests y retos.

Inspirado en MDN, en W3Schools, en Codepen, en el crack de Manz y en mil sitios de documentación sobre desarrollo web. Quería aportar además de bloques teóricos con ejemplos, la gamificación de los retos y el sistema de test que ya tenía en culTest .

Si te gustó, si no te gustó, si quieres saludarme, o invitarme a 🍻 no dudes en escribirme en cristianeslava@gmail.com .