Какую технологию лучше выбрать для создания карты браузерной игры?

Добрый вечер.
Есть карта, на которой имеются: здания, пути, и точки игроков.

Механизм работы:
Загрузка зданий + загрузка путей + движение множества точек по путям с определенными скоростями. Средняя скорость одного сегмента пути 5 минут.

Данные карты (фон, здания, пути) будут грузиться json + рисование dom

На какой технологии лучше сделать такое ?

Пока остановился на konvajs. + canvas, но смущает постоянная перерисовка точек движения (коих может быть 1000+).

Так же интересует подгрузка данных: если постоянно подгружать json и синхронизировать точки, что лучше использовать? К примеру обновление будет +- 5 сек или когда человек перестает сидеть в текущей вкладке.

5dd17db4e38f9095906977.jpeg

Благодарю всех!
  • Вопрос задан
  • 744 просмотра
Пригласить эксперта
Ответы на вопрос 1
@lostero
По поводу konvajs не скажу. Через webgl можно получить больше производительности, чем из 2D контекста, но связано с доп. танцами, если пропускали лекции по комп. графике.
Хотя, если забыть в некоторых местах про читаемость кода, то можно и из 2D контекста выкрутить хорошую производительность.

Для частой синхронизации данных лучше использовать вебсокеты - избавят от пересылки лишних данных с каждым запросом. Советую взглянуть на https://github.com/uNetworking/uWebSockets. Написано на C/С++, есть версия под NodeJS. Если ни одна из версий не подходит под ваш набор технологий, поищите аналоги.

P.S. Сам сокеты из этой либы не использовал, только http сервер. Он показывает себя незначительно лучше nginx при отдаче кэшированной в RAM статики в виртуалке Centos 7, 1 cpu 2.6Ghz, 1Gb RAM (вполне возможно, что я не настроил правильно nginx), 5.7-6к rps против 5.4-5.6к rps. На двух ядрах http сервер из uWebSockets для NodeJS выжимал 14-15к rps, но тут периодически забивался 100мбит канал, а nginx я не тестировал т.к. решил, что rps сравнимый с nginx для ноды уже хорошо.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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