Домашнее задание: melee vs ranged
Как балансировать melee и ranged классы в PvP?
Ваши варианты в комментах.
MMORPG: Crowd Control
Ну че, продолжаем?
Я, кстати, 15 лет в геймдеве, хахаха.
Идеальный CC должен иметь не только плюсы, но и минусы, классический пример — «полиморф» в ВоВе лишает цель возможности атаковать, но лечит ее. Впрочем, конкретно в ВоВе у меня старые претензии к СС.
СС — это сброс аггро
Важный нюанс: в нашей боевой системе СС-эффект должен «сбрасывать» моба с персонажа после того, как СС закончился. Например, нападает на приста в партии моб, прист делает ему sleep. Моб 10 секунд спит, после чего заново проверяет, к кому можно пристроится. Возможно, к тому же присту, возможно, на воине освободились слоты. Освобождать слот сразу при применении СС нельзя: пока один моб спит, на приста в освободившийся слот побежит другой.
Цель СС спелла — это «ааааа, снимите это с меня»! Спаммить один и тот же СС на одну и ту же цель не весело, а тут все интуитивно понятно: ты усыпил моба и, скорее всего, о нем заботиться больше не придется. Моб проспался и забыл про тебя.
CC — это визуальный эффект
Вы не поверите, но близкий к идеалу СС опять-таки в Left4Dead, когда бумер брызгает на тебя блевотиной, и ты теряешь зрение на несколько секунд. Ты, натурально, визуально теряешь зрение, при этом ты не теряешь контроль над персонажем и можешь продолжать стрелять наугад, в основном — в своих товарищей.
Вот вам хороший способ разделить СС в ПвП и ПвЕ (бля, сколько сокращений в одном предложении): ослепленный моб может тупо прыгать на месте, потому что AI так ему сказал. Ослепленный игрок может проявить мастерство и делать что-то полезное.
Проститутки, вмонтированные в сауну
Очевидно, что в ПвП ничего сильнее СС быть не может, и его надо резать сразу, не дожидаясь. Аналог ПвП-шных тринкетов нужен.
ПвП-шные тринкеты должны быть отдельной игровой механикой (а не заплаткой), одинаковой для всех и вмотрированной в каждый класс на этапе разработки.
Примерно так:
У всех классов есть одинаковая полоска, которая работает как rage у воина, то есть в начале боя равна 0, а растет она тогда, когда на тебя действует вражеский СС. Скорость, с которой она растет, тоже может (как и rage) быть описана хитрой формулой, зависящей от кучи параметра — типа СС, твоего класса, получаемых во время СС повреждений, и так далее.
Главное, что для игрока это — полоска, которая растет, когда ему нехорошо. Просто и понятно. Когда полоска достигает 100%, игрок может использовать способность, которая снимает весь СС и делает игрока имунным к СС на N секунд, но сбрасывает полоску в 0.
Как бы тот же тринкет, но более сбалансированный, потому что «раз в 2 минуты для любого класса» — это хуйня с потолка.
Diminishing returns — тоже фигня: на описании спелла написано, что он действует 30 секунд, а на самом деле он действует 10 секунд в ПВП в первый раз, 5 — во второй и 2 — в третий, а в четвертый — уже не работает. А я — простая домохозяйка, зачем (и откуда) я должен все это знать?
В WoW есть классовые способности, типа «получить иммунитет», например, the beast within и прочие. Их заебешься балансировать и слушать вопли «хочу такое же!». С помощью этой системы «такое же» можно дать всем и балансировать за счет разной скорости роста этой полоски для разных классов.
Например
Пример сносного (нет, не идеального на этот раз) СС-спелла для мага: ледышка с дыркой кубик льда.
Противник замораживается на 10-15 секунд в большой видимый кусок льда, который разрушается после любых 3-5 ударов.
Как это работает
...в групповом ПвЕ: маг заморозил моба, какой-то дурак его стукнул — ничего не произошло, все живы.
...в групповом ПвП: маг заморозил игрока, члены его команды могут «разломать» СС, навалившись кучей и стукнув каждый по разу. Это сразу снимает проблемму «СС силен против тех классов, которые не могут его снимать». Все могут, просто кто-то более эффективно — прист может все так же диспеллить, например.
...в дуели: маг заморозил игрока, после чего не может сделать «тринкет+пиробласт» (то есть много-много повреждений, пока противник беспомощен), так как для разлома заморозки надо несколько ударов, а это — первый. В ПвП спелл получается — сюрприз! — дефенсивным, а не оффенсивным, как и должно быть. (Почему, например, fear у варлоков никогда не будет починен — потому что он оффенсивен).
MMORPG: Идеальная боевая система
Все уже знают, что я втихаря делаю свою MMORPG? Ха-ха, шутка.
Придумал новую систему «аггро» и поведения мобов для mmorpg. Нормальную, человеческую, диаблоподобную.
Она совсем не революционно новая, но порождает много хороших последствий.
Делюсь.
Аггро, как в WoW, нет.
Каждый персонаж имеет несколько (N) невидимых «слотов», на которые могут «пристроиться» монстры. Скажем, воин имеет 3, паладин — 2, вор — 1. Воин со щитом — 4 (на щите написано «+1 слот»), protection воин — 5, и так далее. Ну, вы поняли идею.
У каждого монстра есть несколько правил:
1. «Вешаемся» и атакуем ближайшую цель (с шагом по M метров, то есть все цели в радиусе M метров считаются ближайшими), если у нее есть свободные слоты (то есть ее не атакуют N других монстров). Если у ближайших целей слоты кончились, ищем цели из этой же партии подальше.
2. Атакуем персонажей с определенным приоритетом. Например, если ближайших целей — две, то монстры сначала вешаются на воина, а потом, когда у него кончаются слоты, на паладина, а потом — на вора. (Никто не мешает делать монстров с хитрым приоритетом, типа «mind flayer», которые любят атаковать только магов. Но в целом есть дефолтная таблица с приоритетами).
3. При прочих равных условиях на игрока вешаются те мобы, которых он успел ударить (скажем, 10 монстров и один воин — как определить, какие 3 моба осядут на нем?).
4. Taunt есть, он принудительно «вешает» монстра на тебя (но сбрасывает лишнего, если на тебе много висит). В некоторые способности можно «вмонтировать» taunt, например, в тот же charge. Ну логично же, выбираем моба, несемся и со всей дури врезаемся в него — он начинает тебя атаковать. (De-taunt тоже есть — это способность, уменьшающая количество слотов на N и сбрасывающая лишних мобов).
5. Когда все слоты у всех партийцев заняты, оставшиеся монстры распределяются равномерно по игрокам.
Мелкие нюансы: Монстры разные, в том числе и дохлые и жирные, отличаются визуально, нападают «случайными» кучами. У монстра есть параметр «сколько слотов он занимает» (по умолчанию — 1, но может быть и 0.1 (для толпы мелких монстров) или даже 3). Ranged damage dealer-ы бывают двух типов: с большой дальностью поражения и с небольшой (чтобы образовывали второй фланг).
Бой выглядит так: на группу бежит толпа мобов, часть из которых оседает на «танке» сама, потому что он впереди и имеет приоритет. Еще часть оседает на других melee-шных классах. Часть прорывается к хилерам и магам.
Тут-то внезапно и пригождается и crowd control и кайтинг, и все остальное. Более того, востребованные способности у танка будут вовсе не те, которые «causes high amount of treat», а нормальные и понятные: замедлить толпу, отбросить толпу назад, и так далее. То есть те, которые визуально держат передний фронт и поэтому понятны всем.
(Ремарка в сторону: а тут представьте засаду сзади, гыгыгы).
(Еще ремарка в сторону: при этом мобы не наносят мгновенные смертельные повреждения даже магу, так что нет ничего страшного в том, что они до него добегают, смотри дальше про хилинг).
«Скилл» танка будет в том, чтобы выбрать из толпы мобов «минибосса» и сделать ему taunt, и чтобы премещаться по игровому полю, «защищая» остальных (но это уже супер-мастерство, без которого группа все равно должна выживать).
Финальный штрих, чтобы все не превратилось в «группа разбирает монстров и каждый бьет свою кучку соло»: делаем КОМБО!11 ПЫЩ-ПЫЩ. Когда моба бьют два и более игрока, их способности складываются, усиляя друг друга.
В WoW-е это тоже есть, но сделано в виде пассивных бафов или proc-ов, что равносильно отсуствию: ты в рейде тупо делаешь в два раза больше повреждений, только потому, что ты в рейде.
Комбы можно (и нужно) «обыграть» визуально: например, воин может делать knock back мобу (как это по-русски? сбивать его с ног), а у мага есть спелл, который наносит троекратные повреждения по лежащим мобам, то есть маг видит — ага, моб лег, надо срочно лупить.
Тут-то внезапно и пригождаются разные спеллы: файрбол-1 просто наносит повреждения, файрбол-2 наносит меньше, но зато наносит троекратные по упавшим мобам, фростболт замедляет, когда моб бежит на тебя, даже если ты огненный маг. Игра снова становится ситуативной, а не основанной на «ротациях», как WoW.
Knock back реально заиграет, в WoW спеллы, у которых есть knock back, бесят неимоверно, ибо отпихивают мобов от танка, мешая ему наращивать aggro. В этой системе knock back позволит отпихнуть мобов от себя на других.
При этом партия, которая не использует комбо и проходит все в режиме «каждый сам за себя» не должна умирать мгновенно, ей просто должно быть сложнее.
В конце инстанса обязательно должна быть таблица рекордов с разными рейтингами: повреждения, максимальные комбо, время твоего crowd control-я, и так далее, чтобы каждый мог найти тот рейтинг, где он первый и игра не превращалась в измерилку DPS-а (привет, WoW).
Осталась последняя, но извечная проблема — хилинг.
«Хилинг» (в кавычках)
Лучше всего «хилинг» сделан в... Left 4 Dead, если под хилингом понимать не только хилинг, но, собственно, любую поддержку, саппорт. Именно так и должно быть в MMO: саппорт-классы, которые могут «поднимать» павших товарищей и как-то предотвращать их «падение».
При этом общие повреждения от монстров должны быть такими, чтобы не надо было «спамить» лечение, а достаточно было раз в 20 секунд бросать HoT (healing over time), раз в 30 секунд снимать какой-нибудь дебуф, типа яда, а остальное время наравне со всеми мочиться, превратившись в форму кошки. (Вот там и «правильный» друид).
Отдельное место должно занимать пассивное лечение: берем из warhammer-а идею с двумя целями — дружественной и вражеской, берем варлока из WoW, как архетип («высасыватель жизни»), все спеллы «противник теряет жизнь, вы получаете столько же» меняем на «противник теряет жизнь, дружественная цель получает столько же» — и внезапно все эти спеллы становятся полезными в группах.
«Лечение» не должно быть обязательным, но должно быть четкое понимание: если партиец упал, то «его» мобы повиснут на других, и всей группе станет хуже. Как в Left 4 Dead, ага. «Умирание» группы под натиском врагов должно быть таким же: сначала падает один, потом — второй, и так до последнего. А вовсе не «танк умер — всем пиздец».
Очевидно, что если есть фланги, то должно быть и «фланговое» и AOE лечение. В WoW, например, у пристов есть бесполезный спелл — lightwell («lolwell»), который создает «колодец» к которому можно отступить во время боя и подлечиться. Спелл бесполезен, потому что в WoW лечение устроено так, что его приходится «спамить», колодец при этом — как слону дробинка.
В этой же системе подобный спелл становится черезвычайно полезным, он позволяет присту не отвлекаться от кровавого веселья, при этом лечить группу.
Лирическое отступление про интерфейс.
Вообще, я уже говорил, что если Valve решит сделать MMORPG, это будет охуенно. У Valve вообще есть хорошее понимание того, что игра — это интерфейс. У Близзарда же игра имеет хороший интерфейс, но сама интерфейсом не является.
Загнул, да?
Короче, маски на spy-е в TF2 — это игра, как интерфейс.
(Для тех, кто не играл — когда шпион превращается в солдата противника, он не меняет свою форму визуально, для своей комманды, чтобы не путали, а надевает маску этого солдата. Для вражеской комманды он, разумеется, форму меняет. Очень круто.)
Максимально различаемые фигуры игроков — тоже. Светящиеся линии вокруг персонажей в Left 4 Dead и разные движения в зависимости от состоянии здоровья — тоже.
А вот полоска жизней, которая висит отдельно поверх экрана — это уже отдельный интерфейс.
Очевидно, что в «идеальном онлайновом диабло» лечить надо только тех игроков, которые визуально упали и брыжжут кровищей, «злые» мобы визуально крупней, и так далее.
То же самое и в нашей идеальной ММО — все должно быть на экране, а не в интерфейсе.
MMORPG: Идеальный крафтинг
А сегодня, мои маленькие полосатые друзья, мы придумаем идеальный крафтинг (изготовление предметов) в идеальной MMO.
Сразу вывод сказать, или сначала рассуждения? Если вывод, то «лучший крафтинг — это ремонт».
Если рассуждения, то концепция MMO анти-экономическая, анти-конкурентная по сути: нужно, чтобы у всех крафтеров не просто были равные возможности, но и возможность реализовать эти равные возможности.
Если 10 миллионов захотят быть кузнецами, то система, в которой только 2% могут стать супер-кузнецами сделает 98% игроков несчастными. Нам это надо?
Равные возможности обозначают одинаковые производимые товары и огромное предложение: одному кузнецу для прокачки надо сделать 10 «нубских стальных кинжалов». А нубов, которым нужен кинжал, всего 5.
Вполне понятно, почему все товары продаются по цене ниже себестоимости: это на самом деле не товары продаются, а кузнец покупает 1 очко мастерства.
Выход «а давайте сделаем шанс вместо кинжала получить груду опилок» дебилен, ибо депрессивен и ненадежен, когда тебе прямо сейчас нужен один гарантированный кинжал.
Самый простой выход — это consumables («расходные материалы»). Нубу нужен всего 1 нубский кинжал за всю жизнь, но нубу нужен 1 пузырек здоровья каждые 10 минут.
В WoW все «успешные» профессии производят consumables, при этом gem-ы и enchanting — это, разумеется, тоже consumables, ибо новый энчант/джем нужен на каждую твою новую вещь, то есть регулярно.
Но и там есть свои минусы: «Крутой Синий Камень Охуенности» нужен всем, а «Маленький Бесполезный Огрызок Говна», натурально, бесполезен и нужен только для прокачки. Ради заработка же производится очень узкий круг популярных вещей и в каждом сегменте дикая конкуренция.
Следующее эффективное решение — это делать на крафтинг кулдаун, типа «ты можешь делать только одну вещь в сутки». В WoW этот кулдаун пока не явный и называется «daily quests» (Dragon’s Eye, aye!).
Мы пришли к тому, что лучший крафтинг — это улучшение предметов. А теперь просто расширим улучшение в другую сторону — представим, что по умолчанию предметы сломаны и нуждаются в «улучшении» до рабочего состояния, то есть в ремонте.
Кузнецы ремонтируют (и потом улучшают тоже!) тяжелые доспехи, портные — робы, кожевники — кожу, и так далее. Вот вам и разные профессии, одинаковые по принципам балансировки, но все равно разные.
Сломанный же предмет является soulbound-ом и вываливается вместо лута.
Для ремонта нужны дополнительные материалы, часть из которых можно купить, часть придется нафармить мастеру самому (soulbound).
Общий принцип понятен? А теперь — ...
Как это сделать интересным (да и вообще работающим).
Все поломанные вещи относятся в мастерские и сдаются туда в ремонт (оставаясь при этом soulbound) вместе с деньгами, «примерно как на аукцион». Игрок-крафтер может придти в мастерскую и выбрать (примерно как аукцион, говорю же), что чинить. (Старый добрый спам в чате тоже работает, но зачем?).
Ремонтировать можно раз в N часов, где N — функция от уровня мастерства (чем он больше, тем ремонтировать можно реже).
Уровень мастерства — число от 1 до X, скажем, до 256.
У каждого предмета есть рекомендуемый уровень мастерства. Шанс ремонта равен уровню твоего мастерства/уровню рекомендуемого мастерства.
То есть мастер с уровнем 1 имеет 1% шанс починить предмет с рекомендуемым уровнем мастерства равным 100. Если попытка провалилась, ничего не ломается, просто пропадает попытка починки, то есть теряется время и кулдаун. Если попытка удалась и является не тривиальной, мастерство растет.
Наступает любимая часть игрового дизайна — выбор. Факторы, влияющие на выбор — мастерство крафтера и предмета, имеющиеся ресурсы.
Я — крафтер, прихожу в мастерскую. Вижу список вещей, которые можно отремонтировать. У меня одна попытка.
Мне надо выбрать вещь, которую я смогу отремонтировать с большей вероятностью, получить оптимальное количество денег (верней, оптимальное соотношение цена/вероятность/шанс улучить мастерство).
То есть, мне нужно продать мой уровень мастерства и мою попытку ремонта как можно дороже. В такой системе деньги на крафтинге зарабатываются начиная с первого уровня.
Всё.
Ну и понятно, что в зависимости от уровня мастерства можно выдавать и «традиционные» рецепты, с помощью которых крафтеры могут не только чинить, но и делать улучшающие патчи («энчанты»).