Метро и геймдизайн
Метро меня вгоняет в ступор каждый раз. Эскалаторы, да.
Даже в час пик все стараются соблюдать правило «оставляйте левую сторону свободной для прохода». А те, кто идет по левой стороне, специально идут, а не стоят, потому что это «сторона для прохода».
Таких людей немного, поэтому левая сторона почти всегда свободна.
А теперь — парадокс. Если бы люди не выебывались и не делали вид, что идут по левой стороне, а занимали бы ее полностью и стояли там, пропускная способность эскалатора бы повысилась, и времени бы тратилось меньше.
В результате среднестатистический человек, стоя слева, успевал бы быстрей, чем если бы он бежал слева.
Собственно, вот вам наглядная иллюстрация на тему идеальный баланс против социальных внеигровых факторов, метагейма.
А так же неумения людей организовываться в команды.
«Выгодно» занимать левую сторону, но занимать ее не принято. Ситуацию можно спасти, если встать слева и не бежать. Тогда сзади тебя скопятся люди, которым придется занять всю левую сторону.
Некоторые, правда, будут ломиться через тебя, бросая укоризненные взгляды, как будто их действительно прикалывает идти по эскалатору.
Вот эта шутка, кстати, охуенно смешная, если быть немножко в теме.
В теории игр предполагается, что игрок максимизирует свой собственный выигрыш, не заботясь о выгоде других.
В реальной жизни игрок может пожертвовать своим выигрышем, чтобы другому не досталось, «чисто назло».
Поймал мужик золотую рыбку, а она ему и говорит: — Я исполню ОДНО твое желание, но чтоб ты не загадал, твоей теще будет в два раза больше. Мужик подумал и говорит: — Рыбка, выколи мне глаз.
Эта вот человеческая гадость никак не описывается математическими методами, поэтому – опа.
Особенно смешно смотрятся задачки, типа «вы – умный ботаник, у которого почему-то есть золото, поделите его между пиратами оптимальным для вас способом».
Хаха.
Как сделать мобов интересными: решение
Уф, целую неделю писал урывками.
Некоторые очевидные аксиомы и противоречия:
1. Один обычный моб не должен быть смертельно опаснен для игрока, по многим причинам. Например, а) это никогда не сбалансировать, смертельно опасный для вора класс может быть безопасным (но утомительным) для паладина, б) два опасных моба – гарантированная смерть, домохозяйки не поймут; учитывая то, что двух мобов можно подцепить случайно – получается случайная смерть, в) ощущение динамики игры резко снижается, если каждый моб опасен.
2. Моб не может быть тривиальным, потому что это скучно. Мобы, однако, тривиальны, из-за предыдущего пункта. Именно поэтому Близзард раньше пытался сделать всякие штуки, типа убегания раненого моба «за подмогой», но было плохо, потому что…
3. Моб не может быть «случайным». Когда моб случайно наносит десятикратные поврежденья, случайно убивает или случайно зовет подмогу – это нехорошо. (Моб может звать подмогу специально, но конечный шанс ее появления все-таки случаен и зависит от непредсказуемых факторов).
4. Специальные способности не делают моба сильней, а раздражают игрока.
Со специальными способностями моба вообще очень легко облажаться. Например, мухи в Un’Goro, которые навешивают на тебя 30-минутный (!) дебаф, увеличивающий поврежденья по тебе на 40% (!!), птеродактили там же, кастующие fear, куча мобов в plaguelands, делающие то же самое, и так далее.
Очевидно, кстати, что уровня с 50 они решили увеличить сложность мобов и понапридумывали им способностей, которые ничего, кроме раздражения, не вызывают. К счастью, этот тренд довольно быстро кончился, и с 60 уровня способности уже «правильные».
Способность должна быть понятной, с наглядными последствиями, но не сильно «поломной».
Удачные способности можно пересчитать по пальцам:
А) Любая вариация на тему дополнительных повреждений: enrage, доты, магические/физические повреждения. Фактически – небольшой rand() в повреждениях, просто красивый/наглядный.
Б) Ranged или melee. Причем и тут особо не разыграешься – можно написать моба, который будет идеально кайтить игрока. И что? Игрок будет умирать и злиться.
В) Самолечение моба. Его можно прервать, оно не влияет на тебя и не наносит тебе случайные повреждения. Это скорей красивое исключение, всем мобам самолечение не сделаешь.
Собственно, всё. Crown control не работает вообще, ибо бесит. Это игрок должен crowd control-ить моба, а не наоборот.
Если убрать исключения, то можно сказать, что специальные не-дамажные способности не нужны, а дамажные должны быть предельно наглядными. ("Closer! Come closer! And burn!").
Обидно, конечно, но по-другому пока никак. Речь, опять-таки, идет о соло игре. То есть о 99% всех мобов.
Проблема вообще глобальна, и больше всего касается танков: отсутствие интерактивных способностей и/или их уникальность.
То есть в идеальном мире было бы круто дать мобу способность «суперудар», от которой можно увернуться. Только тогда способность «увернуться» надо давать всем, либо делать суперудар не таким супер.
Опять-таки, способность «увернуться» - это no-brainer, ее всегда надо использовать, когда начинается «суперудар», никакой тактики тут нет. Значит, она не нужна, а нужна реакция. Получаем MMO-файтинг. Ну, или снова - Diablo.
5. Monster play (и PvP, что одно и то же, хахаха) должен быть сугубо развлекательной фишкой, в отдельных баттлграундах. Играть за монстров может быть весело, да. Играть за монстров так, чтобы обеспечивать непрерывный спрос на мобов в масштабе сервера, никто не будет, и поэтому опираться на это не надо.
6. Говорящие мобы – хорошо и правильно («You take no candle»). Мобы, которые красиво лопаются – тем более хорошо и правильно.
«…монстры в Diablo живут буквально для того, чтобы умереть. Большую часть игры вы просто убиваете их, и поэтому мне прежде всего хотелось сделать так, чтобы они умирали самыми различными способами. В настоящий момент мы реализовали около 35 различных анимаций смерти для каждого отдельно взятого монстра».
7. Son of Arugal, он же Fel Reaver 0.1 – хорошо и правильно, но он должен быть или «желтым» или «неподвижным». Более глобально – конечно же, на одном клочке земли мобы должны иметь разные шкурки, в том числе и быть разными по силе, вплоть до элитных, но не должны набрасываться на игроков.
Итого.
Мобы должны быть тупые, но красивые, разнообразные и говорящие. Если не получается их сделать интересными по смыслу, надо делать их интересными внешне.
Все пропало, других выходов нет?
Есть, но...
Мобы не висят в воздухе, а заботливо расставлены игровым дизайнером. У них даже профессия такая есть – расставлятель (раставитель?) мобов. Некоторые мобы даже патрулируют.
Сделано это для того, чтобы превратить ну хоть как-то убийство мобов в мини-игру «выцепи одного моба и не зацепи лишнего».
Тут тоже можно переборщить, наиболее памятное место - Zeth'Gor, который, определенно, должен сгореть.
Глобально же смысл в том, что все мобы равны, а все различие – в расстановке.
Как и в случае с аггро, все веселье в WoW начинается, когда ты играешь… плохо, то есть случайно цепляешь на себя больше одного моба. Значит, нужно аггрить больше одного моба автоматически!
Если серьезно, то в комментариях было много мыслей на тему глобального AI и «убил 100 волков – получил засаду из злых и обиженных волков».
Все гораздо проще: вместо одного моба делаем пак – скажем, из 5-и мобов. Этот пак имеет один AI (то есть является одним мобом), стоит в одном и том же месте («стая волков»), различается внутри себя шкурками и, возможно, имеет вожака.
Когда игрок нападает на пак (или пак на игрока), бой происходит в режиме «фильма про кунг-фу»: сначала нападает один моб, когда тот умирает (или вот-вот умрет) – нападает второй, и так далее, вместо того, чтобы напасть всей толпой и завалить.
Мобы не обязаны становиться в круг вокруг игрока и выкрикиывать обидные слова, как в настоящем фильме про кунг-фу, это метафора.
Причем, после каждого моба делается проверка – посылать ли следующего, или игрок уже при смерти. (Самая банальная проверка – количество оставшегося здоровья, чуть более интеллектуальная – количество оставшегося здоровья, количество здоровья, теряемого на одного моба из пака, класс и, например, количество смертей игрока за последний час).
То есть – правильно – AI играет вовсе не против игрока, а выполняет роль «гейммастера», просто делает это не глобально во всей игре, а на уровне одного моба, который вовсе и не моб, а пак из пяти.
Исхода у боя два – либо игрок справился и убил весь пак, тогда это видно наглядно («поляна очистилась») и из последнего моба ему вываливается звонкая монетка (ура, я наконец-то придумал, как сделать денежный лут мини-игрой).
Либо игрок не справился, тогда он умер (если совсем-совсем не справился), либо пак потерял к нему интерес на каком-нибудь мобе. И в том и в другом случае пак респаунится очень быстро.
В терминах WoW-а: ты вышел на поляну с волками и начал их бить. Волки слабее обычных мобов процентов на 50%. Но каждый волк, умирая, испускает вой, который зовет следующего (то есть «убегающий моб»). Но зовет он умно, а не случайным образом, и ты «чудом» выживаешь с 10% жизнями.
Дальше навернуть систему легко:
Пак из одного моба ведет себя, как обычный моб. (То есть можно не делать всех мобов паками).
В паке может быть любое количество мобов с любой проверкой на выживаемость игрока (в том числе и отсуствующей, гыгы), это – инструмент балансировки.
Можно делать паки из желтых (неагрессивных) мобов – они все равно будут опасными, потому что тебе придется драться со всеми, но это довольно сильно разнообразит игру, потому что у тебя будет выбор – не нападать (то, что в WoW-е пытались сделать с помощью Mind Soothe, но потом понерфили, ибо процесс стал неконтролируемым, тут же он контролируется, потому что мобов желтыми делаем мы).
Можно делать смешанные паки – из желтых и красных мобов – тогда между ними будет интересно ходить. Красных мобов нужно при этом как-то визуально выделять («волки и волчата»), негоже различать их только цветом рамки.
Развивая идею смешанных паков — чисто теоретически, если делать в паке только одного моба аггрессивным, то проверок на расстояние до игрока надо в 5 раз меньше.
Развивая идею смешанных паков – можно делать паки с лидером, когда в центре стоит большой заметный неагрессивный лидер со своим поведением в рамках пака, типа «я нападаю последним, но если на меня напали первым, когда пак жив – я посылаю весь пак». Фильмы про кунг-фу, натурально – «сначала победи всех моих учеников».
Развивая идею лидеров, для тупых игроков – последнего лидера можно сделать вообще невидимым, но оставить ему поведение «когда пак умер, вылезти из-под земли и напасть».
С лидерами вообще интересней всего получается, сразу наглядно видно, откуда весь вред.
Домашнее задание: увязать это все с групповой игрой.
Домашнее задание-2: посчитать расход процессорной мощности на AI.
Update.
Как это «нарисовать», а то многие не понимают. Я, правда, пока тоже не понимаю, так что условно:
Ты напал на волка — остальные не реагируют. Когда волк при смерти, есть три варианта:
1. Он воет и зовет подмогу.
2. Главарь волков «делает анимацию», посылая следующего волка на тебя.
3. Следующему волку дается комманда медленно приближаться к тебе и «случайно аггрить» или «медленно приближаться и огрызаться», а потом нападать. Лучше всего — со спины.
Рисовать «все встали в круг и ждут», конечно же, не надо.
Теперь, «проигрыш».
Видим, что игрок сливает, есть варианты:
1. Тупо делаем вид, что пак кончился (хотя на самом деле нет) и просто не посылаем новых мобов.
2. Посылаем игроку не очередного моба, а главаря, когда/если главарь умирает — остальные «разбегаются в панике».
3. Делаем игроку «клиническую смерть»: моб сбивает игрока с ног, принюхивается и решает, что игрок мертв, после чего отходит. Игрок встает через 5 секунд.
4. Делаем игроку «помилование» (главарь говорит «оставьте его!») или делаем паку «отступление» с регенерацией.
5. Убиваем игрока, гыгы.
...и так далее.
Уровни не нужны-2
Проблема «ненужности» уровней не дает покоя не только мне одному (и это радует).
Чувак все правильно написал, но, конечно же, уперся в «единственной реальной проблемой с точки зрения разработчика является сложность в создании новых вещей», впрочем, и сам понял, что уперся.
Это не «единственная проблема», это всё та же проблема с уровнями и есть, но с другой стороны: прогрессия уровнями против прогрессии шмотками. Люди не понимают сайдгрейды вообще, им нужны только апгрейды.
Новый интересный контент «сам по себе» им тоже не нужен, в D&D Online уровень долго не рос, зато появлялись новые модули, а игроки фармили там, где выгодно, а не там, где интересно. В D&D разработчики в результате сдались и увеличат левелкап.
Guild Wars — игра пиздатая, конечно, но ее легко наращивать вширь, это же MtG (у тебя 100 способностей, из которых ты выбираешь 8 на свою панельку, поэтому эти способности легко добавлять в новых «сетах», как карты в MtG).
Re-re-re-re-normalizing rage, la-la-la-la-la
Warrior scaling has always been tough to balance around. The class suffers when it doesn’t have enough rage and is too good when it is unlimited. We might end up (in the future) re-re-normalizing rage so that we can control the endpoints a lot more tightly.
Ярость в ВоВе не работает. Дальше можно не писать, гыгы.
Откуда ноги у ярости растут, примерно понятно с точки зрения логики: с течением битвы воин звереет и становится все более и более опасным. С точки зрения дизайна – тоже: воин — простой класс, без излишеств, и других ресурсов, кроме как толстой жопы, то есть здоровья, у него нет. Здоровье же проще всего «конвертировать» в ярость, принцип «нас ебут, а мы крепчаем» мало применим к какому-нибудь магу, например.
Проблем с яростью в WoW-е ровно две:
1. Нельзя начинать бой с нулем ресурсов. Поэтому есть способности, которые дают первоначальный минимум ярости: charge, bloodrage. Они плохи тем, что они — исключение из правил, ярость растет не потому, что ебут, а потому что начинать бой с нулем ярости нельзя. А любое исключение – это уже ай-яй-яй.
2. Ярость является функцией от повреждений, как наносимых, так и получаемых, отсюда несколько проблем:
Наносимые поврежденья: дамаг -> ярость -> еще больше дамага. Ну, про это я тоже писал. Почему, когда я ебнул критом мага без брони, меня надо за это еще и награждать дополнительной яростью?
Получаемые поврежденья: на боссах в ПвЕ ярость перестает быть важным ресурсом, ее хоть жопой ешь. Единственным ресурсом становится global cooldown.
Это не страшно, если был бы пропорциональный слив ярости, то есть не было бы следующего пункта...
3. Как и с шардами у варлоков, 100 ярости не в два раза лучше, чем 50 ярости. Ну, есть у меня 50 ярости, мне хватает на всю оставшуюся недолгую жизнь воина (гыгы), я упираюсь опять не в ярость, а в кулдауны.
То, что меня маг ебнул критом, и мне за это дали еще 50 ярости, меня не спасло никак: мне как и раньше было нужно 30 ярости, чтобы его ебнуть в ответ, как и сейчас нужно 30.
Как правильно.
Ярость должна быть вторым ресурсом, на который повешаны убер-способности. Все нормальные, «обычные» способности должны использовать обычный ресурс (ману/энергию).
Накопил 100 ярости — ебнул больно один раз. Не накопил — бьешь, как обычно.
Смотри Grudge в Вархаммере, ярость у Чоппы в том же вархаммере, ярость у варвара в Диабло-3 тоже движется в правильном направлении (но пока не понятно, дойдут ли они).
Так вот, Grudge-ы:
Some abilities are more powerful with more Grudges (usually at 25, 50, 75 and 100 Grudges) and some abilities use «Grudge» instead of action points.
По-русски: некоторые способности становятся сильнее, если ты накопил ярость, а некоторые расходуют ярость, а не «ману».
В Вархаммере смешной нюанс состоит в том, что ярость есть у всех классов, просто называется «мораль» и растет от пребывания в комбате.
Тоже очень хорошее решение, в среднем «моральные» способности можно использовать раз в минуту, но не в начале боя. Хорошее средство от затяжных боев и как ограничение суперспособностей, чтобы бой не начинался с них.
Итого:
Ярость – функция от времени в комбате, а не от случайного фактора (дамага). Причем не важно, завязана она на удары (+5 ярости каждый удар) или на время (+5 ярости каждую секунду), это одно и то же — время в комбате.
Ярость – второй ресурс, а не первый и используется дла убер-способностей и/или как модификатор нормальных способностей. (Даже если первый ресурс — глобальный кулдаун, то есть даже если слабые/нормальные способности «бесплатны» и не стоят ярости).