8000 GitHub - msholty-fd/colyseus: Multiplayer Game Server for Node.js.
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

msholty-fd/colyseus

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

colyseus

Multiplayer Game Server for Node.js. View documentation.

Join the chat at https://gitter.im/gamestdio/colyseus Build Status OpenCollective OpenCollective

Read the blog post to understand the motivation behind this project.

Features / Characteristics

  • WebSocket-based communication
  • Binary delta compressed state (through msgpack / fossil-delta-js)
  • Match-making
  • Custom room handlers
  • Lag compensation (using timeframe, a Timeline implementation) - Not automatic. You should apply the technique as you need, in the client and/or the server.

Client integration

Usage examples


Room handler API

Room properties

  • clock - A ClockTimer instance
  • timeline - A Timeline instance (see useTimeline)
  • clients - Array of connected clients

Abstract methods

Room handlers must implement all these methods.

  • onJoin (client) - When a client joins the room
  • onLeave (client) - When a client leaves the room
  • onMessage (client, data) - When a client send a message
  • onDispose () - Cleanup callback, called after there's no more clients on the room

Methods:

Room handlers have these methods available.

  • setState( object ) - Set the current state to be broadcasted / patched.
  • setSimulationInterval( callback[, milliseconds=16.6] ) - (Optional) Create the simulation interval that will change the state of the game. Default simulation interval: 16.6ms (60fps)
  • setPatchRate( milliseconds ) - Set frequency the patched state should be sent to all clients. Default is 50ms (20fps).
  • useTimeline([ maxSnapshots=10 ]) - (Optional) Keep state history between broadcatesd patches.
  • send( client, data ) - Send data to a particular client.
  • lock() - Lock the room to new clients.
  • unlock() - Unlock the room to new clients.
  • broadcast( data ) - Send data to all connected clients.
  • disconnect() - Disconnect all clients then dispose.

Backers

Support us with a monthly donation and help us continue our activities. [Become a backer]

Sponsors

Become a sponsor and get your logo on our README on Github with a link to your site. [Become a sponsor]

License

MIT

About

Multiplayer Game Server for Node.js.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 77.7%
  • JavaScript 22.3%
0