8

Оптимизация сервера Lineage 2: внедрение VisibilityManager

Привет. Я продолжаю разрабатывать сервер для Lineage 2 C1 на JavaScript Проект

Оптимизация сервера Lineage 2: внедрение VisibilityManager

Хорошие новости: Теперь сервер не грузит всех NPC подряд, а только тех, кто рядом с игроком. Это значит:

* Меньше лагов – сервер не тратит силы на то, что далеко от игрока.
* Плавнее игра – особенно в городах и массовых сражениях.
* Стабильнее мир – больше NPC вокруг, но без нагрузки на клиент.

Как работает VisibilityManager?

Представьте радар на подлодке – он сканирует пространство вокруг и засекает только то, что действительно рядом.

* Каждые 3 секунды система проверяет, какие NPC или игроки находятся в зоне видимости.
* Неважно, кто к кому подходит – хоть игрок к мобу, хоть моб к игроку, если он в радиусе, сервер его "увидит" и сообщит игроку.
* Всё лишнее – выгружается – зачем держать в памяти то, что далеко и не влияет на игру?

Итог:
* Меньше тормозов – клиент не грузит 3D-модели тех NPC, которых игрок не видит.
* Экономия трафика – сервер не отправляет игроку данные о мобах на другом конце карты.

Блог про разработку сервера для Lineage 2 в телеге https://t.me/lineage2js

ИТ-проекты пикабушников

630 постов3.4K подписчиков

Правила сообщества

0. Запрещены посты вне тематики сообщества

1. Уважайте труд людей, пишите только конструктивную критику,

2. Не выкладывайте информацию по своему проекту чаще 2ух раз в месяц

Вы смотрите срез комментариев. Показать все
0
Автор поста оценил этот комментарий

Эмммм... а разве это не стандарт разработки??? Типа прорисовывать только то что перед пользователем, причём всегда на определённом расстоянии?

Какой смысл прорисовывать, и даже загружать то что не видит пользователь?

Типа, этому концепту 100 лет в обед.

раскрыть ветку (9)
1
Автор поста оценил этот комментарий

В соло игре да, в мморпг все не так просто.

раскрыть ветку (4)
0
Автор поста оценил этот комментарий

та в смысле?! Там такие расстояния шо пиздец.

Для каждого игрока свой набор прорисовки. Сервак меньше обрабатывает. Рзве не очевидно?

раскрыть ветку (3)
0
Автор поста оценил этот комментарий

Сервак хранит в памяти юнитов и отдает инфу клиенту. Хранит он в условных циферах и координаха положения.

x\y\z координата - хоббитс - стоит -ID№100500

Клиент получает данные - отрисовывает всем, кто запросил инфу.

Поэтому каждый игрок видит хоббитса, но именно этого, а не каждого своего.

Причем постоянно сверяет базу.


Предположим если каждый получит своего хоббитса.

Получаем легкий метод "наебать" систему.

Берешь артмани, тыкаешь "хочумногоаденов" - полные карманы золота.

Пушка заточенная на 100500? Тык артмани.

Хитро спрятали данные?

Тыкаем артманей урон пушки в руке - тыкаем мышкой - моб дохнет - сыпет лут и опыт.

Спрятали хитро это?

Да тю!

Меняем урон скилла аое урона - тык - толпа мобов легла, ты богат.

Спрятали?

Да тю!

Правим моба, делаем ему ХП 1, спавним 100500 миллионов (или сколько твое железо выдержит) тыкаем - получаем гору экспы злата.


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


Тут даже с полной отрисовкой данных на серваке (не графики), реализуют всякие дюпы, позволяющие наварить ресурсов.

Но это на серваке, который пытается защищать себя... А автор пытается создать мегабагу да пожирнее.

раскрыть ветку (2)
2
Автор поста оценил этот комментарий

Клиент получает данные - отрисовывает всем, кто запросил инфу.

Клиент не запрашивает информацию.



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

Отрисовка != управление.

Все управление происходит на сервере. Клиент только для отрисовки.
В артмани можно сделать много денег для клиента но как только будут происходить операции с деньгами сервер будет обновлять информацию для клиента и все значения сгорят. А сами операции на клиенте и не проходят. Покупка/Продажа/Дроп предметов. Все что угодно происходит на сервере.

раскрыть ветку (1)
Автор поста оценил этот комментарий

Клиент не запрашивает информацию.

Это еще как?


Отрисовка != управление.

В данном случае подразумевалось не графическая отрисовка, а его поведения\лут и т.д. Т.е. полное управление на клиенте.


Все управление происходит на сервере. Клиент только для отрисовки.

Т.е. ты в итоге ничего нового не сделал, а лишь повторяешь за уже существующими серваками?

0
Автор поста оценил этот комментарий

Да верно. Это стандарт.

Какой смысл прорисовывать, и даже загружать то что не видит пользователь?

Все верно поэтому и был добавлен VisibilityManager. Функционал, который отвечает за зону видимости. Напомню, что сервер делается с нуля и на начальном этапе подгружались NPC, которые находились очень далеко. Теперь есть зона видимости. Этот пост про это обновление.

раскрыть ветку (3)
1
Автор поста оценил этот комментарий

А, понял. То есть доработка/оптимизация того что было "из коробки". Ноль вопросов.

раскрыть ветку (2)
0
Автор поста оценил этот комментарий

Еще нюанс, что "коробки" нет. Все пишется с нуля как хобби проект)

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Ну, просто мне странно что вы это преподаёте как фича. Повторюсь, вроде как стандартный поход. Но дело ваше.

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества