Скорость передачи пакетов WebSocket.(ну или как убрать лаги)
|
|
last2424 | Дата: Четверг, 07 Января 2016, 01:14 | Сообщение # 1 |
30 мл. блоков
Сейчас нет на сайте
| Есть вопросы, я надеюсь тут есть знающие люди. Решил поюзать WebSocketэы на Node.JS(ими в принципе доволен, легко работать с ними). Написал простейший платфомер со скроллингом, перемещением, гравитацией, прыжками и всем остальным. Присобачил всё это дело к серверу, передача координат, айди плеера, который обнуляется при выходе(хотя я полностью его не доделал). Поставили у друга на сервере, подключился, двигается то двигается, но блин тормоза серьёзные(конечно менее серьёзные чем у AJAX'а, но всё же меня это напрягает). Хост хороший проблема не в нём это могу гарантировать сразу, ведь мы спокойно играем по локалке через интернет, практически без тормозов в разные игры.
Можно ли что-нибудь сделать с этими тормозами и как-нибудь их уменьшить до минимума для комфорта.
В качестве WebSocket модуля для Node.JS использую nodejs-websocket.
Предупреждение: всё что я написал в зачёркнутом виде является шуткой и никак не пытает обидеть того к кому обращаются.(нет)
|
|
| |
Kwant | Дата: Четверг, 07 Января 2016, 01:44 | Сообщение # 2 |
почетный гость
Сейчас нет на сайте
| Для этого используют "Предсказания". Это когда обсчитывают игровой мир в соответствии с окружением клиента, а когда приходят данные от сервера - синхронизируется всё.
Программирование сетевых игр - далеко не самая простая штука, как может казаться, и это занятие имеет богатую теорию.
Устранение эффекта запаздывания с помощью кубических сплайнов.
|
|
| |
Vinchensoo | Дата: Четверг, 07 Января 2016, 07:21 | Сообщение # 3 |
Злобный социопат с комплексом Бога
Сейчас нет на сайте
| С вебсокетами есть еще 1 фишка. Если браузер их не поддерживает или они запрещены в настройах, библиотека будет эмулировать работу websocket через long-polling http соединения. А это- медленно, на такой игре как раз будет заметно.
Начните с настроек браузера, а дальше делайте интерполяцию.
ЗЫ. Написанное выше актуально для socket.io, но у вас, похоже, какая-то другая библиотека. Попробуйте сокет.ио. Это, де-факто, стандарт в отрасли.
|
|
| |
last2424 | Дата: Четверг, 07 Января 2016, 14:59 | Сообщение # 4 |
30 мл. блоков
Сейчас нет на сайте
| Kwant, Vinchensoo, большое спасибо за способы, попробую поработать с обоими )
Предупреждение: всё что я написал в зачёркнутом виде является шуткой и никак не пытает обидеть того к кому обращаются.(нет)
|
|
| |