image

В прошлом году я сделал короткий доклад на GDC о важности понимания того, на каком наследии прошлого основана ваша игра. Видео доклада опубликовано здесь (моя часть начинается с 28:50):

Ссылка
Три страйка — и ты выбываешь.

Эта фраза настолько популярна, что практически стала идиомой. И в самом деле, хоть некоторых наших неамериканских друзей могут сбивать с толку правила бейсбола, это правило они скорее всего знают. Но…

… на самом деле это неправда. Бьющий не выбывает после третьего страйка. Он выбывает, только когда кэтчер ловит мяч.

Если кэтчер пропускает или роняет мяч, то бьющий не выбывает и имеет шанс добраться до первой базы. Почти всегда это заканчивается аутом, потому что кэтчер просто подбирает мяч и делает простой бросок, но иногда это малоизвестное правило становится очень важным, как это произошло в последней игре серии плей-оффов между Chicago Cubs и Washington Nationals в 2017 году. Макс Шерцер бросил третий страйк, пролетевший мимо бьющего Хавьера Баэза, но посмотрите, что случилось:


Кэтчер Nationals Мэтт Витерс пропустил мяч между ног, что позволило Баэзу спокойно добраться до первой базы. Это должно было стать третьим аутом иннинга. Но вместо этого Cubs заработали ещё два рана, а позже выиграли игру, имея преимущество всего в один ран, и перешли в следующий раунд.

Вот так это малоизвестное правило вышибло Nationals из плей-оффов.

Откуда же появилось это правило?


Оно уходит корнями к к первому печатному изданию правил бейсбола, выпущенного немцем Иоганном Кристофом Фридрихом Гутс-Мутсом.

Он описал игру под названием «английский бейсбол», в которой были иннинги, бьющие, филдеры, базы и начисление очков за касание дома. Однако в ней ещё пока не было страйков и болов. Питчер стоял близко к бьющему и практически «подавал» мяч для удобного удара. Питчер не старался соревноваться с бьющим; игра заключалась в поимке мяча в поле после того, как по нему ударили.

Однако что должно было происходить, если бьющий был настолько ужасен, что не мог попасть по мячу? В игре по изданию Гутс-Мутса для такой ситуации было специальное правило: бьющий имел возможность нанести всего три удара. На третий удар мяч автоматически вступал в игру, даже если по нему не ударили. Поэтому бьющий должен был бежать к первой базе, ударив по мячу или промахнувшись в третий раз. И в самом деле, ведь кэтчера для поимки мяча не было; поэтому питчеру нужно было бежать до дома, чтобы поднять мяч и бросить на первую базу.


В 1845 году клуб American Knickerbocker Base Ball Club записал собственные правила игры, и в них кое-что поменялось.

Питчер теперь находился гораздо дальше от бьющего и бросал мяч горизонтально, поэтому необходима была новая должность кэтчера. Однако они сохранили логику старого правила — мяч остаётся в игре после третьего пропущенного удара, подобно старому легаси-коду.

«Страйк-аут» (выбывание после трёх пропущенных мячей), по сути, возник сам по себе (то есть стал «эмерджентным геймплеем»), потому что после третьего промаха мяч теперь теоретически оставался в игре, и кэтчер превращал его в аут, ловя подачу. То есть теперь не было разницы между тем, что кэтчер делает аут, поймав отбитый мяч и тем, что кэтчер делает аут, ловя подачу после третьего пропущенного удара. В обоих случаях мяч теперь остаётся «живым», и кэтчер делает аут, ловя мяч, прежде чем он коснётся земли.


Однако позже им пришлось «пропатчить» игру, потому что не они не удосужились сделать страйк-аут официальным правилом. Поскольку мяч считался бы «живым» после третьего страйка, существовала возможность некрасивого дабла или трипла.

Например, если базы заняты раннерами, тогда кэтчер может намеренно уронить мяч, снова поднять его, встать на домашнюю базу, чтобы сделать лёгкий аут, а затем бросить мяч на третью базу, а потом на вторую. Поэтому в 1887 году было добавлено новое правило, по которому бьющий автоматически делает аут, если раннер находился на первой базе И было меньше двух аутов.

Следовательно, правило «три страйка, и ты выбываешь», которое, по всеобщему мнению, используется в бейсболе, «верно», но только при очень специфических условиях.

Создатели правил решили использовать неуклюжую заплатку, вместо того чтобы просто переписать правила в соответствии с тем, как действительно играют в игру!


Задумайтесь о ситуации с Хавьером Баэзом. Он был раннером на первой базе, поэтому даже хотя кэтчер уронил мяч, это должно было считаться страйк-аутом… но уже были два аута, поэтому мы снова возвращаемся к исходному правилу о потере третьего страйка.

Можно было бы переписать правила так, чтобы принцип «три страйка, и ты выбываешь» применялся всегда. Разве не было бы это проще? Более интуитивно понятно? Зачем мучаться, пытаясь исправить одну очевидную проблему кэтчера, намеренно роняющего мяч, а не избавиться от этого старого рудиментарного правила?


Причина заключается в том, что мы наследуем дизайн игры от всего, что было до нас.

Иногда это наследование очевидно — Civ 6 наследует от Civ 5, которая наследует от Civ 4, и так далее.


Иногда дизайнер наследует от тех игр, в которые он играл в детстве (Mario -> Braid, Myst -> The Witness)


Иногда игры заимствуют у самих себя. Вот как выглядел процесс разработки нашей экономической RTS Offworld Trading Company.

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


Однако чаще всего наследуются игровые механики, обычно у игр того же жанра.

Например, хоть Offworld Trading Company и является RTS, она примечательна тем, что в ней нет юнитов.

Но начинали мы не с этого, потому что наследовали у других RTS, существовавших до нас — у StarCraft, Age of Empires, и т.д. Поэтому у нас были разведчики, строители, транспорты, пиратские корабли, полицейские корабли и тому подобное.


Со временем мы обнаружили, что наследование утягивает игру вниз, заставляя игрока тратить время на укрощение юнитов, вместо того, чтобы играть на рынке. Постепенно один за одним мы избавились от этих юнитов: сначала от транспортов, потом от боевых юнитов, затем от строителей, и, наконец, от скаутов. Игра теперь выглядит как полный разрыв с прошлым, но для этого нам пришлось пройти долгий путь.


Проблема в том, что итеративная разработка дизайна может стать ловушкой — вы больше не видите, какие части игры препятствуют вам в создании намного лучшего дизайна. Проще вносить небольшие изменения, исправляющие самые очевидные проблемы, вместо того, чтобы пересмотреть дизайн в целом.


Иногда проблема игры может находиться на концептуальном уровне. Возьмём для примера Spore


… которая воспринималась как игра, менявшаяся в степенях десятки — от масштаба клеток до галактического уровня. Это и было приманкой, причиной создания игры.

Эта часть игры разочаровала многих — пять отдельных уровней кажутся пятью разными играми, соединёнными друг с другом изолентой. Однако с провалом Spore произошло нечто интересное…


… оказалось, что на самом деле это не провал. Вот какое количество людей играет в Spore прямо сейчас — не так уж плохо для игры, вышедшей 10 лет назад.


И в самом деле, посмотрите на этот график, где Spore сравнивается с двумя самыми популярными играми для PC, выпущенными в том же 2008 году. Сейчас Spore побеждает их, и не забывайте, что Spore даже не выходила в Steam.


Оказалось, что самая интересная часть игры — это не концепция «степеней десятки», а внутриигровые редакторы, особенно редактор существ, который динамически анимировал создаваемых игроком существ.

Однако эти редакторы были созданы в середине разработки проекта; Maxis начинала делать игру об одном, но внезапно сделала игру о чём-то другом. Один из неотвеченных вопросов про Spore заключается в том, что бы мы могли сделать, если бы отказались от концепции «степеней десятки» и вместо этого сосредоточились на редакторах?


Вот классический пример наследования плохого дизайна. Creep denial — это механика из оригинальной DOTA: вы убиваете собственных юнитов, чтобы не позволить противникам получить от них золото и опыт.

Creep denial — один из важнейших элементов высокоуровневой игры в DOTA, позволяющий максимизировать количество набранных очков опыта относительно противников, чтобы обогнать их по уровню. Однако по-прежнему открыт вопрос, является ли это на самом деле хорошим дизайном.


По крайней мере, creep denial является случайным дизайном, потому что DOTA унаследовала его от Warcraft 3. На самом деле даже то, что Warcraft 3 позволяла убивать собственных юнитов, скорее всего было запоздалым решением дизайнеров.

DOTA унаследовала это правило, потому что игра в буквальном смысле была построена внутри Warcraft 3 в виде мода. Поэтому игры жанра MOBA унаследовали многие элементы дизайна и механики от Warcraft 3. Возможно, дизайнеры DOTA хотели, чтобы многие аспекты работали иначе, но у них в общем-то не было выбора с учётом допущений и ограничений редактора Warcraft 3.


Разумеется, DOTA 2 и League of Legends унаследовали свой дизайн от первоначального мода DOTA, но их разработчики приняли разные решения о наследовании creep denial. По сути, League отказалась от него, а DOTA 2 его сохранила.


Это скриншот из поста на Reddit о том, почему creep denial не оставили в League. Не волнуйтесь, его можно не читать; я просто хочу показать, как «RandomGuyDota» пытается объяснить, почему creep denial плох для дизайна, с помощью самих игровых механик. Это довольно типичное обоснование для того, что стало частью наследия игрового дизайна — всегда нужно доказывать, что элемент нужно удалить из игры, а не важность его изначального добавления.

Однако у меня есть более простое обоснование того, почему creep denial — это плохой дизайн…


«Это тупо».

Разве вы хотите, чтобы игроки тратили время на убийство своих собственных юнитов? Это действительно фундаментальная часть устройства MOBA? Игра развалится, если вы не будете убивать собственных помощников?


aahdin резюмирует это лучше, чем удалось бы мне: «Да, это повышает навык игры в MOBA так же, как повышает навык игры в шахматы сжигание половины фигур».

В какой-то момент вам как гейм-дизайнеру нужно сделать шаг и пересмотреть то, что вы наследуете. Выживет ли базовый геймплей без этой функции? Эта функция неинтуитивна, она усложняет игру или знакомство с ней? Могут ли игроки тратить время лучше, чем занимаясь этой функцией?

В случае creep denial, ответ на все эти вопросы предполагает, что игре было бы без него лучше. В жанре MOBA есть только одна магическая функция, от которой невозможно отказаться — она сохраняет в себе масштаб и сложность RTS, но сосредотачивает контроль игрока на всего одном юните, что делает игру доступной для более широкой аудитории (на порядок величин). Всё остальное, всё остальное — это просто случайное наследование, возникшее из-за того, что изначально жанр появился как мод Warcraft 3.


На самом деле, хоть сегодня в League нет creep denial… изначально он присутствовал.

Вот примечания по самым первым патчам League of Legend, опубликованные в июле 2009 году. Разработчики унаследовали creep denial, но избавились от него на ранних этапах.

То есть хоть разработчики и использовали наследие оригинального мода, они всё же стремились критически изучить прошлое игры.


А вот для сравнения история перехода creep denial из DOTA 1 в DOTA 2. Дизайнеры очевидно осознавали, что creep denial может быть не лучшей частью игры.

Посмотрите на описание версии 6.82 «Убитые крипы теперь дают меньше опыта». — чёткий признак того, что они пересмотрели эту функцию, изменив награду за неё. Однако вместо того, чтобы избавиться от неё, дизайнеры вносят небольшие изменения по краям.


По сути, они делают то же, что игроки в бейсбол, когда те патчили правило третьего страйка, чтобы оно не применялось в определённых условиях, а не вырезали это глупое правило целиком.

Помните мои вопросы о ценности creep denial?

Выживет ли базовый геймплей без этой функции? Эта функция неинтуитивна, она усложняет игру или знакомство с ней? Могут ли игроки тратить время лучше, чем занимаясь этой функцией? Задав эти вопросы про правило пропущенного третьего страйка, мы оказываемся в том же положении — это плохой случайный дизайн, который вредит бейсболу.


А теперь вот сравнение двух этих игр и некоторых других MOBA. Есть много причин того, что League обгоняет DOTA 2 на порядок величин — и довольно существенной среди них является фора в три года, но я считаю, что очень важной частью также стала философия Riot переоценки наследования от оригинального мода DOTA, которая распространилась не только на вырезание creep denial.


У меня есть ещё мысли о last hitting (добивании крипов), но, к счастью, на это уже нет времени. Я говорю «к счастью», потому что Heroes of the Storm, единственная отказавшаяся от last hitting, менее успешна, чем DOTA 2, не говоря уже про League. Поэтому я не могу заявлять, что last hitting — это плохой дизайн, и это доказано рынком. Кроме того, я не думаю, что сейчас разумно ждать от Riot экспериментов с отказом от last hitting; уже слишком поздно. League — это одна из самых популярных в мире игр. На самом деле им повезло, что они так рано отказались от creep denial; если бы это было сделано позднее, то мнения сообщества могли бы разделиться.

Мы не всегда имеем возможность посмотреть на рынок, чтобы подтвердить свои решения, и поэтому переоценка наследования игры — это такая сложная и важная проблема.

Отказ от наследования требует настоящей смелости. Иногда, если ты видишь проблему, приходится доверять собственному рациональному процессу разработки дизайна. Иногда приходится полагаться на чутьё. Но в конечном счёте нужно стремиться увидеть свою историю, узнать, как она привела тебя туда, где ты находишься, и иметь смелость отказаться от прошлого.

(Подробнее о правиле пропущенного третьего страйка можно прочитать в этой статье.)

Комментарии (4)


  1. GooFFu
    29.04.2019 12:31

    процесс упрощения игры, ради упрощения игры — довольно сомнительное занятие. сила персонажей и момент применения ключевых способностей, тоже не всегда интуитивно понятен, но если убрать всё неинтуитивное, то можно прийти к тому, что идеальная моба, это стрим на твиче, там вообще ничего делать не надо, сидишь и смотришь…
    так что это довольно спорное утверждение, касательно нужности/ненужности определённых механик в играх.


  1. Heinhain
    29.04.2019 13:41
    +3

    Хм… а можно применить тот же принцип к статье? Ну вот, к примеру, вся часть про бейсбол — русскоязычным читателям (наверное) правило бейсбола интереса не представляют и те пояснения ничего не проясняют, т.к. публика не знакома с темой (ну не популярен он в нашей части света). Да и не держится на ней статья, следовательно, можно и выкинуть нафиг, не потеряв в содержательности ни грамма


    1. 0x9d8e
      29.04.2019 15:34

      Я например аналогию понял. Но на примере костыля в коде было бы понятнее :)


  1. APXEOLOG
    29.04.2019 16:43

    Автор допускает логическую ошибку "«После» не значит «вследствие»"


    в лоле убрали денай крипов -> лол успешнее доты -> значит денай крипов был плохой механикой

    Да и в целом в статье нет никакой информации, кроме необоснованной нелюбви автора к конкретной игровой механике