Plugin jaringan untuk mesin Bevy yang berjalan pada soket naia dan pustaka turbulensi.
Kombinasi soket naia dan turbulensi memungkinkan pertukaran pesan mentah melalui UDP atau koneksi mirip UDP (melalui WebRTC), atau membangun saluran pesan terstruktur yang tidak dapat diandalkan/dapat diandalkan melalui pesan mirip UDP/UDP tersebut.
Plugin ini berfungsi baik di asli (Linux, Windows, MacOS) melalui paket UDP dan di Browser/WASM melalui pesan mirip UDP di saluran WebRTC.
Masih belum selesai, namun fitur utama berfungsi. Untuk detailnya, lihat Tonggak Pencapaian.
Di satu terminal dijalankan:
$ env RUST_LOG=debug cargo run --example simple -- --server
Di terminal lain yang dijalankan:
$ env RUST_LOG=debug cargo run --example simple -- --client
Amati pertukaran PING
/ PONG
antara server dan klien. Anda dapat menjalankan lebih banyak klien di lebih banyak terminal.
Di satu terminal dijalankan:
$ env RUST_LOG=debug cargo run --example simple --no-default-features --features use-webrtc -- --server
Ubah alamat IP di fungsi examples/simple.rs
/ startup()
untuk menunjuk ke mesin lokal Anda, dan jalankan:
$ 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
Sajikan direktori proyek melalui HTTP. Misalnya ( cargo install basic-http-server
):
$ basic-http-server .
Buka http://127.0.0.1:4000 dan tonton konsol Browser di Alat Pengembang. Anda akan melihat pertukaran PING
/ PONG
yang sama seperti pada mode Asli.
Di satu terminal dijalankan:
$ env RUST_LOG=debug cargo run --example channels --features use-udp,bevy/default -- --server
Di terminal kedua dijalankan:
$ env RUST_LOG=warn cargo run --example channels --features use-udp,bevy/default -- --client
Pada terminal ketiga (dan keempat, dan lebih banyak lagi...):
$ env RUST_LOG=warn cargo run --example channels --features use-udp,bevy/default -- --client
Anda dapat memfokuskan jendela klien mana pun dan menggunakan tombol kursor Arrow-Left
/ Arrow-Right
untuk mengubah lintasan "bola". Amati bola yang Anda kendalikan disinkronkan ke semua klien lainnya.
Karena diperlukan ketergantungan tambahan, kami memutuskan untuk menyimpan contoh saluran grafis berbasis browser di repositori terpisah. Lihat proyek https://github.com/ostwilkens/arugio. Ini sedikit berevolusi dari contoh bola persegi sederhana dan dapat menjadi dasar permainan Anda.