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).
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.