xkcd HTML5 Canvas MMO WebSocket Scaling with PubNub
Hello all hackers from HackerNews. We noticed a new MMO was released by n01se and xkcd yesterday (September 26th, 2012) with multiple users flying around with a balloon figure. If you got stuck, you can click your balloon guy and turn into a ghost to seamlessly move through the landscape unhindered by mortal barriers like trees and hills.
There was a problem however with the scaling of users on the system. The max concurrency could only be 20 users at a time leaving many wonder where the MMO part of the MMO was.
We saw an opportunity to save the day and scale using PubNub’s real-time cloud based global infrastructure. This allows the concurrency to scale easily. Note that in order to do this in a short time frame, we excluded some important security precautions. However we hope you play nice in this real-time MMO that actually scales.
- Click to Move.
- Type to talk.
- Press Enter to Clear.
- Type “I am YOUR_NAME” and Press Enter.
Note that in order to switch from the non-scaled Node.JS server to PubNub, we had to come up with a solution to replace the server side with a full 100% client side solution. Therefore, we built an RFC 6455 WebSocket Client that works with all users and browsers. By doing this, you are actually connecting to a PubNub Edge Node nearest your location, creating a fast, low latency connection. Now you can relax, sit back and play a real MMO courtesy of PubNub.
- Homage to n01se and xkcd, especially 1110.
- No server required courtesy of PubNub.
- RFC 6455 Support for WebSocket Client Specification Written by Stephen Blum.
- Port from original author written by the PubNub Team.
- Download/Clone Source Code Repository: GitHub Source Code.