libquicknet
Biblioteca de rede UDP simples e pequena e confiável para jogos
❗ libquicknet está em desenvolvimento e não é adequado para código de produção ❗
O principal alvo desta biblioteca são protótipos de jogos ou jam games que requerem um subsistema de rede plug&play rápido.
Muito fácil de colocar em funcionamento!
Características:
- Protocolo UDP orientado a conexão com handshake de 3 etapas
- Cliente<->Servidor e suporte ponto a ponto
- Baixo uso de largura de banda
- Suporte confiável/não confiável sequenciado/não sequenciado
- Sistema de confirmação rápido e redundante para mensagens confiáveis
- Descoberta de servidor (somente LAN)
- Sistema de checksum completo para evitar corrupção de mensagens
- Mesclagem opcional de mensagens no envio
- Taxa de envio selecionável fixa
- Detecção de mensagens duplicadas
- Latência falsa e suporte para perda de pacotes
- Estimativa de Ping e Round-Trip-Time
- Plataforma cruzada (Windows/Linux)
Recursos futuros:
- Sincronização de tempo
- Sincronização RNG para sistemas determinísticos
- Bitpacking e compactação
- Criptografia simétrica com troca de chaves no handshake
- Travessia NAT e punch-through
- Consciência Endian
- Melhorar o sistema de reconhecimento
Instalação
Solte todos os arquivos fonte do seu projeto e compile!
Uso
- incluir quicknet_peer.h
- crie um descendente de quicknet::Peer
- substituir os métodos OnConnection, OnDisconnection e OnGameMessage
- Defina suas mensagens personalizadas do jogo conforme instruído em quicknet_messagetypes.h
- Inclua seus IDs de mensagens em quicknet_messagelookup.h
- Preparar!
Para um exemplo simples, verifique test.cpp
Fundo
Esta biblioteca foi escrita em uma semana e mesmo que esteja totalmente funcional ainda precisa de muito trabalho para torná-la ainda melhor!
Ainda há muitas coisas codificadas que precisam de cuidados, mas tentarei transformar isso em uma biblioteca facilmente personalizável.