Blue Balls (game developer's fantasy). Vol. II

Введение


Это руководство, иллюстрирующее подход к разработке видеоигр на основе последовательной и предварительной разработки внутриигровой механики.


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


Я попытался проиллюстрировать на конкретном примере, как можно смутную идею превратить в адекватный концепт игры.


Первая часть тут https://pikabu.ru/story/blue_balls_game_developers_fantasy_v....


Мне там намекнули, что я перегрузил бессмысленный текст не менее бессмысленными комментариями. И даже предложили не продолжать. Но поскольку на карму мне в общем-то пофиг (не жили богато...), и я, собственно, как тот парень

Blue Balls (game developer's fantasy). Vol. II Игровая механика, Gamedev, Руководство, Длиннотекст, Длиннопост

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


Continued


...Каким же мы сделаем сбор шаров? «Автоматическим» или «ручным»? Если мы придерживаемся классики – сбор должен быть автоматическим. Заодно и не надо усложнять управление для игрока. Решено! Шары будут автоматически собираться в инвентарь игрока, как только его аватар…


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


Поскольку мы за более-менее свободно действующего игрока, остановимся на варианте «рядом». Что ж, вот теперь у нас действительно готов приемлемый костяк идеи для игры:


Игрок свободно перемещает свой аватар по двухмерному игровому полю, на котором разбросаны синие шары, которые сами «прыгают» к нему в «корзину», когда он оказывается поблизости.


Вам всё еще игра кажется безумно тупой? Пора задуматься о возможных вызовах для игрока.


По сути, с того момента, как мы конкретизировали идею, игра начинает диктовать свои условия, поскольку всё, что может игрок – лишь перемещаться по полю. Здесь прямо-таки напрашиваются следующие варианты:


А) Ввести параметр скорости, добавляем ограничение по времени, в пределах которого игрок находится на уровне. Чем больше шаров игрок соберет за отведенное ему время – тем больше получит очков.


Б) Организовать препятствия, которые игроку нужно будет преодолевать, чтобы приблизиться к некоторым шарам.


В) Сочетание обоих вариантов – хардкорный.


Вариант А сам по себе кажется довольно-таки простым. Поэтому думаем, какие препятствия мы всё-таки можем добавить.


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


Итак, пора вводить в игру красные шары! Вести себя они будут точно также, как и синие – притягиваться к игроку, попав в сферу его гравитации, но… они должны всё портить. И игрок должен это ясным образом обнаружить, ведь игровая задача «собрать все синие шары» не противоречит сбору шаров обоих цветов. Тут открывается простор для фантазии. В голову приходит сразу два очевидных варианта: либо красные шары, оказываясь в «корзине» будут «портить» синие, превращая их в красные, а игрок будет получать очки только за синие шары; либо красные шары, попав в «корзину», будут взрываться, уничтожая синие шары или повреждая… хм… здоровье игрока.


Мне нравится последний вариант. Правда, он потребует введения в механику игры элемента выживания, но это придаст должную остроту игре. Прелесть этого варианта в том, что нам не потребуется инструктировать игрока словами; достаточно вывести на экран полоску «жизни», и если он разок захватит красный шар – уменьшить её на какой-то процент.


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


Ну что ж, геймплей игры Blue Balls фактически готов. Напомню, что в начале была лишь идея "игрок собирает синие шары" - без конкретики, позволяющей приступить к написанию собственно кода.


Игрок свободно перемещает свой аватар по двухмерному игровому полю, на котором разбросаны вперемешку синие и красные шары, которые сами «прыгают» к нему в «корзину», когда он оказывается поблизости. Синие шары позволяют набирать очки, красные шары – взрываются, повреждая здоровье игрока. С повышением уровней сила взрыва красных шаров увеличивается. Кроме того, периодически встречаются уровни с игрой «на время», когда игрок должен собрать максимум синих шаров и сохранить максимум здоровья за отведенный промежуток времени.


Правда, остались второстепенные, но немаловажные вопросы. Разрешить ли игроку «лечиться» в процессе игры, или «здоровье» автоматически будет восстанавливаться в начале каждого нового уровня? Если лечиться – очевидно, нам придется добавить либо шары третьего цвета, либо дополнительное свойство синим шарам.


Будем ли мы добавлять другие шары с какими-то новыми свойствами, отличными от синих и красных? Если да – то какие это свойства? Как будут располагаться шары на игровом поле: случайным или заданным образом? Будет ли меняться величина игрового поля в разных уровнях? Будет ли это поле полностью вмещаться в экран или игрок будет видеть только часть поля? Если последнее, то поле обозрения будет плавно перемещаться вслед за аватаром или «прыжками», когда игрок приблизится к краю экрана?


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


А теперь включаем фантазию на полную катушку иии… Не пора ли перейти к сеттингу?


Уверен, что далеко не каждый из читателей успел подумать, что, в общем-то, шары вовсе не обязательно должны быть шарами. С помощью шаров мы всего лишь описали механику игры, но вместо них может быть всё, что угодно. Ну ладно, почти всё.


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


Или грибник-маг, который гуляет по лесу с волшебной дудочкой, под задорную мелодию которой все окрестные грибы сами залезают в корзину, но вот беда – среди них оказываются и ядовитые, которые своими миазмами душат грибника.


Или сапёр с магнитом ходит по минному полю, собирая старые сработавшие мины, среди которых попадаются и ещё неразорванные.


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


End