We begin with Jeff’s exploration into using Rust code for browser programs. A watershed for the game’s performance, or a terrible digression into overengineering? You be the judge. We then discuss a nice article on Killer Instinct’s multiplayer code, which implements a rollback-based system that is distantly related to Manchester’s multiplayer synchronization system. This leads us down a rabbit hole where we attempt to add input delay. It’s supposed to make the dash mechanic look better in multiplayer, but instead, it just leaves us confused. This is programming, folks.
Notes/highlights:
- A nice introduction to rollback-style networking code (the same technique Manchester uses), with special attention paid to how it’s used in modern fighting games: https://ki.infil.net/w02-netcode.html
- Operator overloading in Rust: https://doc.rust-lang.org/rust-by-example/trait/ops.html
- A good overview of network address translation and stateful firewalls: https://tailscale.com/blog/how-nat-traversal-works/