Lineage2TS - HF сервер написанный на Typescript

Я не про то кто быстрее. А про то что у вас достаточно времени сгладить путь. Я ведь работаю с геодатой а вы с pathnodes. Тут большая разница. Не надо сваливать тему на соревнование. До этого еще дойдет.
Так я и пишу вам, что есть ситуации, когда поиск по геодате не успевает найти хороший путь. Вы мне конкретно пишите
Так вопрос в том, зачем говорить о каких-то мнимых тысячах игроков если то что у меня и у вас выходит под 16 мс ?
А я вам говорю, что у меня не поиск пути занимает 16мс, а ограничитель стоит на 16мс для одного из видов поиска. Поиск пути по паснодам максимально оптимизирован на скорость и снижения потребления ресурсов, т.к в этом случае баланс между качеством пути и его фактической стоимостью в CPU времени оптимальный и он покрывает 99% кейсов когда игроку нужно прибежать из точки А в точку Б.
 
Последнее редактирование:

Так я и пишу вам, что есть ситуации, когда поиск по геодате не успевает найти хороший путь. Вы мне конкретно пишите

А я вам говорю, что у меня не поиск пути занимает 16мс, а ограничитель стоит на 16мс для одного из видов поиска. Поиск пути по паснодам максимально оптимизирован на скорость и снижения потребления ресурсов, т.к в этом случае баланс между качеством пути и его фактической стоимостью в CPU времени оптимальная и он покрывает 99% кейсов когда игроку нужно прибежать из точки А в точку Б.
То что я вижу так это весь путь будет занимать от 0 до 16 мс. Правильно? Но почему нужно пересчитывать дополнительные пути? Можно например найти один, и сгладить его. Путь будет короче, да и весь процесс намного быстрее.

То что я написал выше о моих и ваших результатах под 16 мс, так это примерные пути которые я видел в ваших видео. Так вот, если у вас можно быстро найти хоть какой-то путь за 2 мс, то можно потратить эти самые 2 мс на сглаживание самого короткого пути. Ну будете искать например семь раз вместо восьми. Выберетe путь покороче и сгладьте его, и будет он намного оптимален.
 
То что я вижу так это весь путь будет занимать от 0 до 16 мс. Правильно? Но почему нужно пересчитывать дополнительные пути? Можно например найти один, и сгладить его. Путь будет короче, да и весь процесс намного быстрее.

То что я написал выше о моих и ваших результатах под 16 мс, так это примерные пути которые я видел в ваших видео. Так вот, если у вас можно быстро найти хоть какой-то путь за 2 мс, то можно потратить эти самые 2 мс на сглаживание самого короткого пути. Ну будете искать например семь раз вместо восьми. Выберетe путь покороче и сгладьте его, и будет он намного оптимален.
Не всегда есть возможность сгладить путь между двумя произвольными узлами графа, т.к между этими узлами может не быть прямого прохода.

Но, должен признать, что в спорах рождается истина и во время разговоров с вами, я понял как я могу решить эту проблему.
Благодарю вас. Ведь я действительно, в теории, могу значительно улучшить качество пути от графа, пройдя цепочку между узлами через поиск по ячейкам. Попробую поэкспериментировать в этом направлении)
 
Оффтоп:

А в целом: Поиск пути, хотя бы с 60% реализации как в примерах в этой теме, видел несколько раз (за много лет).
На всех проектах, почти не где его нету, не рабочий для персонажей, или просто ломит на прямую через все квадраты гео))
Ну и гео много где, чисто франкинштейн (как пример: 7 этаж ТОИ, на многих Ессенс серверах, который имеет дырку через которую можно упасть/залететь на 6-й, но квадрат считает что мы на 7-м так и далее.), типа как проходимые стены в инстах, замках, полях.
 
Оффтоп:

А в целом: Поиск пути, хотя бы с 60% реализации как в примерах в этой теме, видел несколько раз (за много лет).
На всех проектах, почти не где его нету, не рабочий для персонажей, или просто ломит на прямую через все квадраты гео))
Ну и гео много где, чисто франкинштейн (как пример: 7 этаж ТОИ, на многих Ессенс серверах, который имеет дырку через которую можно упасть/залететь на 6-й, но квадрат считает что мы на 7-м так и далее.), типа как проходимые стены в инстах, замках, полях.
Потому, что такие движки никогда не залетали в шару. В большинстве случаев на серверах стоит либо подлатанный движок Diamond и Drin, либо какие-то вариации лыжного движка(mobius, l2jorg), либо ацис. Все остальное это приватные разработки. Более того, довольно большое количество людей, которые пишут код для эмуляторов l2 абсолютно не понимают что происходит внутри геодвижка и как на это повлиять. Про написание фулл комплекта геодвиг+поиск пути + мувинг я вообще молчу.
 
Потому, что такие движки никогда не залетали в шару. В большинстве случаев на серверах стоит либо подлатанный движок Diamond и Drin, либо какие-то вариации лыжного движка(mobius, l2jorg), либо ацис. Все остальное это приватные разработки. Более того, довольно большое количество людей, которые пишут код для эмуляторов l2 абсолютно не понимают что происходит внутри геодвижка и как на это повлиять. Про написание фулл комплекта геодвиг+поиск пути + мувинг я вообще молчу.
Я не про шары, я чисто про крупные сервера, у них нету и 60% (те которые на рынку по 5+ лет,у них все ровно, и то не всегда их кастом прекрасен, хватает и там дыр и приколов - привет скрайд))
 
Я не про шары, я чисто про крупные сервера, у них нету и 60% (те которые на рынку по 5+ лет,у них все ровно, и то не всегда их кастом прекрасен, хватает и там дыр и приколов - привет скрайд))
А я как раз про шару. Нет отправной точки, с которой можно на среднем уровне скилла подлатать сносный геодвиг и получить что-то неплохое. Т.е все доступные для типичного кодера образцы геодвижков не дотягивают даже до среднего уровня. Отсюда и проблемы, что вроде как бы надо бы переписать движок, но там изначально все сделано не ок и его по хорошему надо писать с нуля, забив на фиксы существующих реализаций.

Это касается как качества построения путей, так и потребления ресурсов.
 
А я как раз про шару. Нет отправной точки, с которой можно на среднем уровне скилла подлатать сносный геодвиг и получить что-то неплохое. Т.е все доступные для типичного кодера образцы геодвижков не дотягивают даже до среднего уровня. Отсюда и проблемы, что вроде как бы надо бы переписать движок, но там изначально все сделано не ок и его по хорошему надо писать с нуля, забив на фиксы существующих реализаций.
Оффтоп:
Понимаю, имею на примере 1 крупный проект Ессенса, который несколько лет, так и не решался сделать этого.
Потому как: долго, трудоемко, да и кто это оценит (максимум 10-15%), да еще и бабла хотелось бы, схавают (и хавали годами) и в таком виде, а то что при пвп 300+ на 300+ (да да, и такое было на классик серах), сервер трагично падал или "много интересного происходило", не важно, рестарт и далее поехали)).
Но кажись прибыль позволила что то да сделать с этим, все скатилось к "трусам баюма" а не качеству и "логичному функционалу", в итоге: урон через стены, прыжок на голову "из не откуда" - потому что так пофикшеный движок переносит персонажей в проблемных квадратах, почти из любого квадрата в мире (при условии, что есть бага на взятие в таргет на расстоянии на пол карты).
Крч, пусть процветает ваш запил.
 
Для тех кто желает попробовать что-то новое, можете проверить как работает обновленная L2 прокси, часть проекта Lineage2TS. Прокси может быть использована как для скрытия IP адреса игровых серверов, так и для локально настроенного клиента (на localhost), который теперь может соединяться не локальными игровыми серверами через интернет (или по локальной сети). Можно даже проверить свой клиентский траффик командой в чате ".proxy-stats".

Здесь можно почитать про установку прокси с помощью докера:

For those that would like to try something new, there is now docker image for proxy, part of Lineage2TS project. Basic usage would be to either hide IP address of your login/game server or perhaps be able to play on remote game server without changing config on your L2 client (say your client is setup to expect game server on localhost, start proxy pointing to remote game server and your L2 client will not know the difference!). Proxy works with Lineage2TS servers or L2J HF5 servers. It even has voice commands (the one you type in chat, without being admin or not). For example once you have entered game, you can type ".proxy-stats" and in your L2 client you will see chat messages about how long have you been playing or how much traffic in KiB you have used!

Docker instructions available here:

And don't forget that you only need to specify remote login server IP or hostname via environment variable in docker cli as "PS.server.LoginServerHost=<host or IP>" Compared to other solutions, such as having an HAProxy or Nginx routing packets to your L2 servers, there is minimal setup using Lineage2TS proxy (no need to configure IP addresses or particular proxy modes on both login/game servers vs HAProxy/Nginx). Literally all you need is remote login server IP and proxy will work all the magic!

And to add a bit more interesting things. Lineage2TS docker images now use much less space (all using alpine images). With login/game server image just under 198MB (that is with all the geodata and necessary L2 world data). Proxy image is just shy of 59MB. Very easy to deploy and shutdown using docker.
 
Назад
Сверху