Multijugador Online en tiempo real

Desde la última actualización, el mundo ya no se recorre en soledad. Ahora puedes ver a otros jugadores en tiempo real, moverse por el mismo espacio 3D contigo, conversar y compartir la experiencia. Pero, ¿cómo funciona esto técnicamente?

La clave está en Firebase Realtime Database, un servicio en la nube de Google que permite sincronización instantánea de datos entre clientes. No usamos WebSockets ni servidores personalizados en Node.js; la infraestructura multijugador está basada completamente en esta base de datos en tiempo real.

Cada vez que un jugador entra al juego, su posición (x, y, z) se registra y actualiza constantemente en Firebase. A través de JavaScript, usamos la API de Firebase para:

  • Crear una entrada única por jugador (ID o nombre de usuario).
  • Actualizar su posición en el mapa varias veces por segundo.
  • Escuchar en tiempo real los cambios de los demás jugadores conectados.

El motor del juego —construido con Three.js y Enable3d— lee estos datos y genera un modelo visible de los demás jugadores, en tiempo real, usando sus coordenadas como referencia. Así, aunque cada dragón es controlado localmente, todos ven a los demás moverse por el mismo mundo compartido.

No se comparten inputs ni lógica de físicas: solo la posición 3D interpolada, para mantener el rendimiento óptimo. Además, usamos timeouts automáticos para eliminar jugadores inactivos del mapa si se desconectan sin cerrar sesión correctamente.

En resumen, gracias a Firebase, hemos conseguido una experiencia multijugador básica pero fluida, sin necesidad de servidores dedicados ni complejas arquitecturas backend. Todo ocurre en la nube, en tiempo real.