Firstly, thank you so much to the Babylon Team for providing the Babylon.js engine, which has made development so intuitive and has allowed me to focus mostly on the game logic. For anyone looking to dive into creating 3D experiences on the web and choosing among engines, Babylon.js is the clear winner.
Also, thank you so much to the Babylon community for answering questions and providing examples, which made this progress possible.
Disclaimer: None of the 3D models are my work. The character model is from Mixamo and the weapon models are from Krunker.io.
About the progress video:
Custom netcode with
- Client-side prediction (allows responsive gameplay on the client side)
- Entity interpolation (allows smooth movement of other players on the client side)
- Lag compensation (allows the server to rewind the game state to what each client sees, allowing players to shoot directly at each other and deal damage despite lag)
made possible thanks to these awesome references:
Gabriel Gambetta’s netcode tutorials
Valve netcode tutorial
nengi documentation by @timetocode