Sobre o projeto

Lightyear é uma biblioteca de rede para escrever jogos multijogador com autoridade do servidor usando o motor de jogos Bevy. É compatível com WebAssembly via WebTransport e é distribuída como um crate Rust (lightyear = "0.30" para Bevy 0.19). Primeiros passos: o repositório fornece exemplos, um tutorial que recria o exemplo simple_box e um livro em desenvolvimento para documentação adicional. Estrutura do repositório: os crates do workspace ficam em crates/, agrupados por função, com os nomes de diretório omitindo o prefixo lightyear_ enquanto os nomes de pacote Cargo o mantêm. Os grupos incluem io (links de baixo nível e backends como aeronet, link, udp, crossbeam, websocket, webtransport), connection (connection, raw_connection, netcode, steam), core (crate lightyear de nível superior mais core, sync, utils, interpolação de frames), inputs (inputs, inputs_native, input_bei, inputs_leafwing), replication (replication, prediction, interpolation), transport (serialization, transport, message), integration (integrações do ecossistema Bevy, como Avian) e crates de platform, deterministic, tools e tests. Recursos descritos no README: - IO agnóstico de transporte: soquetes UDP, além de aeronet para suporte a WebSocket, Steam e WebTransport. - Serialização: postcard é o serializador padrão, com suporte para fornecer uma função de serialização personalizada. - Passagem de mensagens: canais com diferentes garantias de ordenação e confiabilidade, e fragmentação de pacotes para mensagens maiores que aproximadamente 1200 bytes. - Tratamento de entrada: as entradas do jogador são armazenadas em buffer a cada tick no cliente, e a entrada do cliente para o tick N é processada no tick N no servidor; as entradas são protegidas contra perda de pacotes incluindo frames recentes em cada pacote. Existem integrações opcionais para leafwing-input-manager e bevy-enhanced-input. - Replicação determinística: suportada quando apenas as entradas são replicadas e a simulação é determinística; compatível com lockstep e previsão/rollback. - Replicação de mundo: usa bevy_replicon para replicação, gerenciamento de interesse, pré-spawn e recursos relacionados. - Replicação avançada: previsão no lado do cliente com rollback, interpolação de snapshots, atraso de entrada configurável, gerenciamento de largura de banda com envio baseado em prioridade e compensação de latência para interações entre entidades previstas e interpoladas. - Topologias: cliente-servidor, P2P e modo host-cliente, em que um cliente atua como servidor. - Exemplos: numerosos exemplos cobrindo os recursos e integrações com outros crates Bevy, como avian. O README também lista projetos relacionados, incluindo um projeto inicial lightyear-template e jogos como Lumina e cycles.io, e uma tabela de compatibilidade mapeando versões do Lightyear para versões do Bevy (0.28-0.30 para Bevy 0.19, 0.26-0.27 para 0.18, 0.25 para 0.17, 0.20-0.24 para 0.16, 0.18-0.19 para 0.15, 0.16-0.17 para 0.14, 0.10-0.15 para 0.13 e 0.1-0.9 para 0.12).