From d443305882a907bbfe4225690a4d551e0ddd56af Mon Sep 17 00:00:00 2001 From: Johan Klokkhammer Helsing Date: Mon, 4 Oct 2021 10:33:48 +0200 Subject: [PATCH] N26: Matchbox Part of #783 --- content/news/026/index.md | 35 ++++++++++++++++++++++++++++++++++ content/news/026/matchbox.png | Bin 0 -> 51854 bytes 2 files changed, 35 insertions(+) create mode 100644 content/news/026/matchbox.png diff --git a/content/news/026/index.md b/content/news/026/index.md index 26451f94e..d911741e4 100644 --- a/content/news/026/index.md +++ b/content/news/026/index.md @@ -213,6 +213,41 @@ As the godot-rust community keeps growing, the project can now be found [gd-discord]: https://discord.com/invite/FNudpBD [gd-twitter]: https://twitter.com/GodotRust +### [Matchbox] + +![matchbox demo screenshot: Waiting for 3 more players](matchbox.png) + +Matchbox by [@jkhelsing] is a new peer-to-peer networking project for +establishing unreliable, unordered connections between peers on the internet. +The goal is to enable low-latency multiplayer games written in Rust WASM. + +Matchbox consists of: + +- A tiny signalling server, [`matchbox_server`], which acts as a rendezvous +point. It helps peers discover each other and deal with NAT traversal in order +to establish more direct ways of communication. +- A crate, [`matchbox_socket`], which handles connecting to a signalling server +and establishing a WebRTC data channel between each connected peer. +- A [demo/template project][matchbox_demo] using [Bevy](https://bevyengine.org) +and [GGRS] to implement a web game with peer-to-peer rollback netcode. A live +version is hosted [here][helsing_box_game]. + +More info is available in the [repository][Matchbox] and [introductory blog +post][matchbox_intro]. + +_Discussions: +[/r/rust](https://www.reddit.com/r/rust/comments/pmsynh/introducing_matchbox_painless_peertopeer_webrtc/), +[twitter](https://twitter.com/jkhelsing/status/1437044006068830215)_ + +[Matchbox]: https://github.com/johanhelsing/matchbox +[matchbox_intro]: https://johanhelsing.studio/posts/introducing-matchbox +[`matchbox_socket`]: https://crates.io/crates/matchbox_socket +[`matchbox_server`]: https://crates.io/crates/matchbox_server +[matchbox_demo]: https://github.com/johanhelsing/matchbox/tree/main/matchbox_demo +[helsing_box_game]: https://helsing.studio/box_game +[@jkhelsing]: https://twitter.com/jkhelsing +[GGRS]: https://gschup.github.io/ggrs/ + ## Popular Workgroup Issues in Github diff --git a/content/news/026/matchbox.png b/content/news/026/matchbox.png new file mode 100644 index 0000000000000000000000000000000000000000..7b39a0029c70f09539a6e0c9dc28d62d33c21b1d GIT binary patch literal 51854 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