Triborg-333
@Triborg-333

Node js + JSON + WBGL PIXI При 20 — подключений, игра начинает тормозить почему?

Здравствуйте, Уважаемые программисты!) на днях тестировал Web игру передача пакетов через jSON. Игра была создана посредством node js, WebSocket, PIXI - WebGl

Скажите пожалуйста, для создание MultiPlayer - игры, обязательно нужны Бинарные протоколы ? для передачи данных. Чтобы не было таких тормозов!
  • Вопрос задан
  • 31 просмотр
Решения вопроса 1
IvanBlacky
@IvanBlacky
back-end разработчик
Для того, чтобы понять где проблема, нужно определиться со значением слова "тормозит".
Предположим, проблема в скорости передачи\получения данных с клиента на сервер. Тогда нужно выяснить, какая именно характеристика и на какой стороне влияет. Из вашего описания понятно, что, скорее всего, проблема на стороне сервера, так как на скорость влияет количество подключений (но это не точно).
Теперь нужно определится, с каким параметром мы работаем. Глобально, проблема может быть в 3 местах:
1. Нагрузка на ЦПУ
2. Занимаемый объем памяти
3. Нагрузка на сеть.
Первым делом, я бы отсек 3 пункт. Проверьте, насколько при увеличении числа игроков увеличивается объем данных, который передается по сети. Если объем значительно растет и размеры исчисляются в мегабайтах, то это является проблемой. Если нет, то двигаемся дальше.
Если вы используете на серверной стороне какие-либо сторонние сервисы (БД, API и т.п.), то проверьте, насколько увеличивается среднее время ответа в зависимости от числа пользователей в сессии. Если время увеличивается значительно, то проблема там. Если нет, то двигаемся дальше.
Мы выяснили, что проблема с нагрузкой на процессор\память присутсвует на сервере локально. Теперь требуется выполнить профилирование Node.js и выяснить, какой участок вызывает такие нагрузки и уже только потом оптимизировать.
До бинарных протоколов далеко, и не факт что они понадобятся. Ну, и убедитесь, что с количеством игроков в сессии нет критического роста нагрузки на локальные машины пользователей.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы