Colyseus is an Authoritative Multiplayer Game Server for Node.js, with clients available for the Web, Unity3d, Defold, Haxe, and Cocos2d-X. (See official clients)
The project focuses on providing synchronizable data structures for realtime and turn-based games, matchmaking, and ease of usage both on the server-side and client-side.
The mission of the framework is to be a standard netcode & matchmaking solution for any kind of project you can think of!
You're encouraged to take a look on some games being developed with it and make your own!
What Colyseus provides to you:
- WebSocket-based communication
- Simple API in the server-side and client-side.
- Automatic state synchronization between server and client.
- Matchmaking clients into game sessions
- Scale vertically or horizontally
What Colyseus won't provide:
- Game Engine: Colyseus is agnostic of the engine you're using. Need Physics? Add your own logic / package.
- Database: It's up to you to configure and select which database you'd like to use.
See roadmap for our future plans.
🚀 Quickstart
Create a bare-bones Colyseus server by using npm init colyseus-app
.
npm init colyseus-app my-colyseus-server
cd my-colyseus-server
npm start
🕹️ Official Client Integration
- JavaScript/TypeScript
- Defold Engine (defold.com)
- Unity (unity3d.com)
- Haxe (haxe.org)
- Cocos2d-x (cocos2d-x.org)
- Construct 3 (construct3.net)
🛠️ Tools
- @colyseus/social - Authentication and Social features for Colyseus
- @colyseus/proxy - Proxy & Service Discovery for scaling Colyseus
- @colyseus/monitor - A Web Monitoring Panel for Colyseus
- @colyseus/loadtest - Utility tool for load testing Colyseus
Tools made by the community ❤️
- colyseus-hxjs: Haxe externs for colyseus server (by @serjek)
- colyseus-java: Client for Java (by @doorbash)
- Colyseus-ObjC: Client for Objective C (by @swittk)
- Colyseus-for-C2: Client for Construct 2 (by @Keevle)
Usage examples
See the official examples for usage reference with the latest version of Colyseus.
- Colyseus + PixiJS Boilerplate (source-code) - Simplistic agar.io implementation using PixiJS
- Colyseus + BabylonJS Boilerplate (source-code) - Bare-bones BabylonJS example
- Tic Tac Toe (source-code) - Tic Tac Toe using PixiJS and Defold Engine
- Collaborative Drawing Prototype (source-code) - Collaborative drawing using HTML5 canvas.
- (outdated: < v0.8.x): tanx, react-example, LD35 entry: dotower
Contributors
Thanks goes to these wonderful people (emoji key):
Endel Dreyer 💻 📖 💡 |
Kyle J. Kemp 💬 🐛 💻 💵 🤔 |
Jonas Voland 💬 🐛 💻 💵 🤔 |
Milad Doorbash 🐛 💻 |
Tom 💬 🐛 🤔 |
James Jacoby 💡 💵 🖋 |
Nikita Borisov 🐛 💻 💵 🤔 |
---|---|---|---|---|---|---|
Phil Harvey 💵 📖 |
Brian Hay 💵 |
Enriqueto 💵 |
digimbyte 📖 |
Federico 🐛 💻 |
Derwish 🐛 🔧 |
This project follows the all-contributors specification. Contributions of any kind are welcome!
Contributing
We encourage you to contribute to Colyseus! Please check out the Contributing guide for guidelines about how to proceed. Join us!
Everyone interacting in Colyseus and its sub-projects' codebases, issue trackers and chat rooms is expected to follow the code of conduct.
Backers / Supporters via Patreon
Generous backers:
- Kyle Kemp
- Wenish
Backers:
- Brian Hay
- Damian Alberto Pastorini
- Endre Johnsen
- enriqueto
- Eric McDaniel
- Halil Bilgin
- James Jacoby
- João Mosmann
- LeeSeHeon
- Nikita Borisov
- Phil
- Plaid World
- Rob Drake
- tobi4s1337
- Worph
License
MIT