n3d-gamecore

3D multiplayer core functionality game engine component.

npm install n3d-gamecore
5 downloads in the last week
20 downloads in the last month

n3d-gamecore (0.0.3-alpha)

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.

3D WebGL Multi-Player Game Engine (Node.js / Three.js / HTML5)

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.

Change history

Realtime Multiplayer In HTML5

Read the original article here (2D only): http://buildnewgames.com/real-time-multiplayer/

Getting started

  • Grab the most recent release bundle from here
  • extract all the files (from the zip/tarball)
  • rename n3d-gamecore-<release_name> to just n3d-gamecore
  • type cd n3d-gamecore/public/
  • Grab the latest three.js release from here
  • extract all the files (from three.js zip/tarball)
  • check that the links in n3d-gamecore/public/index.html can access three.min.js (& dat.gui.min.js is optional)
    • you will probably just need to rename the three.js-r?? folder to three.js
  • type cd .. to get back to the n3d-gamecore root folder
  • run npm install (to download the node module dependencies)
  • run npm start (to start the game server running)
  • Visit http://localhost:8000 with your browser
    • use http://localhost:8000/?debug as 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

  1. enable the Emulate touch events setting in the browser ( and use the mouse ) or
  2. change mouseSupport: false to true in public/js/main.js ( and use the mouse )

MIT Licensed.

npm loves you