I am working on headhunters.io clone with Colyseus and Unity3d (just for mobile devices). My test server is on aws, t2.micro which has 1 vcpu and 1 gb ram. My game is pretty much finished. Today I did a stress test with my test server and other 2xt2.micro servers with colyseus-loadtest tool, I want to share the results to the community.
Server is not move authoritative, doesn't check the player can move, just inform other players. It has collision controller with rbush (thanks to halftheopposite for tosios project). Rooms are limited to 16 players. Broadcasts : kills, potion uses, revives, potion fades
Test environment :
- I have prepared my server's soft, hard limits and also GC clean every 30 secs which Endel mentioned in FAQ.
- 2x aws t2.micro servers generating users with colyseus-loadtest tool, both of them configured to generate 200 players.
- Each player call api before connect to the game room and then moves and attack every 200ms. (Every player need to make an api call, before join the room)
My server can handle 375 players including my real players (to check real lag experience) until it has 100% cpu. It consumes 410- 430 mb ram. I saw from colyseus-monitor (server_ip/colyseus). Every player moves and attacks. I thought it is nearly similar to the real player behavior. It is playable after CPU reaches 100%, I got 450ms latency in my Unity editor. Real device latency should be more because of mobile networks.
Thanks to Endel and all community of Colyseus.
If you have advice or comment I will happy to hear.