naia-socket および turbulence ライブラリで実行される Bevy エンジン用のネットワーク プラグイン。
naia-socketとturbulenceを組み合わせると、UDP または UDP に似た接続 (WebRTC 経由) を介した生のメッセージの交換、またはそのような UDP/UDP に似たメッセージを介した構造化メッセージの信頼性の低い/信頼性の高いチャネルの構築が可能になります。
このプラグインは、UDP パケットを介したネイティブ (Linux、Windows、MacOS) と、WebRTC チャネルの UDP のようなメッセージを介したブラウザ/WASM の両方で機能します。
まだ未完成ですが、主要な機能は動作しています。詳細については、「マイルストーン」を参照してください。
1 つの端末で次を実行します。
$ env RUST_LOG=debug cargo run --example simple -- --server
他の端末で次を実行します。
$ env RUST_LOG=debug cargo run --example simple -- --client
サーバーとクライアント間のPING
/ PONG
交換を観察します。より多くの端末でより多くのクライアントを実行できます。
1 つの端末で次を実行します。
$ env RUST_LOG=debug cargo run --example simple --no-default-features --features use-webrtc -- --server
examples/simple.rs
/ startup()
関数の IP アドレスをローカル マシンを指すように変更し、次を実行します。
$ 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
HTTP 経由でプロジェクト ディレクトリを提供します。例: ( cargo install basic-http-server
):
$ basic-http-server .
http://127.0.0.1:4000 を開き、開発者ツールでブラウザのコンソールを確認します。ネイティブ モードと同じPING
/ PONG
交換が表示されます。
1 つの端末で次を実行します。
$ env RUST_LOG=debug cargo run --example channels --features use-udp,bevy/default -- --server
2 番目の端末で次を実行します。
$ env RUST_LOG=warn cargo run --example channels --features use-udp,bevy/default -- --client
3 番目 (および 4 番目など) の端末で次を実行します。
$ env RUST_LOG=warn cargo run --example channels --features use-udp,bevy/default -- --client
任意のクライアント ウィンドウにフォーカスし、 Arrow-Left
/ Arrow-Right
カーソル キーを使用して「ボール」の軌道を変更できます。あなたのコントロール ボールが他のすべてのクライアントと同期していることを確認します。
追加の依存関係が必要なため、ブラウザベースのグラフィカル チャネルのサンプルを別のリポジトリに保存することにしました。 https://github.com/ostwilkens/arugio プロジェクトを参照してください。これは単純な四角いボールの例から少し進化したもので、ゲームの基礎として機能する可能性があります。