Как я в одиночку сделал игру за два месяца

Полезное для здоровья упражнение, которое можно повторять неограниченное количество раз.

Как выснилось, никаких особых дарований не нужно. Достаточно скачать движок Unreal Engine 4 и вбить в закладки волшебное слово Mixamo. Надо признать, некоторый бэкграунд у меня все же был. Свой путь в IT я начинал с самодельного компьютера "Радио 86 РК" и не знал ничего, кроме ассемблера. В те времена неоспоримым хитом была "Змейка", нарисованная ASCII символами в алфавитно-цифровом режиме. Вариант для "Радио 86 РК" назывался "Питон". Понятия "игровой движок" не существовало вовсе. С тех пор, как стандартом де факто стала IBM PC, я по уши погряз в Delphi, но занимался исключительно базами данных. Тем не менее, существовала такая библиотека "Delphi-X", позволявшая оперировать такими понятиями как "спрайт" и "коллизия". Как то раз для разминки я сделал римейк "Питона" под Windows на Delphi, и на этом весь прежний опыт игростроения закончился.

Короче, всю жизнь прожил программистом, но программированием игр почти не занимался. Сейчас жалею, что не узнал об Unreal Engine с самого начала. Объекты, наследование, свойства и события - это все мое родное и любимое. Симуляция физики и базовые элементы ИИ - прямо из коробки. Плюс море доступного контента, сочетающего в себе два взаимоисключающих свойства: бесплатность и высокое качество. Пройти мимо я не мог. Надо было обязательно что-то сделать.

Хотелось сделать нечто, обладающее всеми свойствами конечного продукта, и вовсе не хотелось, чтоб за версту разило махровой индюшатиной. Цель вполне достижимая, если найти простую идею, под которую существует уже готовый набор материала. Концепт мне подкинул Fallout 76, там есть такая пасхалка: летит робоглаз и играет мелодию, а следом бежит стая крыс. Я сразу вспомнил про "Питона" и понял, что делать. Алгоритм берем от старой доброй "Змейки", но вместо головы движется Player Character, играющий на дудочке, а тело змеи - это вереница мышей, собираемых с локации.

В старые времена был такой мультик про мальчика Нильса, который так же собирал за собой мышей, и в Миксамо быстро нашелся подходящий аналог: персонаж AJ. Мыши так же были в наличии, а анимации легко переносились с других мешей. Одна беда - не было такой походки, когда персонаж идет и одновременно играет на дудочке. А среди бесплатных моделей и дудочки приличной не нашлось. Зато нашлась труба, а это даже красивее. Пришлось призвать на помощь Майку с ее инструментом "Edit Region Key". Взял подходящую походку и повернул правую руку в нужное положение.

Получилась анимированная меш главного героя.
Получилась анимированная меш главного героя.

Для создания окружающей обстановки вполне хватило элементов, входящих в Mobile Starter Content. Из готовых ассетов использовались только куст и камень, все остальное сделано комбинацией геометрических примитивов: куб, сфера, цилиндр, конус. Объединял в группы и копипастил. Сделал даже некое подобие реального "Дома Крысолова", главной достопримечательности города Гамельн.

Если что, реальный "Дом Крысолова" слева.
Если что, реальный "Дом Крысолова" слева.

Может я немного погрешил от исторической истины, но в общий сеттинг вписалось нормально. Опять же, сделано быстро и бесплатно.

Сколько всего получилось полигонов - даже не интересовался, но за основу взят именно Mobile Starter Content, а проект предназначался под десктоп.

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

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

Во первых, мышам было разрешено свободно гулять по полю. В результате поимка превратилась в своеобразный челендж, привносящий элемент азарта. Кроме того, главному герою добавлен инвентарь на два итема, подбираемых с локации, которые можно носить с собой и активировать в нужный момент. Итем в виде конфетки, "Приманка" заставляет мышей бежать в сторону игрока. Разумеется, это явная халява, но действует не долго и позволяет избавиться от рутины как в начале, так и в конце игры. В начале достуен также итем "Сапоги-скороходы", увеличивающий скорость героя в два раза. Это делает игру веселее, но заметно возрастают риски. По этой причине к концу игры вместо сапог появляется щит. Когда он активен, можно идти напролом, не только чтобы поймать очередную мышь, но и забрать конфету, которая может появиться в очень неудобном месте.

Когда длина хвоста достигает 300, открываются ворота и главный герой может выйти наружу. Игроку предоставлен выбор: или утопить всех в реке, или отпустить гулять в лесу.

Игруха теперь лежит на itch.com, демонстрация геймплея записана на видео:

Там целых 5 минут, короче никак не получилось.
65
35 комментариев