Написание сервера для lineage 2 chronicle 1 на node.js

Fix
* NPC останавливается после применения атаки к NPC
* NPC синхронизируется с сервером в момент остановки. (Монета падает после остановки)

 
space2pacman, а есть в планах переделать файлы на *.ts и добавить типы данных в проект? С типизацией наверное будет попроще разрабатывать, ошибки по типам будут подсвечиваться в IDE. А использовать tsc не обязательно, там в Node 23.6.0+ завезли Type Stripping (удаление типов при запуске). В будущем конечно можно было бы и добавить сборку через tsc, но сейчас для разработки это будет не обязательно, но добавит удобства и плюшек от TypeScript
 

Планов на ts пока нет.
Сейчас планы только на архитектуру.
 
space2pacman, понятно, жаль, думал завезёшь хотя бы типы и перейдёшь на module, а то require уже похож на какой-то legacy

А вообще в планах делать как подобие эмулятора l2j (весь GS в одном проекте) или разрабатывать какую-то свою архитектуру в виде микросервисов?
 
Реакции: space2pacman

    BladeRunner

    Баллов: 1
    забей. челик за 6 лет сделал чтобы моб реагировал и бил в ответ.
По поводу модулей кстати возможно. Потому что уже многие пакеты не тянут легаси в виде require

По архитектуре - микросервисы.

Как минимум отдельно npc сервер
 
По архитектуре - микросервисы.

Как минимум отдельно npc сервер
В чем преимущество npc сервера? Я на для критики, а узнать как такой сервер (или же микросервис) использовать.
 
MrThirtyOddSix, как минимум NPC сервер желательно вынести в отдельный сервис для того чтобы в системе это был отдельный процесс, под который система выделит отдельные ресурсы. Особенно учитывая тот фактор, что Node.js однопоточная, хотя можно запускать отдельные потоки в рамках процесса. Как максимум этот сервис можно запусти на отдельном сервере от других сервисов/микросервисов. Сборке мусора будет попроще работать, так как вся работа сервера и его сервисов не свалена в одну программу. Так же можно написать сервис под кластер, но думаю в рамках этой задачи "овчинка выделки не стоит"
 
* Перезагружать NPC без выключение сервера
* Управлять нагрузкой (NPC может быть на другом сервере в той же сети)

В рамках текущего проекта это пока смотрится микросервис ради микросервисов)
 
Что такой NPC сервер будет делать? И почему нагрузка?

Мне интересно что такой NPC сервер должен делать что действительно нужно отслаивать все от главного игрового сервера. В моем проэкте я использую worker_threads (потоки CPU) где просчитывается движение всех персонажей (npc и игроки), или при генерации артифактов. В будущем будет больше потоков которые просчитывают путь (pathfinding, интеграция происходит сейчас) а также обнаружение целей для ИИ. Но я о чем? Мне интересно что люди думают о таких сервисах.
 

Держать 25000 NPC
Управлять их состоянием
* Если игроки рядом - выполнять скрипты (кто-то ходит, кто-то бафается)
* Если игроков рядом нет - спать.

Но как я и писал до этого
"В рамках текущего проекта это пока смотрится микросервис ради микросервисов)"

Воркеров пока хватает.
 
Данный сайт использует cookie. Вы должны принять их для продолжения использования. Узнать больше…