Привет, товарищи.
В который раз возвращаюсь к мысли попробовать сделать отдельный сервер/режим в стиле Lineage 2 + Defense of the Ancients.
Идея не в том, чтобы ломать основной сервер или переделывать классическую L2, а поднять отдельный GameServer под экспериментальный режим. У меня стоит старый, но относительно мощный ноутбук без дела, с внешним/static IP. Думаю на нём поднять отдельный GS на время разработки и тестов, а если прототип получится рабочим — позже перенести уже на нормальный сервер.
Почему отдельный GS, а не просто ивент на боевом сервере:
В обычной Lineage 2 у персонажей уже есть прогресс, уровень, предметы, заточка, эпик, сабы, экономика и так далее. А в DOTA-подобном режиме всё должно происходить внутри конкретной катки: уровень, предметы, усиление, магазины, смерть, респаун, победа/поражение — всё временное. После матча персонаж возвращается в лобби, а матчевый прогресс очищается.
Примерная концепция:
Косметика при этом может быть постоянной: костюмы, визуальные эффекты, титулы, рамки, возможно красивые скины. Но она не должна влиять на баланс матча.
Технически вижу это примерно так:
“Заспавнить две команды крипов, пустить их по линиям, заставить драться, поставить башни и кристаллы.”
Но на практике понимаю, что работы будет много, особенно если делать аккуратно и без мусора в core.
Сейчас думаю начать с минимального прототипа:
Хочу спросить у сообщества Lucera:
Цель не просто “ещё один PvP event”, а отдельный режим внутри Lineage 2:
Lineage 2 Ancient Defense / DOTA-style 5×5
В который раз возвращаюсь к мысли попробовать сделать отдельный сервер/режим в стиле Lineage 2 + Defense of the Ancients.
Идея не в том, чтобы ломать основной сервер или переделывать классическую L2, а поднять отдельный GameServer под экспериментальный режим. У меня стоит старый, но относительно мощный ноутбук без дела, с внешним/static IP. Думаю на нём поднять отдельный GS на время разработки и тестов, а если прототип получится рабочим — позже перенести уже на нормальный сервер.
Почему отдельный GS, а не просто ивент на боевом сервере:
В обычной Lineage 2 у персонажей уже есть прогресс, уровень, предметы, заточка, эпик, сабы, экономика и так далее. А в DOTA-подобном режиме всё должно происходить внутри конкретной катки: уровень, предметы, усиление, магазины, смерть, респаун, победа/поражение — всё временное. После матча персонаж возвращается в лобби, а матчевый прогресс очищается.
Примерная концепция:
- отдельный GameServer;
- все персонажи всегда в базовом состоянии, например 1 уровень;
- игрок появляется в большом лобби;
- в лобби стоят NPC: регистрация, выбор роли/класса, магазин косметики, рейтинг, обучение;
- NPC-регистратор собирает матч 5×5;
- после набора игроков система отправляет их на арену;
- внутри матча игроки получают временный класс/саб/скиллы/статы;
- внутри матча работают магазины, покупка предметов, level up, золото/очки;
- после окончания матча всё временное удаляется, персонаж возвращается в лобби.
Косметика при этом может быть постоянной: костюмы, визуальные эффекты, титулы, рамки, возможно красивые скины. Но она не должна влиять на баланс матча.
Технически вижу это примерно так:
- Lobby system
- все игроки стартуют в одной lobby-зоне;
- регистрация в матч через NPC;
- выбор стороны/роли/матчевого класса;
- возможно очередь 5×5.
- Match system
- состояние матча: WAITING / PREPARING / RUNNING / FINISHED / CLEANING;
- две команды;
- 3 линии;
- башни;
- базы/Ancient crystals;
- волны крипов;
- победа при уничтожении главного кристалла.
- AI крипов
- крипы спавнятся волнами;
- у каждого крипа есть team, lane, matchId;
- движение по waypoint-точкам;
- если рядом враг — стандартная атака;
- приоритеты атаки: крип, башня, игрок, база;
- если цель умерла — крип продолжает путь по линии.
- Башни
- стационарные NPC/объекты;
- имеют команду;
- атакуют врагов в радиусе;
- приоритет: крипы, затем игроки;
- уничтожаются в процессе матча.
- База / Ancient
- кристалл или NPC-объект с большим HP;
- если Ancient одной команды уничтожен — матч заканчивается.
- Арены
- есть мысль использовать систему олимпийских арен/стадионов Lucera как основу;
- то есть не писать с нуля instance/channel систему, а максимально использовать существующий принцип работы arena channels;
- возможно подменить/использовать custom olympiad arena map как шаблон;
- сервер думает, что это арена, а внутри мы запускаем свою логику матча.
- JAR modules
- хочется максимум логики сделать через отдельный *.ext.jar модуль Lucera;
- условно что-то вроде ancient_defense.ext.jar;
- внутри: MatchController, ArenaController, CreepAI, TowerAI, WaveSpawner, RewardManager, LobbyNpcHandler.
- Карта
- сначала можно не делать новую карту с нуля;
- есть большая закрытая GM Misc / cube-зона, где уже можно тестировать механику;
- позже можно попробовать сделать/подменить custom arena map;
- текстуры и объекты желательно брать только стандартные из Interlude, без новых тяжёлых кастомных текстур;
- деревья, башни, кристаллы, декор — из стандартных ресурсов клиента.
- не сама регистрация 5×5;
- не NPC-магазины;
- не выдача временных предметов;
- а именно AI крипов, корректное движение по линиям, реакция на врагов, башни, базы и изоляция матчей.
“Заспавнить две команды крипов, пустить их по линиям, заставить драться, поставить башни и кристаллы.”
Но на практике понимаю, что работы будет много, особенно если делать аккуратно и без мусора в core.
Сейчас думаю начать с минимального прототипа:
- поднять отдельный тестовый GameServer на домашнем ноутбуке;
- взять большую закрытую GM Misc-зону;
- сделать одну линию;
- заспавнить крипов двух команд;
- проверить движение по waypoint;
- проверить стандартную атаку NPC vs NPC;
- потом добавить башни;
- потом базу;
- потом 3 линии;
- потом уже регистрацию 5×5.
Хочу спросить у сообщества Lucera:
- Можно ли из *.ext.jar удобно использовать/подключиться к существующей системе олимпийских arena channels?
- Можно ли спавнить NPC внутри такого channel/instance так, чтобы они видели только объекты своего матча?
- Есть ли публичный API/пример для кастомных instance/arena systems в Lucera?
- Насколько реально переиспользовать олимпийскую систему арен как контейнер для другого режима?
- У кого-то был опыт с NPC vs NPC combat / custom AI для мобов, которые идут по маршруту и атакуют врагов?
- Можно ли через JAR-модуль нормально управлять временными классами/сабами/скиллами/предметами игрока на время матча и потом всё чистить?
Цель не просто “ещё один PvP event”, а отдельный режим внутри Lineage 2:
Lineage 2 Ancient Defense / DOTA-style 5×5
- 3 линии;
- крипы;
- башни;
- базы;
- временный прогресс внутри матча;
- честный старт для всех;
- косметика без влияния на баланс.




