Lineage 2 Ancient Defense — DOTA-style 5x5 mode concept

TopManager

Heir
Customer
Привет, товарищи.

В который раз возвращаюсь к мысли попробовать сделать отдельный сервер/режим в стиле Lineage 2 + Defense of the Ancients.

Идея не в том, чтобы ломать основной сервер или переделывать классическую L2, а поднять отдельный GameServer под экспериментальный режим. У меня стоит старый, но относительно мощный ноутбук без дела, с внешним/static IP. Думаю на нём поднять отдельный GS на время разработки и тестов, а если прототип получится рабочим — позже перенести уже на нормальный сервер.

Почему отдельный GS, а не просто ивент на боевом сервере:

В обычной Lineage 2 у персонажей уже есть прогресс, уровень, предметы, заточка, эпик, сабы, экономика и так далее. А в DOTA-подобном режиме всё должно происходить внутри конкретной катки: уровень, предметы, усиление, магазины, смерть, респаун, победа/поражение — всё временное. После матча персонаж возвращается в лобби, а матчевый прогресс очищается.

Примерная концепция:

  • отдельный GameServer;
  • все персонажи всегда в базовом состоянии, например 1 уровень;
  • игрок появляется в большом лобби;
  • в лобби стоят NPC: регистрация, выбор роли/класса, магазин косметики, рейтинг, обучение;
  • NPC-регистратор собирает матч 5×5;
  • после набора игроков система отправляет их на арену;
  • внутри матча игроки получают временный класс/саб/скиллы/статы;
  • внутри матча работают магазины, покупка предметов, level up, золото/очки;
  • после окончания матча всё временное удаляется, персонаж возвращается в лобби.
Главная идея: основной персонаж — это профиль/внешность/ник, а сила в матче создаётся только по ходу игры.

Косметика при этом может быть постоянной: костюмы, визуальные эффекты, титулы, рамки, возможно красивые скины. Но она не должна влиять на баланс матча.

Технически вижу это примерно так:

  1. Lobby system
    • все игроки стартуют в одной lobby-зоне;
    • регистрация в матч через NPC;
    • выбор стороны/роли/матчевого класса;
    • возможно очередь 5×5.
  2. Match system
    • состояние матча: WAITING / PREPARING / RUNNING / FINISHED / CLEANING;
    • две команды;
    • 3 линии;
    • башни;
    • базы/Ancient crystals;
    • волны крипов;
    • победа при уничтожении главного кристалла.
  3. AI крипов
    • крипы спавнятся волнами;
    • у каждого крипа есть team, lane, matchId;
    • движение по waypoint-точкам;
    • если рядом враг — стандартная атака;
    • приоритеты атаки: крип, башня, игрок, база;
    • если цель умерла — крип продолжает путь по линии.
  4. Башни
    • стационарные NPC/объекты;
    • имеют команду;
    • атакуют врагов в радиусе;
    • приоритет: крипы, затем игроки;
    • уничтожаются в процессе матча.
  5. База / Ancient
    • кристалл или NPC-объект с большим HP;
    • если Ancient одной команды уничтожен — матч заканчивается.
  6. Арены
    • есть мысль использовать систему олимпийских арен/стадионов Lucera как основу;
    • то есть не писать с нуля instance/channel систему, а максимально использовать существующий принцип работы arena channels;
    • возможно подменить/использовать custom olympiad arena map как шаблон;
    • сервер думает, что это арена, а внутри мы запускаем свою логику матча.
  7. JAR modules
    • хочется максимум логики сделать через отдельный *.ext.jar модуль Lucera;
    • условно что-то вроде ancient_defense.ext.jar;
    • внутри: MatchController, ArenaController, CreepAI, TowerAI, WaveSpawner, RewardManager, LobbyNpcHandler.
  8. Карта
    • сначала можно не делать новую карту с нуля;
    • есть большая закрытая GM Misc / cube-зона, где уже можно тестировать механику;
    • позже можно попробовать сделать/подменить custom arena map;
    • текстуры и объекты желательно брать только стандартные из Interlude, без новых тяжёлых кастомных текстур;
    • деревья, башни, кристаллы, декор — из стандартных ресурсов клиента.
Что пока вижу самым сложным:

  • не сама регистрация 5×5;
  • не NPC-магазины;
  • не выдача временных предметов;
  • а именно AI крипов, корректное движение по линиям, реакция на врагов, башни, базы и изоляция матчей.
На словах всё звучит просто:

“Заспавнить две команды крипов, пустить их по линиям, заставить драться, поставить башни и кристаллы.”

Но на практике понимаю, что работы будет много, особенно если делать аккуратно и без мусора в core.

Сейчас думаю начать с минимального прототипа:

  • поднять отдельный тестовый GameServer на домашнем ноутбуке;
  • взять большую закрытую GM Misc-зону;
  • сделать одну линию;
  • заспавнить крипов двух команд;
  • проверить движение по waypoint;
  • проверить стандартную атаку NPC vs NPC;
  • потом добавить башни;
  • потом базу;
  • потом 3 линии;
  • потом уже регистрацию 5×5.
Если первая линия заработает стабильно, значит проект уже имеет смысл развивать дальше.

Хочу спросить у сообщества Lucera:

  1. Можно ли из *.ext.jar удобно использовать/подключиться к существующей системе олимпийских arena channels?
  2. Можно ли спавнить NPC внутри такого channel/instance так, чтобы они видели только объекты своего матча?
  3. Есть ли публичный API/пример для кастомных instance/arena systems в Lucera?
  4. Насколько реально переиспользовать олимпийскую систему арен как контейнер для другого режима?
  5. У кого-то был опыт с NPC vs NPC combat / custom AI для мобов, которые идут по маршруту и атакуют врагов?
  6. Можно ли через JAR-модуль нормально управлять временными классами/сабами/скиллами/предметами игрока на время матча и потом всё чистить?
Если кому-то интересна такая идея — буду рад обсудить. Может быть кто-то уже делал похожее, пробовал использовать olympiad channels, custom stadiums, NPC AI или route-based mobs.

Цель не просто “ещё один PvP event”, а отдельный режим внутри Lineage 2:

Lineage 2 Ancient Defense / DOTA-style 5×5

  • 3 линии;
  • крипы;
  • башни;
  • базы;
  • временный прогресс внутри матча;
  • честный старт для всех;
  • косметика без влияния на баланс.
Пока это только концепт и подготовка к прототипу, но я хочу попробовать сделать это аккуратно на Lucera.
 
Это так пока еще ничего не готово просто скинул показать :)
 
Last edited:
Вообщем с линиями и мобами все понятно уже теперь осталось разобраться с ареной получится ли механизм олимп арен юзать который я описал в начале
 
Кто сможет наставить деревьев в GM Misc и сделать 3 лайна? или же сделать где то прямоугольник окруженный горами и деревья плюс 3 линии

дальше попробую подменить эту локацию в систему новых олимпийских арен
 
Last edited:
Снимок экрана — 2026-06-08 в 03.02.44.webp


Крипы вышки база есть дальше уже нужно поднимать отдельный ГС и вырезать все лишнее и накатывать систему

надеюсь кто то с картой поможет
 



I've had this on my hard drive for a while from some forum, if it's useful to you... I haven't tested it.
Thank you, sir.

At first glance, this looks like a very promising map. I will definitely try to do something with it.

I already have some experience installing non-standard maps and custom textures, so integrating it should not be a major problem.

My main concern is performance. In my experience, when custom maps rely on textures that are not part of the original client, they can sometimes cause noticeable lag, longer loading times, or other client-side performance issues.

That said, I will test it and see how it behaves in practice. Thanks again for sharing it. I really appreciate it.
 
  • Like
Reactions: L2g
@Deazer скажи пожалуйста что ты думаешь об задумке ? Карта уже есть вот MOBA а доделанной игры до конца нету, может это слишком тяжело для сервера будет это все крутить ? Если будет чисто отдельно ГС и машина под это, все остальное вырезать выключить по максимуму в ГС
 
@Deazer скажи пожалуйста что ты думаешь об задумке ? Карта уже есть вот MOBA а доделанной игры до конца нету, может это слишком тяжело для сервера будет это все крутить ? Если будет чисто отдельно ГС и машина под это, все остальное вырезать выключить по максимуму в ГС

Зачем Дизеру твоя задумка ?) Задумал - делай. Будет тяжело или нет - зависит от твоего кода.
 
Зачем Дизеру твоя задумка ?) Задумал - делай. Будет тяжело или нет - зависит от твоего кода.
Ну он писал эту систему он понимает как свои пять пальцев, я не прошу делать мою задумку

я не понимаю что спросить мнение разраба нельзя ?:)

Я понимаю что ты имеешь ввиду, что можно наворотить что оно и 2 матча одновременно не потянет

Я могу на своем уровне понимания посчитать сколько делает запросов мой модуль но я не понимаю сколько запросов способен обрабатывать сервер в нормальном режиме работы
 
Last edited:
ЗАчем 2 гс - :D
Так много слов так мало толку, сразу видно понимания в коде очень мало..
Корейцы давно для всего такого рода говница придумали инста мир)
 
ЗАчем 2 гс - :D
Так много слов так мало толку, сразу видно понимания в коде очень мало..
Корейцы давно для всего такого рода говница придумали инста мир)
в смысле зачем 2 ГС, ты читать не умеешь ? Не 2 ГС а отдельный сервер под это, сразу видно читать в школе слабенько научился :)
 
ЗАчем 2 гс - :D
Так много слов так мало толку, сразу видно понимания в коде очень мало..
Корейцы давно для всего такого рода говница придумали инста мир)

Я не знаю про какие ты инста миры говоришь покажи что где придумали ? О чем ты вобще ?
 
ЗАчем 2 гс - :D
Так много слов так мало толку, сразу видно понимания в коде очень мало..
Корейцы давно для всего такого рода говница придумали инста мир)
Или ты предлагаешь как управлять состояниями персонажей когда все должны быть 1 лвл и без предметов после конца матча ? Поэтому и отдельный гс
 
ЗАчем 2 гс - :D
Так много слов так мало толку, сразу видно понимания в коде очень мало..
Корейцы давно для всего такого рода говница придумали инста мир)
Мне раньше такие же умники говорили что AI не реально сделать такое в итоге что ? Все реально
 
Back
Top