Создание прототипа логической игры для разрешимости уровней

11

Я нахожусь в стадии создания прототипа игры-головоломки для iOS. Основная предпосылка того, что игрок должен сделать, это добраться из пункта А в пункт В, перемещаясь по лабиринту, подобному установке, перемещая блоки в сторону и избегая врагов. Это мой первый подход к такой игре, поэтому мне интересно, как другие убедились, что создаваемые ими уровни разрешимы.

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

Знает ли создатель, что расположение кусочков головоломки расположено так, чтобы можно было решить головоломку? Начинают ли они с бумажных прототипов и работают из решаемого конечного состояния в обратном направлении, чтобы сделать начальные макеты игрового поля?

I00I
источник

Ответы:

10

Похоже, вы играете в стиле Sokoban . У вас есть как минимум 3 варианта:

  • Работа из решенного конечного состояния. Мое инстинктивное чувство говорит, что это не оптимальное решение, потому что а) обычно существует много конечных состояний и б) головоломка должна быть не только разрешимой, но и интересной. Таким образом, вам, вероятно, лучше выбрать один или оба из двух других вариантов:

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

  • Мой предпочтительный метод - ручное тестирование. Таким образом, вы предлагаете общую идею уровня и выкладываете доску, расставляете препятствия и подвижные блоки и т. Д. Затем вы пытаетесь решить ее, как если бы вы были игроком, и вы должны сознательно наблюдать за собой. Прежде всего, конечно, он решаем на уровне? В этом вам может помочь автоматизированный тест, который сэкономит вам много времени. Во-вторых, интересно ли играть на уровне, достаточно ли он интересен, чтобы игрок захотел решить другой? Это, помимо простой решимости, является главным вопросом, хотите ли вы сделать свою игру хорошей. Затем вы должны решить, является ли уровень простым или сложным, и вы, вероятно, хотите представить их в таком порядке: от простого к сложному.

TL; DR: внедрить бота, который может быстро проверить, является ли данный уровень разрешимым или нет, желательно в редакторе уровней. Тогда дизайн уровней, которые может быть интересно решить. Затем выполните ручное тестирование на наличие фактора веселья и сложности.

Hackworth
источник
Хакворт большое спасибо. Это очень полезно. Как найти дополнительную информацию о создании редактора уровней и тестового бота? Конечно, должны быть некоторые общие принципы, которые помогут мне начать. Кроме того, как в мире вы узнали, что жанр игры называется Sokoban? Я бы никогда не знал, за что гуглить. Это великолепно. Еще раз спасибо. Я могу сказать, что вы заботитесь о создании "веселых, отличных игр". Это отличное изменение от вопросов на Stackoverflow.
I00I
3

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

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

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

Ali1S232
источник
Гаджет, спасибо, что поделились своими впечатлениями. Приятно видеть, что кто-то еще был на этом пути. Не зная, как настроить редактор уровней, и бот, чтобы увидеть, являются ли они разрешимыми, заставляет меня опираться на этот метод поверх двух других более изящных предоставленных решений. Мне все еще, возможно, придется отказаться от своей любви к Cocoa Touch, сломаться и использовать редактор уровней Cocos2d и фреймворки для этого конкретного проекта.
I00I
1

Это действительно интересный вопрос. Лучший ответ заключается в том, что при разработке игровой механики вы должны учитывать, как вы хотите строить свои головоломки. Создание головоломки, в которую интересно играть, иногда отличается от создания системы головоломки, в которой вы можете создать правильное (большое) количество забавных головоломок - это одно из важных различий между Разработчиком и Игроком.

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

  1. Уровни должны быть эстетически красивыми.
  2. Решение для уровней должно быть элегантным.
  3. Каждый уровень должен иметь уникальное решение.
  4. Каждый уровень должен иметь четко определенную сложность (чтобы вы могли правильно их упорядочить)
  5. Каждый уровень должен сильно отличаться от любого другого уровня.
  6. Вам нужно 1000 уровней.
  7. Создание уровня должно быть достаточно простым для пользователей.

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

Саймон Стрэндж
источник