This is the error that is thrown once 30+ people joins my game.
Im building an mmorpg, once match one server. We are 3 years into development, and running our 2nd beta test right now.
Im using go runtime framework. Everything works great until with 10-20 people are playing. But once we get to 30 players online at the same time (somewhere around that number) the error occur, and all users get disconnected. After that i have to restart the server. I must say, i can assure you that im not sending 64 messages each tick to a player…
I’ve done so many optimizations to my custom go code, that i cannot figure out how to handle this in any way. Can someone explain to me, why the queue is filling up? Does the queue have to wait response from the client to free up its message? I have set the queue size to 64.
How about a virtual machine? Im using a vmware partition, to run test this game now. Could that be the reason that the game logic is too demanding for the vm?
I’ve already done everything i can for bullet point 1 and 3. Sending messages to players within the same area and reduced the number of messages by batching it into bigger messages.
I will look into protobuf, currently everything is in json!
well that is a bit of problem, have you used JSON Size Analyzer | DebugBear?
Also remember that json gets converted to base64 which will increase size too.