Last Updated on January 3rd, 2012 (sub-pages have their own dates)
Isogenic Engine includes an advanced realtime networking system that abstracts away the complex details of multiplayer / networked game programming whilst allowing you to maintain low-level control when it is desirable to do so.
The core networking system is not just a simple socket server written with Node.js. Isogenic runs the same engine code on both client and server and automatically propagates changes to the game simulation to connected clients using regular world update packets. On the client-side the update packets are received and interpolated over to create a smooth and robust gaming experience.
Isogenic features code that runs on both client and server, regular tick-based network world updates with auto-propagation, client-side entity interpolation and data compression all built-in. No special code is required to use these features, they are enabled out-of-the-box.
Here is a basic 2d example of the engine’s networking system running 14 connected clients viewing a simulated 9-player game (there are 9 realtime networked world entities). The physics simulation is being calculated and simulated entirely server-side and no physics code is running on the client. In effect, the client-side engine is acting as a “dumb terminal” and just outputs graphical data as instructed by the server. As you can see, all browser windows display the exact same simulation at the exact same time across PC, Mac and iPad:
There is no special code to do this… simply updating an entity’s position, rotation, scale or any other networked property on the server will automatically update all connected clients during the next world network interval and once received the clients then interpolate between the previous interval data and the current one. This networking system just works… out of the box. Isogenic Engine is the only HTML5 game engine in the world that includes advanced realtime networking with all of these features as standard.