tangle
Ambient
tangle | Ambient | |
---|---|---|
2 | 23 | |
1,156 | 3,728 | |
- | 1.1% | |
2.0 | 9.9 | |
about 1 year ago | 4 months ago | |
TypeScript | Rust | |
MIT License | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
tangle
-
Ambient: The Multiplayer Game Engine
This seems like a mostly very well thought out design (I have a qualm about one detail but maybe they're hiding it), I've been rebuilding an old prototype of mine in a very similar way.
The DoD ECS pattern should allow for easy state/log shipping to clients, with those 2 parts you can easily build what fighting games terms as "rollback" based netcode.
Rollback is often characterized as complicated but clean, the truth is that if you structure your data around rollback capable simulation from day one it becomes easy (and DoD ECS naturally fits there just like shipping to separate CPU parts back on the PS3)
This "trick" of fully shipping state images isn't exactly new, some emulators has done memory image shipping in the past and Ian Kattlewell published a WASM-heap shipping experiment(1) recently that works on the same principle.
Compared to the snapshot/heap shipping of emulators/WASM is that Ambient should allow for server introspection and upgrades of state.
Overall I like Ambient, and I'd recommend a look. Only big omission I see right now is audio being missing and it can be a tricky part to synchronize (due to how mixing works).
1: https://github.com/kettle11/tangle
- Simple Multiplayer / Networked WebAssembly
Ambient
- FLaNK Stack Weekly 09 Oct 2023
-
Show HN: Ambient, a multiplayer game engine and platform using WASM/WebGPU/Rust
Hi, this is Kuba from Ambient team, I work on Ambient backend.
The servers in question are part of the main Ambient application [0]. The server part is open-source just like the rest of the engine. You can start your own server using native build of Ambient (check cli help for `ambient serve`).
As for the orchestration and creating servers on demand, we are using Kubernetes and Agones [1]. Both of them are open too. We just have a thin API server that receives requests that a server is needed, checks if there's already one running and if not it uses Agones to allocate one.
[0]: https://github.com/AmbientRun/Ambient
- How do I run multiple "game rooms" in Bevy / Renet / Rapier on the server?
-
Bevy and WebGPU
Intriguing development! It's quite refreshing to witness Bevy hopping onto the WebGPU bandwagon. I can't help but wonder about the complexity involved in transitioning an existing codebase from WebGL to WebGPU in such a compressed timeline.
On a similar note, Ambient (https://github.com/AmbientRun/Ambient) has been on my radar for their utilization of WebGPU, though they seemingly lack a tangible web demo. Anyone have any insights or comparisons to share?
- Ambient 0.2 – Multiplayer games and apps with Rust, WebAssembly and WebGPU
- Ambient – The Rust Multiplayer Game Engine Releases 0.2
-
Ambient 0.2: multiplayer UI, sound, clientside WASM, and more
- Finally, our UI framework, Ambient UI, can now be used from guest code. Combined with our networking and ECS, this unlocks an exciting new capability: multiplayer UI!
In the blog post, we walk through the creation of a basic multiplayer beat sequencer using these features. We're excited to see what else the community can cook up :)
- Download: <https://github.com/AmbientRun/Ambient/releases/tag/v0.2.0>
Download: https://github.com/AmbientRun/Ambient/releases/tag/v0.2.0
-
Does anyone here work in gamedev with Rust as their primary language?
I work on Ambient, an open-source platform for streamed[1] multiplayer games written entirely in Rust. We're a Swedish startup that supports remote and we're hiring for self-starters - if you think you can flourish in a startup environment, feel free to apply!
What are some alternatives?
tokio-tungstenite - Future-based Tungstenite for Tokio. Lightweight stream-based WebSocket implementation
jpeg2000-decoder - Decodes JPEG 2000 images in a subprocess, for safety