Хостинг-провайдер
93,56
рейтинг
15 января в 16:53

Разработка → 7 примеров использования процедурной генерации в играх, о которых полезно знать всем разработчикам перевод

Процедурно-генерируемый контент «правильных» игр — Diablo, Rogue, Spelunky, Daggerfall, Elite, Spore и даже аналогов Football Manager — не перестает удивлять. Он позволяет иначе взглянуть на дизайн и подчеркивает элегантность основных показателей системы. С его помощью вы экономите время и можете зарабатывать. Именно благодаря ему Skyrim и Minecraft привлекают огромное количество игроков, которые не изменяют своему выбору даже через несколько лет после выхода этих продуктов. Процедурная генерация – надежное основание, на котором построена концепция столь ожидаемой "No Man’s Sky" от Hello Games.

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

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

1.Crusader Kings II: Сложные родственные связи становятся динамичными благодаря генерируемым персонажам


image

Процедурно-генерируемый контент придает персонажам и системам необходимые детали и глубину, а также приятно разнообразит среду и дизайн игры – именно в этих сферах данная техника и находит максимальное применение. С помощью процедурной генерации персонажи стратегии Crusader Kings II, действия которой разворачиваются в эпоху Средневековья, становятся уникальными, хотя и управляемыми компьютером, личностями. Речь идет о различных чертах, которые на самом деле сводятся к простым числам (вроде +1 к интриганству и -10 к жадности), определяющим поведение персонажа. Но так как события во многом обусловлены взаимоотношениями и поведением героев, их характеры превращаются в увлекательные элементы сложных систем, полюбившихся многим приверженцам этой средневековой повести.

В своем электронном письме креативный директор Kitfox Games Таня Шорт отмечает, что рост популярности игры и непрекращающиеся обсуждения на форуме указывают на готовность игроков пропускать через себя все эти цифры и реакции персонажей (которые, как правило, очень просты, но в комплексе могут казаться сложными). «Так как Crusader Kings II попадает в категорию хардкорных игр с высоким порогом вхождения, игру можно в определенной степени сравнить с The Sims», — поясняет Таня. «Игроки любят придумывать истории, в которых объясняют внутренние переживания героев, их политику и т.д., особенно когда в вашем распоряжении такой интересный контекст, как реалии средневековой Европы. Именно поэтому то и дело на форуме Crusader Kings II возникают горячие дискуссии «не по теме»».

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

2. Более колоритные враги в Shadow of Mordor


image

Shadow of Mordor, экшн RPG по мотивам произведений Толкиена, также выходит за рамки привычного представления об уровнях и картах процедурно-генерируемого контента. Игра закладывает концепцию налаживания личных отношений пользователей с орками. Если вкратце, каждый орк уникален — они создаются по алгоритму Nemesis System: учитывается всё от имени и внешности до манеры говорить и отношений с другими орками. Игра позволяет создавать всё новые и новые комбинации характеристик, используя их по принципу конструкторов Lego.

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

Так возникает конкуренция и вражда, что позволяет игроку использовать социальные связи орков во всевозможных личных целях (например, чтобы настроить кого-то против командира); вы испытываете определенные чувства по отношению к плохим ребятам, что странно, ведь убивать врагов – главная задача большинства видеоигр. По мнению директора BioShock Кена Левайна, Shadow of Mordor – «первая игра открытого типа взаимодействия». Это важный шаг на пути создания традиционных игровых сюжетов, которые адаптируются под решения игрока, а не просто существуют параллельно, как, скажем, при выборе новой книги о приключениях.

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

3. Непредсказуемые уровни и удивительная механика в Spelunky


image

Пожалуй, только Rogue и Diablo превосходят Spelunky Дерека Ю (Derek Yu) по степени интеграции принципов процедурной генерации. Гениальность данного проекта заключается в том, что он мастерски детализирует механику и системы, лежащие в основе игры, а не обращаются к различным уровням запоминания (последний прием и вовсе не работает, так как каждый уровень генерируется буквально за несколько секунд до начала сессии). Доцент Нью-Йоркского университета Джулиан Тогелиус (исследователь вышеупомянутых тенденций) считает, что такой фундаментальный сдвиг в акцентах — от модификации уровня к изменению правил игры – демонстрирует наиболее эффективный способ применения процедурной генерации. «Невероятно важно, что игрок даже не предполагает, какие задачи ему придется решать в дальнейшем, именно поэтому генерация уровней (довольно простой, но чрезвычайно эффективный механизм) столь важна», — уверяет он.

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

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

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

ИТОГО: Генерируя уровни прямо во время игры по простой формуле, Spelunky заставляет игрока вникать в правила и анализировать возникающие системы, а не просто изучать геометрию очередного видеопродукта.

4. Смежные алгоритмические системы Dwarf Fortress


image

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

По мнению Тани Шорт, больше всего этот эпический симулятор мира гномов, созданный Тарном и Заком Адамс, поражает простотой десятков взаимосвязанных алгоритмических систем. «Большинство воспринимает Dwarf Fortress как результат креативной работы гениального инженера, а продукт в большей степени похож на слоеное пирожное, чем на двигатель внутреннего сгорания», — поясняет она. «У каждого элемента собственные правила, хотя он и подчиняется закономерностям, характерным для других компонентов. Только вот связь между частями целого едва уловима, а вышеупомянутая сложность понимания – прямое следствие различных типов взаимодействия – почти, как в нашей Вселенной. Не все заметно, а Эволюция идет».

ИТОГО: Dwarf Fortress отличается от других продуктов своего класса не сложностью концепции, а тем, как отдельные простые элементы игры наслаиваются друг на друга, что способствует процедурной генерации опыта игрока – благодаря этому каждая сессия открывает для него новый, уникальный, многомерный и совершенно непредсказуемый мир гномов.

5. RymdResa: Впечатляющее величие, таящееся во враждебной чужой вселенной


image

В современном мире инди-«рогалик» — явление более чем распространенное, но лишь немногие из игр этого жанра сочетают процедурную генерацию с тематикой продукта так же удачно, как это получилось у создателей RymdResa. Подобно Elite и долгожданной No Man’s Sky в данной игре процедурно генерируется необъятная Вселенная, в которой планет и всевозможного космического мусора столько, что их вряд ли когда-либо можно было бы посетить. Цель такого подхода одна: игрок должен ощутить одиночество.

Он путешествует во враждебном, мрачном небытии, изредка сталкиваясь с различными проплывающими мимо предметами, космическими кораблями, небесными телами или переживая катастрофы, которые почти не оставляют надежды на спасение. Красота RymdResa заключается в том, что сама по себе поэтика жизни космонавта на борту корабля игрока, общая атмосфера и стиль — опасность, одиночество, покой, необъятность просторов – возникает благодаря генерируемым алгоритмам, формирующим целый мир. В данном случае эти эстетические элементы — как правило, упускаются при ручной разработке дизайна уровней – усиливаются за счет ощущения отчужденности и грандиозных алгоритмов процедурной генерации, которые в каждой новой сессии предлагают исследовать уникальную вселенную.

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

6. Новинки заставляют исследовать миры Civilization тщательнее


image

Если играть в Civilization, используя лишь статичные карты, созданные вручную, надолго вас не хватит. Слишком скучно. Основную идею этой серии компьютерных игр прекрасно описывает высказывание Сида Мейера, согласно которому хороший дизайн различных ситуативных вариантов перестает впечатлять, как только становится ясно, где искать те или иные предметы (персонажей). Тогелиус полагает, что «в игре очень важно каждый раз иметь дело с новыми картами, ведь так первую половину сессии вы изучаете предложенные условия, не понимая устройства мира и не зная, с какими цивилизациями столкнетесь».

Главное понять, почему в игре вроде Civilization или Age of Empires, если мы говорим о стратегии реального времени, необходима процедурная генерация, в то время как многие другие продукты с аналогичными системами взаимодействия работают только с картами, созданными вручную. Процедурно-генерируемые карты подстегивают дух исследователя, но их очень сложно адаптировать под различные стратегии и стили игры. Тогелиус был членом команды разработчиков, в 2013 году тестировавших процедурно-генерируемые карты многосерийной Blizzard RTS StarCraft, рассчитанной на нескольких игроков. «Члены сообщества едва не подняли нас на смех: подготовленные карты не были на 100% симметричными», — вспоминает он.

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

7. Экспериментальные процедурно-генерируемые игры предлагают творческие, эффективные решения сложных задач


image

Некоторые из наиболее дальновидных и инновационных инициатив в сфере создания процедурно-генерируемого контента – результат научных исследований, а не некоммерческой разработки игр. В ходе недавнего проекта Georgia Tech был представлен автоматический генератор уровней для Super Mario Bros, основанный на алгоритме, описанном в одном из видеороликов с YouTube. Другой проект Georgia Tech позволяет генерировать простые интерактивные сюжетные линии.

AI, известный широкой общественности, как ANGELINA, специализируется на процедурной генерации целых игр – включая не только отдельные элементы, но и механику — используя речевые команды (в качестве тематических рубрик). Дизайнер технологии Майкл Кук также руководит Procedural Generation Jam, специалистами которого, среди прочего, в 2014 году была создана игра, предлагавшая раскрыть таинственное убийство.

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

Не просто конвейер контента


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

И не забывайте о том, что разнообразие не всегда синоним высокого качества игры.

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

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

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



От переводчика:

Немного ненавязчивой рекламы в подвале. В честь того, что общая емкость сети нидерландского дата-центра, в котором мы предоставляем услуги, достигла значения 5 Тбит / с (58 точек присутствия, включения в 36 точек обмена, более, чем в 20 странах и 4213 пиринговых включений), мы предлагаем выделенные серверы в аренду по невероятно низким ценам.
Автор: @ragequit Richard Moss
ua-hosting.company
рейтинг 93,56
Хостинг-провайдер

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

  • –5
    -
  • +14
    А примеры то где? Ожидал увидеть описания алгоритмов/практик, которые используются для генерации разного контента, а увидел только краткие описания самих игр.
    • +3
      Да тут даже эти краткие описание и список игр странный.

      > Diablo, Rogue, Spelunky, Daggerfall, Elite, Spore…

      Учитывая, что «Rogue» еще несколько раз упоминается в статье наравне с Diablo, у меня чем дальше, тем больше подозрение, что автор, собственно, саму Rogue в глаза не видел, а еще примерно так же проигнорировал весь мощнейший мир roguelike-игр, где Rogue как-то совсем странно сравнивать с современными монстрами roguelike-строения типа ADOM, FTL, NetHack, Moria, DCSS, DoomRL и т.д.

      > 1.Crusader Kings II: Сложные родственные связи становятся динамичными благодаря генерируемым персонажам

      … и ни на что фактически не влияют. Ну, есть набор чисел-характеристик, ну, он как-то видоизменяется. С ровно таким же успехом можно говорить про «переживания» среднестатистических игроков по этим цифрам в любой RPG.

      > 2. Более колоритные враги в Shadow of Mordor

      … и близко не стояли с теми, что генерируются в тех же Dwarf Fortress или хотя бы ADOM. И, в отличие от SoM, там это не просто дополнительные декали на модель, а действительно на что-то влияет. Допустил, что посла каких-нибудь местных эльфов съел внезапно пришедший из глубин монстр, а у него оказался немаленький клан с родным братом, жаждущим мести? Получи осаду войска эльфов в следующем сезоне.

      > 3. Непредсказуемые уровни и удивительная механика в Spelunky

      Опять же, субъективно, далеко не самый радужный пример генерации случайных процедурных миров. Тот же Minecraft или его 2D-клоны (типа Terraria), скажем, куда более сложные планеты генерируют.

      Ну и так далее.
    • 0
      Да, это было бы очень интересно.
  • +5
    Статья рекламная что ли? Процедурная генерация… хм… это как с фракталами?
    • 0
      Добро пожаловать на хабр, вновь :)

      Фракталы могут относиться к процедурной генерации, но она не ограничивается лишь фракталами. Биомы (в майнкрафте), текстура вороного, градиенты и распределение вероятностей появления объектов и локаций (а так же их свойств), и прочее прочее прочее.
  • +8
    Уважаемые представители компании ua-hosting!
    Уже по 2-3 раза в день я натыкаюсь на вашу рекламу на хабре по причине наличия оной внизу каждого десятого поста на главной. Я ничего не имею против рекламы, однако назойливый маркетинг почему-то вызывает у меня негатив и для себя я уже заметил некое раздражение от вашего бренда.
    Возможно вам стоит сделать определенные выводы, не исключаю, что такая-же реакция может наблюдаться и у других.
    Думаю вам следует обратить на это внимание, т.к., надеюсь, это идет вразрез с вашими целями.
    • +2
      Что-то мне подсказывает, что от чисто рекламных постов с 5 завуалированными ссылками в тексте, как делают, в основной своей массе, другие блоги, вам будет радостнее еще меньше. Реклама эта никак на посты не влияет, в текст, смысл и прочее она не вмешивается, так что сути «раздражения» не понимаю совсем.

      Думаю вам следует обратить на это внимание, т.к., надеюсь, это идет вразрез с вашими целями.


      Есть два вида рекламы-работы на Хабре в рамках корп. блога:

      1. Классический. Каждый пост о себе любимом с ссылками и надуванием щек. Кличется еще «активным».
      2. Пассивный. Когда на 100 постов корп. блога есть ~5 рекламных постов со скидками и еще чем-то, например, как было с черной пятницей, а все остальное — нейтральный контент, который может быть просто любопытно почитать. Например, такой, или такой.

      Так что предпочтительнее? Нон-стоп маркетингового буллшита, или независимый контент с ничем не обязывающими, огражденными от основного текста тремя строчками и ссылкой (на другой пост на хабре, если что, а не внешней, никакого SEO)?
      • +2
        Возможно есть третий вариант, пассивный, и неназойливый. Мне кажется, что не нужно писать в конце каждого поста один и тот же текст, имейте чувство меры. Я ж не зла вам желаю, посмотрите на реакцию аудитории и поймите, что уже эребор. Тем более, что подпись под каждым постом «ua-hosting.company / Хостинг-провайдер» уже добавляет вам цитируемости и является какой-никакой, а рекламой, незачем делать масло масляное.
      • +1
        Тем более, что все посты и так в вашем корпоративном блоге, где весь блог справа — одна реклама. «Волшебные цены», «невероятно низкие цены», блин, вы бы еще лендинг воткнули со счетчиком. Аудитория Хабра больше техническая, с солидным опытом присутствия в интернете, и посему пресыщенная стандартными подходами продаж. Не поступайте во вред себе, учитывайте специфику ресурса и его постоянных читателей.
      • +2
        А вы рассмотрите третий вариант. Это когда вы публикуете реально интересную информацию, подготовленную теми людьми, которые разбираются в теме публикации. У вас хостинг-компания. Почему бы не писать о вашей деятельности, проблемах, с которыми сталкиваетесь, и материалами «по теме»? И не нужно будет вставлять 5 строчек внизу каждого перевода, написанного часто некомпетентными (по моему субъективному мнению) людьми. Если вы будете постить профильный вашей тематике материал, который будет показывать ваш профессионализм, люди сами потянутся.
  • +7
    Бла-бла-бла, использовались алгоритмы процедурной генерации, бла-бла-бла…

    Ну, какие конкретно алгоритмы использовались?
  • 0
    Неплохой пост, но хотя бы 1 пример кода или библиотеки для реальной генерации был бы интересен.
  • +25
    Господа из UA Hosting! Имейте пожалуйста хотя-бы небольшое уважение к площадке и аудитории, не выкладывайте переводы сделанные школьниками за еду. Это же читать не возможно, что это за жесть вообще: «Crusader Kings II попадает в категорию аппаратных продуктов, недоступных по ночам» ?!
    Оригинал: «For being a nigh-inaccessible hardcore game» (является хардкорной игрой запредельной сложности)

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.

Самое читаемое Разработка