Несколько лет назад я написал книгу, в которой проанализировал все уровни игры Super Mario World (1990). В ней я вывел систему, по которой была создана большая часть её уровней. Игра Super Mario World – это классика жанра, она сама по себе стоит того, чтобы её изучить. Но уроки, которые она преподносит, могут и сегодня широко применяться при разработке игр. Метод Super Mario World, или метод Nintendo, активно используется для создания уровней в самых разнообразных играх – даже в тех, которые сделаны не компанией Nintendo.
В этом уроке мы рассмотрим простую форму организации контента, которая берет начало еще в 90-х годах. По мере того как разработчики игр (в особенности из компании Nintendo) совершенствовали свое ремесло, они интуитивно вырабатывали определенные способы организации контента. Я постараюсь объяснить, как можно сознательно использовать эти интуитивные приемы в ваших играх.
![](https://habrastorage.org/files/e55/56e/b9a/e5556eb9a6de490bba503724c44acf03.jpg)
Используя данный метод, я создал в Super Mario Maker демо-уровень с сопроводительными комментариями:
ID уровня: 0740-0000-00CD-4D5B
Рабочее название рассматриваемого принципа – «Испытание, модуляция, серия препятствий», или ИМСП. Для объяснения принципа ИМСП я буду использовать примеры из Super Mario Maker. Впрочем, я видел, как данный принцип применяется в Mega Man, Metroid, Portal, Half-Life, Super Meat Boy и многих других играх. Со временем вы сами станете замечать этот метод в ваших любимых играх, а также научитесь грамотнее организовывать контент и придавать большую глубину своим играм.
Для начала дадим определение испытанию. Испытание – это короткое задание, которое должно выполняться целиком и сразу; перед заданием и после него следуют моменты относительного спокойствия. Взгляните на пример ниже: Марио должен запрыгнуть на подвижную платформу над пропастью, а затем спрыгнуть с нее.
![](https://habrastorage.org/files/739/7ea/074/7397ea07472d4c91bcb92d75b90188f3.jpg)
По обе стороны от подвижной платформы земля, где можно находиться спокойно, не подвергаясь опасности. Но, запрыгнув на платформу, игрок должен быть осторожным, чтобы не свалиться в пропасть и не потерять жизнь. Таким образом, это испытание начинается и заканчивается на безопасных участках слева и справа от платформы.
Усложним испытание. Я добавил вторую подвижную платформу другого типа. Перед и после испытания по-прежнему находится земля, но здесь уже нужно преодолеть 2 платформы, чтобы справиться с заданием.
![](https://habrastorage.org/files/aab/f3d/cdf/aabf3dcdf65b43c29c2d5c923cc2311f.jpg)
И хотя второе испытание длиннее первого, это всё равно то же самое испытание, потому что игроку необходимо преодолеть 2 платформы одним махом, прежде чем он попадет на безопасный участок справа.
Испытания могут быть довольно большими, но они всегда должны отделяться друг от друга небольшими безопасными зонами, где игрок в буквальном смысле может немного отдохнуть, прежде чем двигаться вперед. Конечно, в разных играх испытания разные, с разной продолжительностью. Например, в игре Sonic the Hedgehog они гораздо длиннее, чем в Mario, потому что сам Соник, как правило, движется намного быстрее, и игроку нужно дополнительное пространство, чтобы замедлиться, остановиться или поменять направление. Тем не менее, принцип остается тот же.
Одно дело знать, что такое испытания, а другое – понимать, как правильно наполнить ими уровень. Сложность уровня должна расти, иначе игрокам станет скучно. Но вместе с этим нельзя просто набросать каких попало испытаний – уровень должен быть целостным. Думаю, теперь самое время поговорить о разных видах испытаний и их взаимосвязи.
Давайте посмотрим, как 2 предыдущих испытания связаны между собой:
![](https://habrastorage.org/files/2a2/eeb/f79/2a2eebf7965d477483eb3229c834577a.jpg)
В чем различие между первым и вторым испытанием? В обоих используются двигающиеся платформы, но во втором присутствует не один, а 2 типа платформ, которые двигаются по разной траектории и с разным интервалом. Соответственно, сложность этого испытания и объясняется наличием платформы другого типа.
Когда разница между двумя испытаниями состоит в добавлении качественного компонента, как в примере выше, второе испытание называется развитием первого, так как оно является качественно сложнее, чем первое.
Вот еще один пример дополнения для наглядности:
![](https://habrastorage.org/files/828/030/35a/82803035ab6d4ef8b37a2b946bc7100a.jpg)
Как видно, я всего лишь добавил дополнительное препятствие; оно двигается по вертикали между платформами. Это еще один пример качественного увеличения сложности. В такой ситуации игроку будет еще труднее найти нужный промежуток времени, чтобы совершить прыжок.
Конечно, сложность не возросла в разы. В Nintendo предпочитают усложнять свои игры постепенно, шаг за шагом. К концу сложного уровня дополнения достигают своего пика и рождают самые трудные испытания. Но принцип всегда один и тот же: одно дополнение за один шаг.
Существует еще один способ повысить сложность испытаний, не нарушая при этом изначальной концепции уровня. В представленном ниже примере я повторил первое испытание, но с одним существенным различием.
![](https://habrastorage.org/files/45b/5e4/d51/45b5e4d51ce74d2086a4411a92ad76c5.jpg)
Я увеличил расстояние между землей и подвижной платформой. Поскольку Марио теперь нужно перепрыгнуть большее расстояние, сложность прыжка возросла. Я называю этот прием расширением испытания.
Расширение – это количественные изменения компонентов испытания. В данном случае я в 3 раза увеличил расстояние до платформы. Рассмотрим еще один пример расширения:
![](https://habrastorage.org/files/56a/571/386/56a5713861734c2b9baa248064e25316.jpg)
Это испытание похоже на представленное выше второе дополнение, однако здесь я увеличил количество препятствий между платформами. Сделать прыжок труднее, так как сложнее поймать для него нужный момент – и всё это благодаря простому количественному изменению: 2 Гриндера вместо одного.
Испытания с расширением очень легко создавать, так как нужно всего лишь продублировать какой-либо компонент предыдущего испытания. По этой причине неопытные дизайнеры часто перегибают палку с расширением (мы вернемся к этому вопросу в следующем уроке).
Прежде чем вы начнете экспериментировать с дополнением и расширением, следует рассмотреть еще пару рекомендаций.
Во-первых, в игре Mario (и её преемниках) дополнения не накладываются линейным образом. Вместо этого сложные испытания часто возвращаются к исходному положению, а затем порядок и принцип применения дополнений меняется.
Вот пример такого поведения:
![](https://habrastorage.org/files/1c2/991/0f4/1c29910f47fb4f52ba52277f6a6c43ec.jpg)
Вместо того чтобы дальше повышать сложность уровня за счет постоянного добавления новых платформ, я решил пойти другим путем. Я превратил кольцевую траекторию начальной платформы в линейную. Теперь Марио должен прыгать не с платформы на платформу, а через препятствия.
Требуемый навык не поменялся – необходимо вовремя делать прыжки; но это качественно другое направление. Следующие несколько испытаний будут использовать это направление как основу для дальнейшего усложнения.
Данный пример развивает предыдущую идею:
![](https://habrastorage.org/files/11b/bab/256/11bbab25663040c488a50a9b0f1df736.jpg)
Нетрудно догадаться, что это испытание совмещает как качественные, так и количественные изменения предыдущего. Усложненная траектория – это качественное изменение, а дополнительные противники – количественное. Выходит, мы одновременно применили и дополнение, и расширение.
В Super Mario World в равной степени встречаются как составные испытания, так и те, которые используют только один из упомянутых приемов.
В последнем примере снова появляется платформа с кольцевой траекторией:
![](https://habrastorage.org/files/793/ac2/d89/793ac2d892b3435c95fcf3716bb0b0bf.jpg)
В том, что 2 отдельные ветки с разными вариантами дополнений были собраны под конец уровня воедино, есть определенный замысел. Объединившись, они образуют кульминационное изменение.
Пришло самое время поговорить о модуляциях. В широком смысле это способ взаимосвязи между всеми испытаниями одного уровня.
Чтобы было понятнее, я создал схему, которая демонстрирует, как работает мой уровень:
![](https://habrastorage.org/files/5af/771/9c1/5af7719c1ef54d559c19a0316a0d434e.jpg)
Как видно, уровень разбит на 3 ветки с дополнениями, что делает данный тип модуляции похожим на вилку, в конце которой происходит объединение.
В играх от Nintendo и даже в самой Super Mario World используется множество типов модуляций:
![](https://habrastorage.org/files/273/de9/3ea/273de93ea90f4720985f15194a122e61.jpg)
Существует много других типов, которые разработчики используют в своих играх. Это значит, что модуляции нисколько не ограничивают ваш творческий потенциал как дизайнера уровней – наоборот, они обогащают его.
Принцип ИМСП помогает дизайнерам и разработчикам организовать и упорядочить творческий процесс создания уровней. Дополнения и расширения могут применяться в любой игре или игровой механике, а модуляции служат для понимания естественно возникающих закономерностей моделирования уровней.
Хотя все рассмотренные выше понятия были заявлены как часть моего исследования, всё, что я рассказал в этой статье (и расскажу в последующих), возникло и развивалось в классических видеоиграх естественным образом. Теория так же важна, как и практика, а идеального рецепта для дизайна уровней не было и нет. Зато есть множество полезных рекомендаций, и принцип ИМСП тоже к ним относится. Если вы ищете способ наладить и упорядочить рабочий процесс – это то, что вам нужно.
В этом уроке мы рассмотрим простую форму организации контента, которая берет начало еще в 90-х годах. По мере того как разработчики игр (в особенности из компании Nintendo) совершенствовали свое ремесло, они интуитивно вырабатывали определенные способы организации контента. Я постараюсь объяснить, как можно сознательно использовать эти интуитивные приемы в ваших играх.
![](https://habrastorage.org/files/e55/56e/b9a/e5556eb9a6de490bba503724c44acf03.jpg)
Мой пример
Используя данный метод, я создал в Super Mario Maker демо-уровень с сопроводительными комментариями:
ID уровня: 0740-0000-00CD-4D5B
Испытание, модуляция, серия препятствий
Рабочее название рассматриваемого принципа – «Испытание, модуляция, серия препятствий», или ИМСП. Для объяснения принципа ИМСП я буду использовать примеры из Super Mario Maker. Впрочем, я видел, как данный принцип применяется в Mega Man, Metroid, Portal, Half-Life, Super Meat Boy и многих других играх. Со временем вы сами станете замечать этот метод в ваших любимых играх, а также научитесь грамотнее организовывать контент и придавать большую глубину своим играм.
Испытания
Для начала дадим определение испытанию. Испытание – это короткое задание, которое должно выполняться целиком и сразу; перед заданием и после него следуют моменты относительного спокойствия. Взгляните на пример ниже: Марио должен запрыгнуть на подвижную платформу над пропастью, а затем спрыгнуть с нее.
![](https://habrastorage.org/files/739/7ea/074/7397ea07472d4c91bcb92d75b90188f3.jpg)
По обе стороны от подвижной платформы земля, где можно находиться спокойно, не подвергаясь опасности. Но, запрыгнув на платформу, игрок должен быть осторожным, чтобы не свалиться в пропасть и не потерять жизнь. Таким образом, это испытание начинается и заканчивается на безопасных участках слева и справа от платформы.
Усложним испытание. Я добавил вторую подвижную платформу другого типа. Перед и после испытания по-прежнему находится земля, но здесь уже нужно преодолеть 2 платформы, чтобы справиться с заданием.
![](https://habrastorage.org/files/aab/f3d/cdf/aabf3dcdf65b43c29c2d5c923cc2311f.jpg)
И хотя второе испытание длиннее первого, это всё равно то же самое испытание, потому что игроку необходимо преодолеть 2 платформы одним махом, прежде чем он попадет на безопасный участок справа.
Испытания могут быть довольно большими, но они всегда должны отделяться друг от друга небольшими безопасными зонами, где игрок в буквальном смысле может немного отдохнуть, прежде чем двигаться вперед. Конечно, в разных играх испытания разные, с разной продолжительностью. Например, в игре Sonic the Hedgehog они гораздо длиннее, чем в Mario, потому что сам Соник, как правило, движется намного быстрее, и игроку нужно дополнительное пространство, чтобы замедлиться, остановиться или поменять направление. Тем не менее, принцип остается тот же.
Добавляем испытания
Одно дело знать, что такое испытания, а другое – понимать, как правильно наполнить ими уровень. Сложность уровня должна расти, иначе игрокам станет скучно. Но вместе с этим нельзя просто набросать каких попало испытаний – уровень должен быть целостным. Думаю, теперь самое время поговорить о разных видах испытаний и их взаимосвязи.
Дополнения
Давайте посмотрим, как 2 предыдущих испытания связаны между собой:
![](https://habrastorage.org/files/2a2/eeb/f79/2a2eebf7965d477483eb3229c834577a.jpg)
В чем различие между первым и вторым испытанием? В обоих используются двигающиеся платформы, но во втором присутствует не один, а 2 типа платформ, которые двигаются по разной траектории и с разным интервалом. Соответственно, сложность этого испытания и объясняется наличием платформы другого типа.
Когда разница между двумя испытаниями состоит в добавлении качественного компонента, как в примере выше, второе испытание называется развитием первого, так как оно является качественно сложнее, чем первое.
Вот еще один пример дополнения для наглядности:
![](https://habrastorage.org/files/828/030/35a/82803035ab6d4ef8b37a2b946bc7100a.jpg)
Как видно, я всего лишь добавил дополнительное препятствие; оно двигается по вертикали между платформами. Это еще один пример качественного увеличения сложности. В такой ситуации игроку будет еще труднее найти нужный промежуток времени, чтобы совершить прыжок.
Конечно, сложность не возросла в разы. В Nintendo предпочитают усложнять свои игры постепенно, шаг за шагом. К концу сложного уровня дополнения достигают своего пика и рождают самые трудные испытания. Но принцип всегда один и тот же: одно дополнение за один шаг.
Расширения
Существует еще один способ повысить сложность испытаний, не нарушая при этом изначальной концепции уровня. В представленном ниже примере я повторил первое испытание, но с одним существенным различием.
![](https://habrastorage.org/files/45b/5e4/d51/45b5e4d51ce74d2086a4411a92ad76c5.jpg)
Я увеличил расстояние между землей и подвижной платформой. Поскольку Марио теперь нужно перепрыгнуть большее расстояние, сложность прыжка возросла. Я называю этот прием расширением испытания.
Расширение – это количественные изменения компонентов испытания. В данном случае я в 3 раза увеличил расстояние до платформы. Рассмотрим еще один пример расширения:
![](https://habrastorage.org/files/56a/571/386/56a5713861734c2b9baa248064e25316.jpg)
Это испытание похоже на представленное выше второе дополнение, однако здесь я увеличил количество препятствий между платформами. Сделать прыжок труднее, так как сложнее поймать для него нужный момент – и всё это благодаря простому количественному изменению: 2 Гриндера вместо одного.
Испытания с расширением очень легко создавать, так как нужно всего лишь продублировать какой-либо компонент предыдущего испытания. По этой причине неопытные дизайнеры часто перегибают палку с расширением (мы вернемся к этому вопросу в следующем уроке).
Дополнение, расширение и возврат
Прежде чем вы начнете экспериментировать с дополнением и расширением, следует рассмотреть еще пару рекомендаций.
Во-первых, в игре Mario (и её преемниках) дополнения не накладываются линейным образом. Вместо этого сложные испытания часто возвращаются к исходному положению, а затем порядок и принцип применения дополнений меняется.
Вот пример такого поведения:
![](https://habrastorage.org/files/1c2/991/0f4/1c29910f47fb4f52ba52277f6a6c43ec.jpg)
Вместо того чтобы дальше повышать сложность уровня за счет постоянного добавления новых платформ, я решил пойти другим путем. Я превратил кольцевую траекторию начальной платформы в линейную. Теперь Марио должен прыгать не с платформы на платформу, а через препятствия.
Требуемый навык не поменялся – необходимо вовремя делать прыжки; но это качественно другое направление. Следующие несколько испытаний будут использовать это направление как основу для дальнейшего усложнения.
Данный пример развивает предыдущую идею:
![](https://habrastorage.org/files/11b/bab/256/11bbab25663040c488a50a9b0f1df736.jpg)
Нетрудно догадаться, что это испытание совмещает как качественные, так и количественные изменения предыдущего. Усложненная траектория – это качественное изменение, а дополнительные противники – количественное. Выходит, мы одновременно применили и дополнение, и расширение.
В Super Mario World в равной степени встречаются как составные испытания, так и те, которые используют только один из упомянутых приемов.
В последнем примере снова появляется платформа с кольцевой траекторией:
![](https://habrastorage.org/files/793/ac2/d89/793ac2d892b3435c95fcf3716bb0b0bf.jpg)
В том, что 2 отдельные ветки с разными вариантами дополнений были собраны под конец уровня воедино, есть определенный замысел. Объединившись, они образуют кульминационное изменение.
Модуляции
Пришло самое время поговорить о модуляциях. В широком смысле это способ взаимосвязи между всеми испытаниями одного уровня.
Чтобы было понятнее, я создал схему, которая демонстрирует, как работает мой уровень:
![](https://habrastorage.org/files/5af/771/9c1/5af7719c1ef54d559c19a0316a0d434e.jpg)
Как видно, уровень разбит на 3 ветки с дополнениями, что делает данный тип модуляции похожим на вилку, в конце которой происходит объединение.
В играх от Nintendo и даже в самой Super Mario World используется множество типов модуляций:
![](https://habrastorage.org/files/273/de9/3ea/273de93ea90f4720985f15194a122e61.jpg)
Существует много других типов, которые разработчики используют в своих играх. Это значит, что модуляции нисколько не ограничивают ваш творческий потенциал как дизайнера уровней – наоборот, они обогащают его.
Принцип ИМСП помогает дизайнерам и разработчикам организовать и упорядочить творческий процесс создания уровней. Дополнения и расширения могут применяться в любой игре или игровой механике, а модуляции служат для понимания естественно возникающих закономерностей моделирования уровней.
Вывод
Хотя все рассмотренные выше понятия были заявлены как часть моего исследования, всё, что я рассказал в этой статье (и расскажу в последующих), возникло и развивалось в классических видеоиграх естественным образом. Теория так же важна, как и практика, а идеального рецепта для дизайна уровней не было и нет. Зато есть множество полезных рекомендаций, и принцип ИМСП тоже к ним относится. Если вы ищете способ наладить и упорядочить рабочий процесс – это то, что вам нужно.
Поделиться с друзьями
Комментарии (3)
samodum
16.08.2016 23:05Ещё одно доказательство преимущества ИИ перед мясом:
https://medium.com/@ageitgey/machine-learning-is-fun-part-2
Deosis
Когда кто-то создает черный цвет на синем фоне и дизайнеров начинают кровоточить глаза.
sapog
А как же красный на жёлтом?