Complemento de red para el motor Bevy que se ejecuta en bibliotecas naia-socket y turbulence.
La combinación de naia-socket y turbulencia permite el intercambio de mensajes sin procesar a través de UDP o una conexión similar a UDP (a través de WebRTC), o la creación de canales no confiables/confiables de mensajes estructurados a través de dichos mensajes UDP/tipo UDP.
Este complemento funciona tanto en paquetes nativos (Linux, Windows, MacOS) a través de UDP como en navegador/WASM a través de mensajes similares a UDP en el canal WebRTC.
Aún no está terminado, pero las características principales están funcionando. Para obtener más información, consulte Hitos.
En una ejecución de terminal:
$ env RUST_LOG=debug cargo run --example simple -- --server
En otra terminal ejecute:
$ env RUST_LOG=debug cargo run --example simple -- --client
Observe el intercambio PING
/ PONG
entre el servidor y el cliente. Puede ejecutar más clientes en más terminales.
En una ejecución de terminal:
$ env RUST_LOG=debug cargo run --example simple --no-default-features --features use-webrtc -- --server
Cambie la dirección IP en la función examples/simple.rs
/ startup()
para que apunte a su máquina local y ejecute:
$ cargo build --example simple --target wasm32-unknown-unknown --no-default-features --features use-webrtc
$ wasm-bindgen --out-dir target --target web target/wasm32-unknown-unknown/debug/examples/simple.wasm
Sirve el directorio del proyecto a través de HTTP. Por ejemplo ( cargo install basic-http-server
):
$ basic-http-server .
Abra http://127.0.0.1:4000 y observe la consola del navegador en Herramientas de desarrollo. Verás el mismo intercambio PING
/ PONG
que en el modo Nativo.
En una ejecución de terminal:
$ env RUST_LOG=debug cargo run --example channels --features use-udp,bevy/default -- --server
En la segunda terminal ejecute:
$ env RUST_LOG=warn cargo run --example channels --features use-udp,bevy/default -- --client
En la tercera (y cuarta, y más...) terminal ejecute:
$ env RUST_LOG=warn cargo run --example channels --features use-udp,bevy/default -- --client
Puede enfocar cualquiera de las ventanas del cliente y usar las teclas de cursor Arrow-Left
/ Arrow-Right
para cambiar la trayectoria de la "bola". Observe que su bola controlada se sincroniza con todos los demás clientes.
Debido a que se requieren dependencias adicionales, hemos decidido mantener el ejemplo de canales gráficos basados en navegador en un repositorio separado. Consulte el proyecto https://github.com/ostwilkens/arugio. Evolucionó un poco del ejemplo de las simples bolas cuadradas y puede servir como base de tu juego.