Hi @Kinrany, thanks for checking out the project.
Is Colyseus that?
AFAIK these platforms you mentioned will provide servers and resources to host your game. When using Colyseus it will be up to you where to host the server and scale it (if necessary). As Colyseus is just a networking framework, it also doesn't provide any kind of game logic out of the box. You'd need to implement everything by yourself.
it also seems to include extra features
The major feature of the framework is having the entire state of a game session being synchronized automatically from the server to all connected clients. This works great if your game state is not too big. Otherwise it's recommended to broadcast/dispatch events instead of using the state.
Couldn't matchmaking be built on top of state synchronization, as a separate library?
In theory, yes. Currently, we haven't seen a use case for this. Most games need to have multiple sessions, and matchmaking comes along with it.
Does it include client-side prediction?
Not at the moment. I believe client-side prediction is not easily pluggable in a way that the framework abstract everything for you. It depends on the type of game you're making. Most HTML5 games out there don't use client-prediction at all. I'd love to have this if possible, though.
What are the assumptions this framework relies on
The assumptions are basically: your game can have multiple game sessions going on at the same time; You'll need to write all game logic on server-side by yourself; You'll need to update the client's visual state as events arrive from the server.
what are the limitations?
The limitations really depend on the kind of game you'd like to build and the number of concurrent clients you'll have. The framework is still being tested and evolved to support as many scenarios as possible.