Este guia fornece instruções detalhadas para configurar um ambiente de desenvolvimento para o framwork Gonet, um esqueleto de servidor de jogo escrito em Go, cobrindo desde a preparação do sistema até a execução de testes.
- Preparação do Ambiente Base
1.1 Instalação de Dependências
O desenvolvimento com Gonet requer os seguintes componentes:
- Go (Goleng): Versão recomendada 1.16 ou superior.
- Git: Para controle de versão e obtenção do código-fonte.
- GCC: Compilador necessário para módulos cgo em Go.
Em sistemas baseados em Debian/Ubuntu, execute os comandos abaixo para instalar as dependências:
sudo apt-get update
sudo apt-get install -y golang git gcc
1.2 Obtenção do Código-Fonte
Clone o repositório oficial do projeto utilizando o Git:
git clone https://gitcode.com/gh_mirrors/gon/gonet
cd gonet
- Visão Geral da Estrutura do Projeto
O Gonet possui uma arquitetura modular. Os diretórios principais incluem:
- src/agent: Módulo de agente, responsável por conexões de clientes e roteamento de mensagens.
- src/hub: Módulo central, gerencia nós do servidor e balanceamento de carga.
- src/db: Camada de acesso a banco de dados, com lógica para dados de usuários e do jogo.
- src/misc: Bibliotecas utilitárias com funções comuns como criptografia e temporizadores.
- doc/: Documentação do projeto e diagramas de arquitetura.
- Compilação do Projeto
3.1 Verificação dos Alvos de Compilação
O Makefile na raiz do projeto define scripts de compilação. Para listar todos os alvos disponíveis, use:
make help
3.2 Execução da Compilação
Compile todos os módulos com a configuração padrão:
make all
Após a compilação, os executáveis são gerados no diretório bin/. Os principais binários incluem:
agent: Programa do servidor de agente.hub: Programa do servidor central.stats: Programa de estatísticas.
- Configuração do Servidor
4.1 Ajuste dos Arquivos de Configuarção
O arquivo config.ini na raiz contém parâmetros para os serviços. Configure campos como portas de rede, conexões de banco de dados e níveis de log. Por exemplo, altere a porta de escuta do agente:
[servidor_agente]
porta_escuta = 9090
4.2 Validação da Configuração
Utilize a ferramenta de teste para verificar a integridade do arquivo de configuração:
go run src/cfg/teste_configuracao.go
- Inicialização dos Servidores
5.1 Ativação do Serviço Central
Inicie primeiro o servidor hub:
./bin/hub
5.2 Ativação do Serviço de Agente
Em um novo terminal, inicie o servidor agent:
./bin/agent
5.3 Monitoramento do Status
Acompanhe os logs para confirmar o funcionamento dos serviços:
tail -f logs/registro_agente.log
- Execução de Testes
6.1 Testes Automatizados
O projeto inclui um conjunto de testes. Execute o script de testes automatizados:
./executar_testes.sh
6.2 Modelo de Máquina de Estados Finitos (FSM)
O Gonet utiliza uma máquina de estados finitos para gerenciar o ciclo de vida das conexões de jogadores. Os estados principais incluem Login, Em_Jogo e Logout, garantindo uma gestão estável das conexões. A implementação está em src/hub/core/fsm.go.