Sobre el proyecto
GoWorld es un motor de servidor de juegos distribuido y escalable escrito en Golang, diseñado para crear juegos multijugador en línea. Cuenta con un marco de entidades donde jugadores, monstruos y NPCs se representan como entidades. Las entidades dentro del mismo espacio pueden interactuar directamente mediante llamadas a métodos o acceso a atributos, mientras que las entidades en diferentes espacios se comunican a través de RPC.
La arquitectura del servidor consiste en un despachador, uno o más procesos de juego y uno o más procesos de puerta. Las puertas manejan las conexiones de clientes y la transmisión de paquetes, los juegos gestionan entidades y ejecutan la lógica del juego, y el despachador enruta paquetes entre juegos y puertas. Una característica clave es el intercambio en caliente: los procesos de juego pueden recargarse enviando SIGHUP y reiniciando con el parámetro -restore, lo que permite actualizar la lógica del lado del servidor sin interrupciones significativas para los jugadores.
GoWorld soporta múltiples protocolos de comunicación, incluyendo TCP, KCP y WebSocket, y ofrece compresión de tráfico y cifrado entre clientes y servidores. Incluye una herramienta de línea de comandos 'goworld' para compilar, iniciar, detener y recargar servidores. El repositorio proporciona demos como una sala de chat y un juego de disparos multijugador basado en Unity, con clientes en JavaScript (Cocos Creator) y C# (Unity).
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.