Данным небольшим постом постараюсь убедить вас использовать чуточку больше рандома и процедурной генерации в ваших проектах.
В любом случае, будет много интересных ресурсов.
Виды рандома в играх
Вообще, я сторонник того, чтобы использовать как можно больше такого рода контента, поскольку это повышает реиграбильность и количество уникальных игровых ситуаций для пользователя.
Понятно, что делать это стоит без фанатизма. В пример можно привести No Man’s Sky, где разработчики возвели идею процедурной генерации в абсолют и до сих пор за это расплачиваются.
Проблема, на мой взгляд, в том, что многие принимают данную концепцию слишком глобально, зацикливаясь, например, на создании бесконечных миров или тонны ненужного оружия. Но при этом забывают уделять внимание мелочам, из которых, собственно, и состоит окружение игрока.
Поскольку сам я сижу на относительно небольших проектах, то стараюсь вводить максимально возможное количество рандомного/процедурного контента, чтобы игрок не заскучал и мог находить что-то новое каждый раз.
Примеры используемой генерации
Хотелось конечно дополнять примеры иллюстрациями, но, к сожалению, NDA не позволяет этого сделать.
- Вместо статичного фона звездного неба, использую систему частиц, благодаря которой каждый раз создается уникальный пейзаж;
- Вместо одного спрайта растений на подоконниках, уговорил дизайнеров нарисовать несколько — в совокупности с рандомом, каждый раз получается уникальный вид зданий;
- Вместо дефолтных позиций платформ для запуска ракет, реализовал простенький алгоритм — благодаря этому, положение платформ и их размеры задаются «случайным» образом. В сочетании с рандомным выбором спрайтов ракет, каждый раз достигается уникальная комбинация;
- Тропические плоды, свисающие на лианах, каждый раз появляются в новом месте, а не жестко зашиты;
- Ломаные линии, определяющие движение игрока, тоже процедурно генерируются, а не выбираются из пары заданных;
- Объекты для взаимодействия с пользователем также каждый раз появляются в разных местах. В другом случае, наоборот, — места могут быть жестко зашиты, но вот сам объекты нет.
Продолжать можно долго. Чувствую, многие сейчас возразят, что все это не имеет никакого смысла: если геймплей кривой, то это не спасет игру. Согласен, такие подходы стоит использовать, только когда все остальное уже впорядке, а лучше заранее связывать воедино с основными игровыми механиками.
Ниже приведены примеры с отсутствием и наличием вариативности. Постарался взять ситуации с которыми столкнулся лично, а не которые у всех на слуху.
Осторожно, спойлеры!
- The Legend of Zelda: Breath of the Wild — лут в сундуках: я понимаю, что такие предметы, как легендарный меч и д.р., могут и должны выдаваться в конкретных местах, по квестам и т.д., но когда точно знаешь, что выпадет из сундука в который пришлось заглянуть несколько раз из-за смерти, — сильно надоедает.
- The Legend of Zelda: Breath of the Wild — святилища: сама идея святилищ довольна интересна — головоломки на любой вкус и цвет. Но в определенный момент, когда я не смог сам пройти одно из хранилищ (название, к сожалению не запомнил), где необходимо было с помощью древних механизмов ввести количество звезд изображенных в каждом созвездии, я обратил внимание, что у меня все тоже самое, что и в видео, которое я смотрел. Добавив простую процедурную генерацию таких созвездий, можно легко создать уникальную ситуацию для каждого игрока. Даже если игрок и подсмотрит прохождение, ему все равно придется напрячься, чтобы выполнить задание.
- Talos Principle — зашитые замкИ: ребята из Croteam постарались на славу, создав игру не уступающую Portal, поднимающей риторические вопросы, с отличными головоломками, кучей пасхалок и несколькими концовками. Но вот замкИ, открывающие двери и реализованные с помощью головоломок по типу «собери прямоугольник из фигурок», всегда будут одни и те же на одних и тех же местах. Почему нельзя было реализовать хотя бы несколько вариаций головоломки для одного замкА? Это существенно бы усложнило жизнь тем, кто решил заглянуть в гайды по прохождению.
Видео, на тему создания головоломок
- Control — респаун врагов по триггеру: не выполнив локальное задание, я решил вернуться обратно, откуда пришел. Как только, я перешагнул порог комнаты — враги зареспаунились. Т.е. игра тупо отработала по триггеру «Когда пойдет назад» и не важно, выполнил я задание или нет. Control с этой точки зрения сильно разочаровал. Вообще, очень странно, что такое существует в 2К19 в игре AAA класса. В той же самой L4D2 боссы появляются в разных местах. Понятно, что места эти зашиты и спустя столько лет уже заучены сообществом наизусть, но согласитесь, что так намного интереснее. А спаун мелких боссов так вообще реализован хитро, исходя из расчета нападения на самого слабого, отстающего или, наоборот, убежавшего вперед.
- Dishonored — приём Леди Бойл: в данной миссии необходимо устранить одну из 3 сестер, какую именно — выбирается игрой случайно. Этот трюк сильно усложнил жизнь спидраннерам.
- Dishonored 2 — загадка Джиндоша: игра предоставит вам возможность срезать путь, решив адаптированную под лор игры классическую задачу Эйнштейна. Вот только у каждого игрока свой набор условий. Даже зная алгоритм решения, Вам, вероятнее всего, понадобится листок и ручка, чтобы пройти дальше.
- Borderlands — генерируемое оружие: наверное, все слышали про эту, одну из уникальных, особенность данной серии. Разработчики превратили оружие в фантики на любой вкус, цвет и ситуацию. Вам не имеет смысла привязываться и искать то самое, единственное орудие смерти, ведь через пару минут подвернется что-нибудь получше.
Вероятно, большинство пользователей даже и не заметит, что вы о них позаботились, реализуя незначительную вариативную логику. Но поверьте, они заметят ее отсутствие — ведь из таких мелочей и складывается игра. А реализовать ее очень просто: не поленитесь написать лишних пару строчек кода или нарисовать на пару спрайтов больше. Надеюсь, мне удалось вас немного переубедить или хотя бы посеять зернышко сомнения.
Etrimus
Вспоминается Diablo, да ещё если старенькая 2-я часть с пиратским переводом и автоматическими именами лута вроде «Небрежности кровопролития алебарда гнева», будто с AliExpress заказал, а не с монстра выбил))
ardraeiss
На фоне прочих рогулайковских Blessed Broken Rusty Iron Heavy Mace of Slaying Giants "Mighty Punch"
(название временное)дяблы ещё умеренны!