RealtimeMultiplayerNodeJS is a framework specifically for building HTML5 multiplayer games with the Client / Server model. In this model, connected users send only input and the game itself runs on the server.
Clients are interpolate between two known world snapshots based on the current synchronized time.
How to use
- Download this repo
- In the terminal type “node js/DemoHelloWorld/server.js”
- Browse to “/DemoHelloWorld.html”
RealtimeMultiplayerNodeJS comes with 3 demos
The most basic interesting working demo I could come up with. Objects move from left to right
A demonstration of the engine’s simple CircleCollision engine, which can provide you with simple collision information and fires an event when two objects collide with the two objects.
This demo also shows one implementation of having a special kind of entity which is controlled by the keyboard from a connected user. A character controlled entity
This demo uses a Box2D.js implementation to create a world, and show’s off the idea of synchronized physics, and taking advantage that all the simulation happens on the server.
It also shows synchronized interaction between multiple users, and an example of sending a message to the server which it interprets back into the game
Similar to a previous post, where I provided a basic template for my CAAT circle-collision manager, i wanted to provide the most utterly basic hello-world template possible for CAAT that does almost nothing except put initialize and draw a single object.
You can find that here:
(Select downloads, and select EntryPoint)
CAAT is short for Canvas Advanced Animation Toolkit. It is written by @hyperandroid, the code itself is a dream to look thru. Its insanely well written, and whats more greater is that it’s even faster than it is nicely written!
I used it for, http://holiday2010.ogilvy.com which I plan on writing about a little bit more in the future. Because I liked CAAT so much, and it saved my butt on that project, I wanted to contribute back to it, so I have added my simple CircleCollisionManager class back into it.
I wanted to create the most basic shell, in order to get it up and running with something displaying on the screen. So I have shared the source for the code below which i tried to keep as succinct as possible.
Most basic helloworld with CAAT
Here is the code for that:
I tried my best to make it have code that contains enough useful functions that show off a few CAAT features, without getting too far beyond HelloWorld.