Мне интересно, какой лучший способ реализовать сетевую модель для игры типа agar.io - я предполагаю, что это авторитетный сервер, но мне интересно about:Как реализовать агаровую сетевую модель игры в агаре.
- Каждый игрок «владеет» своей позицией и отправляет его на сервер, или каждый игрок просто отправляет свой вход, и все полностью авторитично на сервере?
- Как он решает, какие данные отправить на какой плеер? Я предполагаю, что для каждого игрока мне придется перебирать всех игроков на сервере и проверять, являются ли они в настоящее время (или скоро будут) видимыми, и если они начнут отправлять данные по ним
- Где происходят фактические столкновения , и как справиться с задержкой?
Я хорошо осведомлен о способах справиться с этим в игре FPS (предсказания игрока, перематывать повторе, лаг компенсация, и т.д.) - но это обычно делается в гораздо меньших масштабах, и я полагаю, более простое решение достаточно хорош для случайной игры, подобной этой, с тысячами одновременных игроков.