WebSockets are the most popular technology for developing multiplayer html5 games. They allow bidirectional communications between clients and server using a single socket TCP.
There are several options for working with WebSockets. The most common and simple is Socket.io. We implemented sockets.io on our first projects. However, due to the increasing complexity and demands of our current projects we decided to change to SocketCluster.
Why we love doing html5 multiplayer games using SocketCluster
SocketCluster is an open source framework optimized to run with Kubernetes (K8s). It’s the base for our multiplayer development for the following reasons:
- Because it’s faster and more versatile than socket.io. SocketCluster uses µwebsockets (coded in C++) and offers pub/sub.
- Highly reliable.
- Supports custom codecs during transmission to increase data exchange speed.
- It’s easy to scale. Vertically using multiple cores of the CPU of a single host and horizontally with several servers. It doesn’t require Redis to share the state between processes.
For all of you looking for an introduction to SocketCluster we recommend this complete example of an Agar.io game type:
MultiPlayer game example using phaser on GitHub.
Finally, here a very useful comparison of the main modules implementing WebSockets: