As we gain confidence in our multiplayer implementation, we start to flip the lights back on for several other gameplay systems. Bullets move again, and the player can’t drive through walls anymore! But new systems mean new problems. We wrack our brains to figure out a mysterious collision issue, and begin to suspect our client-side prediction system is getting too expensive.
Notes/highlights
- You can’t use UDP in the browser! Here’s netplay guru Glenn Fielder’s exploration of this tricky limitation for games running the browser: https://www.gafferongames.com/post/why_cant_i_send_udp_packets_from_a_browser/
- The handy Typescript “Pick” type: https://www.typescriptlang.org/docs/handbook/utility-types.html#picktype-keys
- “Dependency injection”, a key technique for implementing “inversion of control”. Two fancy terms for simple ideas that will score points with the geeks: https://en.wikipedia.org/wiki/Dependency_injection
- ReCAPTCHA, a system ostensibly for preventing non-human interaction with websites, and doubles as a computer vision training system for Google’s profit: https://en.wikipedia.org/wiki/ReCAPTCHA