rapier
ggpo
rapier | ggpo | |
---|---|---|
40 | 22 | |
4,377 | 3,266 | |
2.8% | 1.0% | |
8.9 | 0.0 | |
14 days ago | 9 months ago | |
Rust | C++ | |
Apache License 2.0 | MIT License |
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.
rapier
- Show HN: A Marble Madness-inspired WebGL game we built for Netlify
-
Xkcd 2916: Machine
Ok, so this uses https://rapier.rs/ which is very cool
Rapier, alongside https://nalgebra.org/ (which it uses underneath) has seriously good documentation and some advanced features like cross-platform determinism (something made hard by the way floating point differs between platforms)
-
Rust Game Physics Engines: PhysX, Rapier, XPBD & Others
Code examples: see examples2d, examples3d-f64 and examples3d directories
- Rapier: Fast 2D and 3D physics engines written in Rust
-
Bevy XPBD: A physics engine for the Bevy game engine
What are the pros and cons compared to something like Rapier? When should one use Bevy XPBD instead of Rapier, or vice versa?
-
What's everyone working on this week (22/2023)?
Still using Rust in a browser-based multiplayer party game I'm working on! I'm using Actix Web for the backend and rapier2d to handle my game's physics. I'm looking to make some more connections amongst the developer / gaming community through my game down the line.
-
Constructing a piston/muscle/gas strut in bevy_rapier3d?
I have noticed that Rapier 0.17 contains a RopeJoint struct, which constrains maximum distance between two dynamic bodies. It doesn't seem to have found its way into bevy_rapier3d yet so I haven't understood whether it supports (half of) my use case, and looking at the code (https://github.com/dimforge/rapier/blob/master/src/dynamics/joint/rope_joint.rs) I really cannot see how it is actually implemented and how I could extend it to also set a minimum distance, but this may be a place to start.
-
Next part of my platformer in bevy series
I was also frustrated with the kcc, so I opened a PR that fixes most of my issues: https://github.com/dimforge/rapier/pull/446
-
What libraries does Idris need to increase adoption?
Likewise, see the js bindings of Rapier.
-
Good resources for structuring a 2d physics engine in Rust?
Maybe check out how Rapier does it. Rapier is likely the most advanced physics engine in Rust. (Though Embark Studios is doing some crazy stuff with ML physics.)
ggpo
-
Q: How are online games like Street Fighter 6 able to synchronize inputs from two players at a high frame rate? (60fps)
As mentioned in the top comment, rollback and client side prediction is key. One of the more robust and popular libraries that do this specifically for fighting games is GGPO. When it was opened sourced a few years ago it was a fairly big deal as games that used it felt great. Larger studios have their own libraries but the concept is the same. Its worth a look through if you want to implement something on your own.
-
Virtual Venerable Vestments - Weekly Discussion Thread, May 8th, 2023
I just did a quick Google so I don't know the exact details, but I think Max said Idol Shodown is running GGPO which, as far as I can tell, is open source.
-
2D Fighting Game Engines in 2023
will reply here also in case anyone else wanted an answer. You could use the original C++ library with C++ or any language that interops with C++ (e.g. C#), so that's there for ya if you need
- What was your "Holy crap...This is like, an actual game" moment
-
rolled back
Sure thing bud. I guess we'll just keep pretending like Code Mystics, the same people that did the KI netcode, haven't partnered with SNK because SNK realized their shit sucks and they needed external assistance. We'll pretend like the source code for GGPO is hidden away in the recesses of Tony Cannon's mind or that it isn't open and free for anyone to use or that it doesn't have Japanese documentation. We'll pretend like MikeZ didn't implement a version of GGPO in Skullgirls in 2012.
-
Lesser known fields or industries?
GGPO is a common implementation and it's all open source if anyone wants to get into the nitty-gritty: https://github.com/pond3r/ggpo
-
[Summary] Help wanted with Backroll-rs (new networking library) r/rust
Backroll-rs is a brand new networking library based on GGPO dedicated to peer-to-peer Rollback Netcode, for use in fighting games, platform fighters, and other games with less than 8 players that require low latency. We are looking for programmers familiar with Rust to help finish this project. We are 80% of the way completed with this project, but we need more unit tests and debugging to fully finish it.
-
Why is online so hard for fighting games?
This doesn't work in the comparison to shooters. Shooters operate through a server, while fighting games are peer-to-peer. They only require a server for matchmaking purposes. Doing the peer-to-peer part actually puts fighting game devs at an advantage compared to other genres, as there's libraries and documentation for those libraries to either plug and play a rollback solution or build one buy looking at existing source code complete with solid documentation.
-
Rant: I love Street Fighter V ! But I HATE the netcode! Please Capcom! Let SF6 have good netcode!!
GGPO doesn't really solve the biggest problem with SFV's netcode, which is client timesync. It does have code in there to handle it by slowing down the client that's ahead and allowing the client that's behind to catch up, but that doesn't fix the fact that one client consistently gets ahead in the first place, and also means the faster client will see more stuttering or slowdown.
- Honest opinion about rollback netcode
What are some alternatives?
JoltPhysics - A multi core friendly rigid body physics and collision detection library. Written in C++. Suitable for games and VR applications. Used by Horizon Forbidden West.
geckos.io - 🦎 Real-time client/server communication over UDP using WebRTC and Node.js http://geckos.io
bevy - A refreshingly simple data-driven game engine built in Rust
nakama - Distributed server for social and realtime games and apps.
parry - 2D and 3D collision-detection library for Rust.
webtransport - WebTransport is a web API for flexible data transport