Sobre el proyecto

Lightyear es una biblioteca de red para escribir juegos multijugador con autoridad del servidor con el motor de juego Bevy. Es compatible con WebAssembly a través de WebTransport y se distribuye como un crate de Rust (lightyear = "0.30" para Bevy 0.19). Introducción: el repositorio proporciona ejemplos, un tutorial que recrea el ejemplo simple_box, y un libro en progreso para mayor documentación. Estructura del repositorio: los crates del workspace se encuentran bajo crates/, agrupados por rol, con nombres de directorio que omiten el prefijo lightyear_ mientras que los nombres de paquetes de Cargo lo conservan. Los grupos incluyen io (enlaces y backends de bajo nivel como aeronet, link, udp, crossbeam, websocket, webtransport), connection (connection, raw_connection, netcode, steam), core (el crate lightyear de nivel superior más core, sync, utils, frame interpolation), inputs (inputs, inputs_native, input_bei, inputs_leafwing), replication (replication, prediction, interpolation), transport (serialization, transport, message), integration (integraciones del ecosistema Bevy como Avian), y crates de platform, deterministic, tools y tests. Características descritas en el README: - IO agnóstico de transporte: sockets UDP, además de aeronet para soporte de WebSocket, Steam y WebTransport. - Serialización: postcard es el serializador por defecto, con soporte para proporcionar una función de serialización personalizada. - Paso de mensajes: canales con diferentes garantías de ordenamiento y fiabilidad, y fragmentación de paquetes para mensajes de más de aproximadamente 1200 bytes. - Manejo de entradas: las entradas del jugador se almacenan en búfer cada tick en el cliente, y la entrada del cliente para el tick N se procesa en el tick N en el servidor; las entradas se protegen contra la pérdida de paquetes incluyendo frames recientes en cada paquete. Existen integraciones opcionales para leafwing-input-manager y bevy-enhanced-input. - Replicación determinista: soportada cuando solo se replican las entradas y la simulación es determinista; compatible con lockstep y predicción/rollback. - Replicación del mundo: utiliza bevy_replicon para replicación, gestión de interés, pre-spawning y características relacionadas. - Replicación avanzada: predicción del lado del cliente con rollback, interpolación de instantáneas, retardo de entrada configurable, gestión de ancho de banda con envío basado en prioridad, y compensación de latencia para interacciones entre entidades predichas e interpoladas. - Topologías: cliente-servidor, P2P, y modo host-client donde un cliente actúa como servidor. - Ejemplos: numerosos ejemplos que cubren las características e integraciones con otros crates de Bevy como avian. El README también lista proyectos relacionados, incluyendo un proyecto de inicio lightyear-template y juegos como Lumina y cycles.io, y una tabla de compatibilidad que mapea versiones de Lightyear a versiones de Bevy (0.28-0.30 a Bevy 0.19, 0.26-0.27 a 0.18, 0.25 a 0.17, 0.20-0.24 a 0.16, 0.18-0.19 a 0.15, 0.16-0.17 a 0.14, 0.10-0.15 a 0.13, y 0.1-0.9 a 0.12).