Sobre o projeto

ioGame é um framework de rede Java projetado para jogos online, IoT e sistemas internos que exigem conexões persistentes. Ele enfatiza uma arquitetura sem bloqueios, assíncrona e orientada a eventos que suporta clustering e distribuição prontos para uso, sem precisar de middleware externo ou bancos de dados — apenas uma JVM. As principais características incluem: - **Leve**: Jar pequeno (~15 MB), inicialização rápida (<1 segundo), baixo consumo de memória. - **Arquitetura flexível**: Design em três partes (Servidor Externo, Broker/Gateway, Servidor de Lógica de Jogo) que podem rodar de forma independente ou fundidos, adaptando-se a qualquer tipo de jogo. - **Escalabilidade dinâmica**: Adicione ou remova servidores em tempo real, permitindo atualizações sem tempo de inatividade. - **Clustering descentralizado**: Cluster de broker sem mestre, auto-organizável, sem ponto único de falha. - **Suporte a múltiplos protocolos**: Uma única base de código suporta TCP, WebSocket, UDP simultaneamente; extensível a KCP, QUIC, etc. Protocolos de dados (Protobuf, JSON) alternáveis com uma única linha. - **Rastreamento distribuído de link completo**: IDs de rastreamento únicos entre máquinas e processos. - **Modelos de comunicação ricos**: Requisição/resposta, broadcast, barramento de eventos e mais, todos com capacidade entre processos. - **Segurança de thread por jogador**: O framework garante concorrência sem bloqueios para jogadores individuais. - **Geração de código**: Escreva Java uma vez, gere SDKs de cliente para Godot, UE, Unity, Cocos Creator, React, Vue, Angular, etc. - **Amigável ao desenvolvedor**: Codificação estilo MVC, validação JSR380, asserções, hot-swap de protocolos, afinidade no mesmo processo e depuração de múltiplos servidores em um único processo. - **Seguro por design**: Servidores de lógica nunca expõem portas, imunes a ataques de varredura de portas. - **Java moderno**: Requer JDK 21+, aproveitando o ZGC Geracional para pausas abaixo de milissegundo. ioGame é lançado sob AGPL 3.0, com o compromisso de pelo menos dez anos de manutenção ativa a partir de 2022-03-01. É adequado tanto para servidores de jogos quanto para aplicações de IoT, lidando com milhões de conexões.