Sobre o projeto
GoWorld é um motor de servidor de jogos distribuído e escalável escrito em Golang, projetado para construir jogos multiplayer online. Ele apresenta um framework de entidades onde jogadores, monstros e NPCs são representados como entidades. Entidades dentro do mesmo espaço podem interagir diretamente via chamadas de método ou acesso a atributos, enquanto entidades em espaços diferentes se comunicam através de RPC.
A arquitetura do servidor consiste em um despachante, um ou mais processos de jogo e um ou mais processos de gateway. Os gateways lidam com conexões de clientes e transmissão de pacotes, os jogos gerenciam entidades e executam a lógica do jogo, e o despachante roteia pacotes entre jogos e gateways. Uma característica chave é a troca a quente: processos de jogo podem ser recarregados enviando SIGHUP e reiniciando com o parâmetro -restore, permitindo atualizações de lógica do lado do servidor sem interrupção significativa para os jogadores.
GoWorld suporta múltiplos protocolos de comunicação, incluindo TCP, KCP e WebSocket, e oferece compressão de tráfego e criptografia entre clientes e servidores. Inclui uma ferramenta de linha de comando 'goworld' para construir, iniciar, parar e recarregar servidores. O repositório fornece demos como um chatroom e um jogo de tiro multiplayer baseado em Unity, com clientes em JavaScript (Cocos Creator) e C# (Unity).
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.