Skip to content

brett19/node-universes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

74 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Universes

Game Server development framework written in Node.js

Goals

The primary goal of Universes is to provide a framework for building next generation multiplayer and socially interactive games using Node.js. To do this, we want to build a solid core through which further modules can be attached on, the following is a list of some of these targets for the core as well as secondary modules:

  • Easy data persistence handling using Couchbase. node-ottoman is a good base for implementing this, but is immature.
  • Autonomous clustering of many universe processes acting as a cluster of nodes.
  • Built-in REST api for handling debug information, system statistics, administration capabilities and other not-real-time server endpoints.
  • Real-time communications with clients through technologies like websockets, raw tcp/udp sockets or other streaming protocols.
  • Cryptography helpers built in.

Additionally, here is a list of higher level modules which would be interesting to add.

  • Authentication
  • Cryptography helpers.
  • Player online/offline mailbox support.
  • Packaged modules for handling the distribution of connected real-time players accross a number of universe nodes within the cluster.
    • Rooms - Splitting users based on the specific room they have joined.
    • Zones - Splitting users based on what zone (or maps as they are sometimes referred to) they are in, additionally, players only receive information for players that are nearby.
    • World - Splitting users based on automatically distributed regions of one massive world (open-world). Players still only receive event notifications that are specific to them.

To-Do

In addition to the specific goals above. There are a number of low-level to-do items which should be considered and properly implemented.

  • Design a sane interface for handling a plugin architecture. This is complicated by the fact that in a lot of cases, once a plugin has been attached to your Universes app, you still need direct access to that modules instance to perform setup tasks.
  • Develop a sane way to handle both rest and real-time networking. Reconsidering the .get/.post/.put/.del and .nemit/.non methods is probably in order.

About

Game Server development framework written in Node.js

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •