Giter VIP home page Giter VIP logo

node-universes's Introduction

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.

node-universes's People

Contributors

brett19 avatar rdev5 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

node-universes's Issues

Config needs to be moved.

Considering this is going to essentially be a 'framework' with numerous different sample projects underneath it. It no longer makes sense to distribute config files as part of the root project, but instead these configs should be used by the samples and then passed to the universes module. All code currently using configurations should take options from the user, and then the only code using a config file should be lib/server.js, once this is completed, we can rearrange the project such that lib/server.js is actually a sample rather than a top-level item.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.