As baterias incluíam uma caixa de rede para jogos.
[dependencies]
netstack = "0.3.0"
Documentação (trabalho em andamento)
Se você tiver sugestões, sentir falta de recursos ou apenas quiser entrar em contato, pode abrir problemas neste repositório ou entrar em contato comigo no Twitter.
Para usar o netstack de maneira eficaz na produção, você precisa de um canal seguro para trocar um segredo inicial e um token de conexão. É recomendado usar https para isso, mas fica a seu critério. Os exemplos usam um servidor http.
(☑️ significa implementado, ? significa planejado ou em desenvolvimento)
Os transportes baseados em io_uring
, IOCP
ou epoll
estão fora do escopo no momento.
Esta caixa não implementa retransmissão baseada em acks e timeouts. Os jogos têm outras maneiras de obter confiabilidade, principalmente porque as informações já estão desatualizadas no momento em que qualquer mecanismo baseado em tempo limite detecta o pacote perdido.
O FPS, por exemplo, envia a entrada do jogador para os últimos quadros com cada pacote, de modo que, quando um se perde na transmissão, o próximo pacote preenche a lacuna.
A compactação do estado do jogo do servidor para o cliente geralmente é baseada no último pacote reconhecido pelo cliente. Use o evento MessageAcknowledged
e o número de sequência retornado por send
para isso.
Veja o diretório de exemplos para um exemplo de cliente/servidor, use os comandos para executá-los:
cargo run -p server
cargo run -p client
Netstack vem com uma macro de derivação de trabalho em andamento para estruturas (e enums posteriores).
# [ derive ( Debug , Serialize , Deserialize ) ]
pub struct Greeting {
pub id : u32 ,
pub to : String ,
pub message : String ,
}
MIT