3D multiplayer core functionality game engine component.
the codebase is considered ALPHA quality only, should be OK to use but is 'unstable' because the API will probably change without notice. If you pull updates from 'dev' branch and it breaks your code, its on you, that is your warning. Use at own risk.
You also need to install the Three.js library wherever you are hosting the server because it is not bundled with this component.
This is a Node.js websockets application which provides the core functionality of a 3D multi-player game engine, most of the original 2D code remains, it has been re-purposed to provide the player mini-map overhead view, the client and server messaging subsystem implements client prediction and responds to client input with authoritative server update packets using socket.io (Express is included but its only doing basic routing to serve the 'public/' folder files at the moment) and all of the 3D scene rendering in the browser is provided by Three.js, all connected clients will need to be running a modern WebGL/HTML5 compatible browser (such as Chrome or Firefox)
This is not a fully functional game, it is intended to be a scalable realtime massively multi-player component to incorporate into your game project, my goal is to support up to 512k concurrent connections (at a future stage of the project). The concept will be to keep this core component as lean and efficient as possible without adding many additional features (i.e. sophisticated collision physics) but to also include a stable API so that those extra features can easily be provided by other Node.js modules.
Read the original article here (2D only): http://buildnewgames.com/real-time-multiplayer/
cd ..to get back to the
npm install(to download the node module dependencies)
npm start(to start the game server running)
http://localhost:8000with your browser
http://localhost:8000/?debugas the URL if you want to enable the debug interface.
NOTE: the movement controller is designed for a device with a touchscreen, if you have a normal (non-touch) screen you can either
Emulate touch eventssetting in the browser ( and use the mouse ) or
public/js/main.js( and use the mouse )