Так я и пишу вам, что есть ситуации, когда поиск по геодате не успевает найти хороший путь. Вы мне конкретно пишитеЯ не про то кто быстрее. А про то что у вас достаточно времени сгладить путь. Я ведь работаю с геодатой а вы с pathnodes. Тут большая разница. Не надо сваливать тему на соревнование. До этого еще дойдет.
А я вам говорю, что у меня не поиск пути занимает 16мс, а ограничитель стоит на 16мс для одного из видов поиска. Поиск пути по паснодам максимально оптимизирован на скорость и снижения потребления ресурсов, т.к в этом случае баланс между качеством пути и его фактической стоимостью в CPU времени оптимальный и он покрывает 99% кейсов когда игроку нужно прибежать из точки А в точку Б.Так вопрос в том, зачем говорить о каких-то мнимых тысячах игроков если то что у меня и у вас выходит под 16 мс ?
То что я вижу так это весь путь будет занимать от 0 до 16 мс. Правильно? Но почему нужно пересчитывать дополнительные пути? Можно например найти один, и сгладить его. Путь будет короче, да и весь процесс намного быстрее.Так я и пишу вам, что есть ситуации, когда поиск по геодате не успевает найти хороший путь. Вы мне конкретно пишите
А я вам говорю, что у меня не поиск пути занимает 16мс, а ограничитель стоит на 16мс для одного из видов поиска. Поиск пути по паснодам максимально оптимизирован на скорость и снижения потребления ресурсов, т.к в этом случае баланс между качеством пути и его фактической стоимостью в CPU времени оптимальная и он покрывает 99% кейсов когда игроку нужно прибежать из точки А в точку Б.
Не всегда есть возможность сгладить путь между двумя произвольными узлами графа, т.к между этими узлами может не быть прямого прохода.То что я вижу так это весь путь будет занимать от 0 до 16 мс. Правильно? Но почему нужно пересчитывать дополнительные пути? Можно например найти один, и сгладить его. Путь будет короче, да и весь процесс намного быстрее.
То что я написал выше о моих и ваших результатах под 16 мс, так это примерные пути которые я видел в ваших видео. Так вот, если у вас можно быстро найти хоть какой-то путь за 2 мс, то можно потратить эти самые 2 мс на сглаживание самого короткого пути. Ну будете искать например семь раз вместо восьми. Выберетe путь покороче и сгладьте его, и будет он намного оптимален.
Потому, что такие движки никогда не залетали в шару. В большинстве случаев на серверах стоит либо подлатанный движок Diamond и Drin, либо какие-то вариации лыжного движка(mobius, l2jorg), либо ацис. Все остальное это приватные разработки. Более того, довольно большое количество людей, которые пишут код для эмуляторов l2 абсолютно не понимают что происходит внутри геодвижка и как на это повлиять. Про написание фулл комплекта геодвиг+поиск пути + мувинг я вообще молчу.Оффтоп:
А в целом: Поиск пути, хотя бы с 60% реализации как в примерах в этой теме, видел несколько раз (за много лет).
На всех проектах, почти не где его нету, не рабочий для персонажей, или просто ломит на прямую через все квадраты гео))
Ну и гео много где, чисто франкинштейн (как пример: 7 этаж ТОИ, на многих Ессенс серверах, который имеет дырку через которую можно упасть/залететь на 6-й, но квадрат считает что мы на 7-м так и далее.), типа как проходимые стены в инстах, замках, полях.
Я не про шары, я чисто про крупные сервера, у них нету и 60% (те которые на рынку по 5+ лет,у них все ровно, и то не всегда их кастом прекрасен, хватает и там дыр и приколов - привет скрайд))Потому, что такие движки никогда не залетали в шару. В большинстве случаев на серверах стоит либо подлатанный движок Diamond и Drin, либо какие-то вариации лыжного движка(mobius, l2jorg), либо ацис. Все остальное это приватные разработки. Более того, довольно большое количество людей, которые пишут код для эмуляторов l2 абсолютно не понимают что происходит внутри геодвижка и как на это повлиять. Про написание фулл комплекта геодвиг+поиск пути + мувинг я вообще молчу.
А я как раз про шару. Нет отправной точки, с которой можно на среднем уровне скилла подлатать сносный геодвиг и получить что-то неплохое. Т.е все доступные для типичного кодера образцы геодвижков не дотягивают даже до среднего уровня. Отсюда и проблемы, что вроде как бы надо бы переписать движок, но там изначально все сделано не ок и его по хорошему надо писать с нуля, забив на фиксы существующих реализаций.Я не про шары, я чисто про крупные сервера, у них нету и 60% (те которые на рынку по 5+ лет,у них все ровно, и то не всегда их кастом прекрасен, хватает и там дыр и приколов - привет скрайд))
А я как раз про шару. Нет отправной точки, с которой можно на среднем уровне скилла подлатать сносный геодвиг и получить что-то неплохое. Т.е все доступные для типичного кодера образцы геодвижков не дотягивают даже до среднего уровня. Отсюда и проблемы, что вроде как бы надо бы переписать движок, но там изначально все сделано не ок и его по хорошему надо писать с нуля, забив на фиксы существующих реализаций.
Я так понимаю в proxy решает логику какие оп коды использовать если запрос к interlude или к hf? С с датапаком как решается вопрос?Lineage2TS Proxy теперь может работать с серверами Interlude, как и HighFive. Тестировалось все как на сервере Lineage2TS, так и L2J HighFive, так и Acis. Нужно просто прописать IP адрес логин сервера и прокси все сама поймет и сделает. Инструкции по докеру (также можно использовать podman) находяться по ссылке:Вы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или Регистрация
Жду отзывов!
Please checkout Lineage2TS proxy. It now supports Interlude and HighFive server/clients. No additional configuration is needed, proxy will automatically work with either client/server protocol. The only thing you need to provide to proxy is IP address of login server and proxy will take care of the rest. Here is document that describes how to run proxy using docker (or podman, if desired, any OCI platform will use similar settings) :Вы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или Регистрация
Хочется добавить в дополнение что проект уже использует автомачиеское тестирование сервера Lineage2TS с использованием cucumber-js . Написанно 395 тестов которые тестируют различные механики сервера, от создания персонажей всех классов и полов, до крафтинга (common и dwarven), покупки вещей через магазины, проверка работы warehouse, Dimensional Merchant предметов и телепортов у npc. Все проверяется автоматически с использованием 24 одновременных клиентов (то есть каждый тест програмный клиент должен войти в игру самостоятельно, зачастую создавая новый персонаж) за около семи минут (это более 160 минут если бы это все делал один клиент а не множество). Тестирование и сами значения что я привел выже можно увидеть здесь :Вы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или Регистрация
Отвечу по порядку вопросов.Я так понимаю в proxy решает логику какие оп коды использовать если запрос к interlude или к hf? С с датапаком как решается вопрос?
Какой best practics для создания мульти хроник сервера? На будущее думаю как сделать переход с C1 на C2
Идея с прокси мне нравится но не затрудняет ли она разработку?Отвечу по порядку вопросов.
1. Да. Interlude и HF клиенты используют одинаковый подход для соедиения с логин сервером. Тут ничего не изменилось. А вот когда клиент для игрового сервера подсоединяется к прокси, он посылает пакет с ревизией протокола клиента (скажем так версия клиента), прокси перехватывает это значение в зависимости от оп-кода (то есть изначально он настроен слушать на определенные оп коды и ждать пакет ревизии клиента, после получения пакета прокси больше его не ждет). И дальше это значение используется постоянно в нескольких пакетах для установки ключей или же данных соединения (шифрование устанавливается как между клиентом и прокси, так и прокси и игровым сервером для того что-бы можно было пересылать дополнительные пакеты в обои стороны).
2. Датапак не ипользуется для прокси. На игровом сервере датапак состоит из базы данных SQLite со множественными таблицами. Если нужно изменить или сохранить датапак, это можно либо самому сгенерировать его через cli проект, либо при использовании докера установить параметры директорий файлов. У меня вопросов как таковых нет, все работает быстро и эффективно. Как я раньше и говорил очень быстро по сравнению с серверами на Яве - весь сервер загружается за меньше чем пять секунд.
3. Нужно просто переносить все пакеты новых хроник. А потом смотреть как эти пакеты интегрировать. Будут новые пакеты, но и старые тоже будут изменены что будет влиять на интеграцию кода от нижних хроник. Само ядро сервера не будет значительно измененно так как системы например инвентаря или же квестов будут работать как и раньше, но дополнительные данные из измененных пакетов должны будут где-то сохранятся. Ну и в конце концов нужно достать данныe для датапака файлов так как будут обновления как и для npc так и скиллов.
Прокси перехватывает пакеты по простой причине что нужно переписать IP адрес игрового сервера который нам посылается через логин сервер. Сложно ли это? Немного, так как сложность состоит в понимании как игровой клиент соединяется с обоими серверами. Например у прокси есть четыре клиента: клиент -> прокси логин, прокси логин -> логин сервер, клиент -> прокси игорового сервера, прокси -> к иговому серверу. Это четыре понятия как пакеты должны передаваться в обе стороны. Я понимаю что вопрос частично риторический, так как пo простому если сделать, без перехвата пакетов, то у вас будет тот же самый NGINX или HAProxy, только не такой быстрый. Хочется добавить что прокси на данный момент не имеет аналогов. Это просто не идет в сравнение как с HAProxy/NGINX так и других прокси написанных на Яве. Например можно написать свои комманды чатa (voice command) для прокси, что-бы например автоматизировать некоторые вещи или пакеты для игрового сервера. Настройки также позволяют блокировку IP адресов как индивидуальных так и сабнета. Логирование всеx сообщений можно сохранять через OTEL протокол. Ну и в конце концов, прокси передает IP адрес клиента через первый пакет соединения как к логин серверу так и на игровой сервер (могу детально показать как и что, оба IPv4 и IPv6 поддерживаются прокси). То что в принципе делается через нормальный proxy protocol v1 или v2 на обычных прокси HAProxy. Да, нужно итегрировать поддержку на свой сервер, но это нужно делать ужe в любом случае.Идея с прокси мне нравится но не затрудняет ли она разработку?
У меня была идея создать папку extends и там хранить пакеты /C1/, /C2/ и управлять ими через конфиг при запуске.
Есть желание делать разработку и под другие хроники но без усложнений. Чтобы пилить один проект а не под C1 отдельно по С2 отдельно и т.д.
Во первых нужно определить задачу ну и потом можно выбрать технологию.Мне вот интересно, ты пишешь используешь SQLite
И скажем кто-то захочет платежную систему либо голосовалку, запилить а с сторонннего сервиса к твоей бд как запрос уйдет?)
Как я и выше описал, не нужно зацикливаться на том что Ява делала много-много лет. Хотите нормальную по вашим словам БД? Можно все устроить. Но есть другие решения.Потому что к SQLite со стороннего сервера тупо не подключишься ))) опять же танцы с бубном
Советую Используй PostgreSQL, в связке с Prisma ORM или TypeORM
Если сервак пилишь на Node js
Зачем мне это? Это нужно вам. Ваш ведь совет. И как я сказал раньше будут брать советы от людей которые во первых не зацикливаются на старых методах и технологияx. А во вторых не приходят и ожидают что такие советы ценны. Нет, не ценны.Я дал тебе совет по выбору СУБД
Но решать тебе )) никто не будет разрабатывать доп платежки либо фичи с подключением с RPC
Народ привык создавать юзеров
И для сайту отдавать юзера с правами
Зачем мне это? Это нужно вам. Ваш ведь совет. И как я сказал раньше будут брать советы от людей которые во первых не зацикливаются на старых методах и технологияx. А во вторых почему-то приходят и ожидают что такие советы ценны. Нет, не ценны.
Давайте определим о чем мы ведем беседу. Я не против того что нужно будет поддерживать другие БД. Сейчас поддерживается SQLite как главная база данных. Поддержка SQLite без особых библиотек вот-вот уже почти готовa в Nodejs.Ты рофлишь? Используй дальше SQLite я уверен когда вы его в тестовом режиме запустите все равно перейдете на PostgreSQL, MySQL подобные субд с юзерами а не локальным хранилищем))
Потому что элементарные запросы к бд чтобы вытянуть с бд нужно еще настраивать rpc соединение.))
Вы просто хотите каким-то образом быть правы или у вас есть другие факты которые могут подтвердить такое будущее?Не принуждаю, но уверенно скажу что вы поменяете СУБД ))
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?