Lance: Real-time Multiplayer Game Server
Developing a good game is an undertaking that is fraught with many challenges. Those challenges are multiplied if you want to create a real-time multiplayer game.
The authors of Lance, a multiplayer game server based on Node.JS, have these challenges in mind. So they created the Lance open-source project to help developers focus on making games, and not writing codes for network synchronization.
“Real-time multiplayer games aren’t actually real-time. They only offer the illusion that everyone is playing the same game, in the same world, at the same time.”
– Opher & Gary, creators of Lance
Lance solves issues that are intrinsic to the network system, especially lag or latency. Doing so will give the players a smooth visual experience.
The following are the features of Lance that have been implemented (more are in the pipeline):
- Optimized networking
– TCP via websockets
– Communication is packed and serialized into binary
– Automatic handling of network spikes with step correction
- Intelligent sync strategies for lag handling
– Extrapolation (client side prediction) with step re-enactment or:
– Interpolation for optimal object motion
- Tools for debugging and tracing
A game called Spaaace is available to demonstrate the capabilities of Lance. You can try playing it here.
Check out Lance on github.