Connect with us

Новости

Обсуждение в Reddit: как в такой игре, как Candy Crush, создаются уровни?

В Candy Crush почти 10,000 уровней. Компания зарабатывает  кучу денег, поэтому она может себе позволить платить людям за их создание, но кажется, что человеку очень сложно разработать интересный уровень?

Опубликовано

/

     
     

В Candy Crush почти 10,000 уровней. Компания зарабатывает  кучу денег, поэтому она может себе позволить платить людям за их создание, но кажется, что человеку очень сложно разработать интересный уровень и убедиться, что он по-прежнему «выигрышный» при разном количестве ходов. То есть уровни генерируются автоматически, а затем тестируются людьми?

Как в Candy Crush создаются уровни — ответ от бывшего разработчика

Создание уровней для этих игр становится экономикой масштаба и последовательности.

Уровни игр в этом жанре в основном редактируются вручную, но затем тщательно категоризируются, классифицируются и автоматически тестируются с помощью эвристических или вероятностных методов , основанных на принятии решений, таких как поиск по дереву Монте-Карло (King  опубликовал часть этого исследования, вы можете найти полную документацию в Google).

Дизайн уровней требует определенного навыка, и дизайнеры-новички или любители часто пытаются создавать уровни-головоломки или уровни-уловки или не могут сделать уровни достаточно сложными, потому что сами еще не могут играть на необходимом уровне сложности. Таким образом, быть хорошим дизайнером Match-3 — это иметь определенную уверенность в работе … и наоборот, команде может потребоваться некоторое время, чтобы ввести нового дизайнера в «свою» конкретную игру.

Хитрость не в том, чтобы проектировать для конкретной сложности, а в том, чтобы разработать множество уровней за один раз, а затем упорядочивать их в соответствии с очевидной сложностью путем ручного и автоматизированного тестирования. А также с учетом данных, поступающих от живых игроков. Затем дизайнеры допиливают их — печально известный 65-й уровень в оригинальной Candy Crush Saga был понерфлен таким образом — либо путем изменения вероятности появления определенных фигур, либо увеличением количества ходов, либо уменьшением количества целей.

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

Обсуждение в Reddit: как в такой игре, как Candy Crush, создаются уровни?

В различных компаниях, занимающихся головоломками с сопоставлением плиток, в которых я работал, сложности уровней также уменьшаются во время запуска, когда они проходятся в качестве первых нескольких уровней текущей игровой сессии. Это помогает игрокам войти в поток и начать сеанс с большей вероятностью успеха. Другая фишка заключалась в том, что монетизации не помогает, если игрок проваливает уровень 20 или даже 5 раз, поэтому многие студии делают свои игры таким образом, что после частых неудач сложность незаметно, а иногда и заметно, падает. Это также помогает обуздать проблемные модели расходов, если игроки продолжают терпеть неудачи, несмотря на покупку бустеров или читов (хотя столько же компаний идут путем зла и опираются на такой подход? заставляя покупать все больше).

Многие из этих игр, например HomeScapes, вообще со временем не становятся сложнее (иначе они потеряли бы всех своих пользователей!), но сохраняют относительно постоянный общий уровень сложности на неопределенный срок.

В 5th Planet мы рассматривали возможность автоматизации нашего ручного (все еще достаточно продуктивного!) процесса редактирования уровней. Попутно нам представили генератор уровней, предложенный сторонней компанией, который работал, рисуя некоторые шаблонные формы. Он устанавливал пул правил и вариантов целей, а затем ИИ заполнял (почти как коллапс волновой функции) другие плитки, быстро тестируя уровень тысячи раз, оценивая дизайн и созданные уровни. Эти уровни можно было автоматически развертывать в соответствии с желаемой кривой сложности, а реальная статистика игроков накладывалась на прогнозируемые коэффициенты побед/неудач от ИИ. Это было весьма впечатляюще.

К сожалению, наше ядро ​​Switcher в этой студии имело некоторые уникальные («крутые») функции, такие как возможность создавать новые совпадения прямо во время решения уровня и некоторые другие продвинутые функции, которые внешний редактор не смог воспроизвести при ИИ-тестировании. Оглядываясь назад, мы должны были просто отключить эти вещи в наших правилах и подождать, пока компания внедрит самые важные настраиваемые правила, которые были в нашей игре.

Должен сказать, этот инструмент для редактирования ИИ был намного лучше, чем все, что было у King, пока я был там. ИИ, который проводил классификацию уровней, был в основном эвристическим/вероятностным, потому что Monte Carlo tree search AI легко заглядывал вперед дальше, чем могли бы даже лучшие игроки, не говоря уже о средних игроках, а также накапливал знания и предубеждения из неизвестных факторов, таких как отношения цветов камней на уровне.

Говоря об ИИ и ботах для тестирования — мой эвристический ИИ для игры типа компоновщика (соедините 4 или более плиток свайпом) играл так хорошо, что мы показывали его на экранах и подбадривали его за крутые «уверенные» движения. Это может быть только эвристика (возможно, какая-то магия ML может сделать его лучше), потому что даже пространство решений для одного состояния доски в линкерах (например, Best Fiends) оказывается NP сложным, тогда как возможное количество ходов в Switcher (например, Candy Crush) намного проще (максимальное количество обменов, которое следует учитывать, равно размеру доски * 4).

Однажды я также был свидетелем некоторых исследований по использованию автоэнкодеров для создания большего количества уровней (представьте, что трансфер стилей в нейронной сети используется не для искусства, а для дизайна уровней головоломки!). Я не верю, что из этого много чего вышло, но я думаю, что это очень многообещающе.

Обсуждение в Reddit

Если вы нашли опечатку - выделите ее и нажмите Ctrl + Enter! Для связи с нами вы можете использовать info@apptractor.ru.
Advertisement

Популярное

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: