Plugin de rede para motor Bevy rodando em bibliotecas naia-socket e turbulence.
A combinação de soquete naia e turbulência permite a troca de mensagens brutas por meio de conexões UDP ou semelhantes a UDP (por WebRTC) ou a construção de canais não confiáveis/confiáveis de mensagens estruturadas sobre tais mensagens semelhantes a UDP/UDP.
Este plugin funciona tanto em pacotes nativos (Linux, Windows, MacOS) sobre pacotes UDP quanto em mensagens do tipo Browser/WASM sobre UDP no canal WebRTC.
Ainda inacabado, mas os recursos principais estão funcionando. Para obter detalhes, consulte Marcos.
Em uma execução de terminal:
$ env RUST_LOG=debug cargo run --example simple -- --server
Em outra execução de terminal:
$ env RUST_LOG=debug cargo run --example simple -- --client
Observe a troca de PING
/ PONG
entre servidor e cliente. Você pode executar mais clientes em mais terminais.
Em uma execução de terminal:
$ env RUST_LOG=debug cargo run --example simple --no-default-features --features use-webrtc -- --server
Altere o endereço IP na função examples/simple.rs
/ startup()
para apontar para sua máquina local e execute:
$ 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
Servir o diretório do projeto por HTTP. Por exemplo ( cargo install basic-http-server
):
$ basic-http-server .
Abra http://127.0.0.1:4000 e observe o console do navegador nas Ferramentas do desenvolvedor. Você verá a mesma troca PING
/ PONG
do modo Nativo.
Em uma execução de terminal:
$ env RUST_LOG=debug cargo run --example channels --features use-udp,bevy/default -- --server
Na segunda execução do terminal:
$ env RUST_LOG=warn cargo run --example channels --features use-udp,bevy/default -- --client
Na terceira (e quarta, e mais...) execução do terminal:
$ env RUST_LOG=warn cargo run --example channels --features use-udp,bevy/default -- --client
Você pode focar qualquer uma das janelas do cliente e usar as teclas de cursor Arrow-Left
/ Arrow-Right
para alterar a trajetória da "bola". Observe que sua bola controlada é sincronizada com todos os outros clientes.
Devido às dependências adicionais necessárias, decidimos manter o exemplo de canais gráficos baseados em navegador em um repositório separado. Consulte o projeto https://github.com/ostwilkens/arugio. Ele evoluiu um pouco do exemplo simples das bolas quadradas e pode servir de base para o seu jogo.