An open API service indexing awesome lists of open source software.

https://github.com/colyseus/colyseus

⚔ Multiplayer Framework for Node.js
https://github.com/colyseus/colyseus

colyseus game-server multiplayer multiplayer-game-engine multiplayer-game-server networking nodejs realtime-games turn-based websockets

Last synced: 16 days ago
JSON representation

⚔ Multiplayer Framework for Node.js

Awesome Lists containing this project

README

          
















Discussion forum


Multiplayer Framework for Node.js.
View documentation


Colyseus is an Authoritative Multiplayer Framework for Node.js, with SDKs
available for all major platforms and engines.

## Client SDKs

| Platform | Install | Documentation | Demo |
|----------|---------|---------------|------|
| TypeScript | `npm install @colyseus/sdk` | [Getting Started](https://docs.colyseus.io/getting-started/typescript) | [PlayCanvas](https://github.com/endel/tank-battle-multiplayer/tree/master/web-playcanvas) |
| React | `npm install @colyseus/react` | [Getting Started](https://docs.colyseus.io/getting-started/react) | [R3F Lobby](https://github.com/endel/r3f-lobby-car-prototype) |
| Unity | [Download](https://github.com/colyseus/colyseus-unity3d/releases/latest/download/Colyseus_Plugin.unitypackage) | [Getting Started](https://docs.colyseus.io/getting-started/unity) | [Tank Battle](https://github.com/endel/tank-battle-multiplayer/tree/master/unity) |
| Godot | [Download](https://github.com/colyseus/native-sdk/releases?q=godot+sdk&expanded=true) | [Getting Started](https://docs.colyseus.io/getting-started/godot) | [Tank Battle](https://github.com/endel/tank-battle-multiplayer/tree/master/godot) |
| GameMaker | [Download](https://github.com/colyseus/native-sdk/releases?q=gamemaker+sdk&expanded=true) | [Getting Started](https://docs.colyseus.io/getting-started/gamemaker) | [Tank Battle](https://github.com/endel/tank-battle-multiplayer/tree/master/gamemaker) |
| Defold | See documentation → | [Getting Started](https://docs.colyseus.io/getting-started/defold) | [Tank Battle](https://github.com/endel/tank-battle-multiplayer/tree/master/defold) |
| Construct | [Download](https://www.construct.net/en/make-games/addons/111/colyseus-multiplayer-sdk) | [Getting Started](https://docs.colyseus.io/getting-started/construct3) | [Raw Demo](https://github.com/colyseus/construct3-demo) |
| Haxe | `haxelib install colyseus` | [Getting Started](https://docs.colyseus.io/getting-started/haxe) | [Tank Battle](https://github.com/endel/tank-battle-multiplayer/tree/master/haxe) |
| C / Static Libraries | [Download](https://github.com/colyseus/native-sdk/releases?q=%22Colyseus+Native+SDK+-+Static+Library%22&expanded=true) | [GitHub](https://github.com/colyseus/native-sdk) | [raylib](https://github.com/colyseus/native-sdk/tree/main/platforms/raylib) |

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!

## Why developers choose Colyseus:

- ⚡️ **Real-time state sync that just works** → Define your state on the server and it automatically synchronizes to all clients, delta-compressed and binary-encoded.
- ⚔️ **Built-in matchmaking** → Room-based architecture with filtering, queuing, and reconnection support out of the box.
- 📈 **Scalable** → Go from 10 to 10,000+ CCU by scaling vertically or horizontally with Redis and load balancers.
- 🛡️ **Cheat-proof by design** → Authoritative server model ensures game logic runs on the server, not the client.
- 🛠️ **Use the tools you already know** → Built on Node.js and TypeScript with a simple, familiar API on both server and client.
- 💙 **Free forever** → MIT licensed, even for commercial games.

See [public roadmap](https://docs.colyseus.io/roadmap) for version 1.0.

# 🚀 Quickstart

Set up your own Colyseus server project for your game using `npm create colyseus-app@latest`:

```
npm create colyseus-app@latest ./my-server
cd my-server
npm start
```

# Sponsors

The sustainability of the project relies on **Colyseus Cloud** subscriptions and sponsorships. If you are not using Colyseus Cloud, please consider [sponsoring the project](https://github.com/sponsors/endel) 💖



# Contributors ✨

Thanks goes to these wonderful people ([emoji key](https://github.com/kentcdodds/all-contributors#emoji-key)):



Aymeric Chauvin

💬 💡

Brian Hay

🖋

Damian A. Pastorini

💬 📖 🐛

Darek Greenly

💬 🐛 💻

David Rydwanski

💬 💻

Dr. Burton

🧑‍🏫

Endel Dreyer

💻 📖 💡



Enriqueto

💼

Fazri Zubair

💼

Federico

🐛 💻

James Jacoby

💬 💡 🖋

Jonas Voland

💬 🐛 💻 🤔 💡

Kyle J. Kemp

💬 🐛 💻 🤔

Luke Wood

💬 🐛 💻



Milad Doorbash

🐛 💻

Nikita Borisov

🐛 💻 💼 🤔

Phil Harvey

📖

Sergey

🐛 💻

Sophie

💬 🐛 🤔

Tommy Leung

🧑‍🏫

digimbyte

📖

This project follows the [all-contributors](https://github.com/kentcdodds/all-contributors) specification.
Contributions of any kind are welcome!

# Contributing

We encourage you to contribute to Colyseus! Please check out the [Contributing
guide](.github/CONTRIBUTING.md) 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](CODE_OF_CONDUCT.md).

# License

MIT