Ретрофабрикатор - финальный билд

Стрелялка с контрамоцией.

Мотивация

Я отталкивался от завязки NTTE - взаимодействия с собой будущим.

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

1. Отмотка времени назад

2. Изменение скорости времени (глобально или локально)

3. Воспроизведение записи, как правило, себя - это почему-то на джемах популярно, кстати.

4. Более сложные конструкции (как взаимодействие с собой будущим в NTTE), но, как правило, заскриптованные.

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

Реализация

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

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

В процессе работы эта идея пообтесалась собственно до концепции Ретрофабрикатора - "машины, работающей за отрицательное время".

С точки зрения геймплея, это можно сформулировать как "получение предметов в долг". На поле периодически появляются "призрачные" предметы (оружие и обувь; последняя даёт различные возможности перемещения), взятие которых обозначает намерение игрока в будущем начать процесс их производства. Соответственно, на месте взятого предмета остаётся он же, но двигающийся в обратном направлении, постепенно "развоплощаясь". Точнее, обратно-воплощаясь. Подобное издевательство над временем приводит к аномалиям возле этого предмета, конкретно спавну "временных зомби". Кроме того, обратно-воплощение требует ресурсов, которые, по странному совпадению, выбиваются из этих же зомби и автоматически летят к ближайшему обратно-воплощаемому предмету. Кстати, эти кусочки ресурсов на полпути меняют направление во времени, что выглядит как две его копии вылетающие из зомби и предмета и "аннигилирующие" друг с другом.

Используемые оружие и ботинки от использования и просто со временем портятся, и, наконец, пропадают. Оружие, кроме того, от износа стреляет всё слабее.

При первом полученном предмете, также создаётся сам Ретрофабрикатор, причем, разумеется в виде как готового предмета, так и обратно-воплощаемого. Для "победы" необходимо начать/закончить его производство, которое требует гораздо больше ресурсов, чем любой другой предмет.

Оружие, обувь и источники вдохновения

Лор и описание предметов есть в прошлой статье:

Референсами для меня были, разумеется, Стругацкие (идея контрамоции), Homestuck (самые разнообразные издевательства над временем и пространством; машина, изготовляющая предметы из странных ресурсов, выбиваемых из странных врагов; визуальный стиль), ToME4 (множество интересных механик, в том числе напрямую связанных со временем). Уже после того, как я сделал "пистолет с пулями из Довода", я узнал, что собственно есть такой фильм "Довод" про контрамотов:) Из Довода тоже черпал, но скорее общий настрой.

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

Забавно, что самое "iconic" оружие - тот самый контрамоционный пистолет, хотя и потребовал больше всего кода и наиболее необычно выглядит анимационно, по игромеханике эквивалентен обычному hitscan оружию, так как попадает точно в цель в момент нажатия на кнопку.

Инструменты

Для джемов я обычно использую Javascript, так что требование exe заставило меня выйти из зоны комфорта.

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

Для Haxe есть несколько игровых движков, некоторые даже 3d, и сделаны несколько довольно известных игр.

Я выбрал Heaps.io (на котором сделан, например, Dead Cells), и, в общем, не пожалел. Точно гораздо приятнее для меня, чем Defold/Lua. Хотя, опять же, именно для меня и именно для этой задачи - для чего-то ещё Defold, наверное, был бы лучше. Хотя у Heaps нет своего IDE, есть хорошие плагины к VSCode с полноценными хинтами и этим всем.

Хотя, есть у Haxe и проблемы. Язык всё-таки немного устаревший, и немного эклектичный. Что временами раздражает. К счастью, есть очень дружелюбный (хотя и не очень людный) канал на Discord.

Ну и насчёт графики - её я рисовал всю сам, строго на Paint. Правда не MS Paint, а на Paint.net. Для того, чтобы линии выглядели достаточно коряво, использовал линии Безье.

Ну и собственно дистрибутив:

Состав команды - я, без ансамбля.

66
2 комментария

За пейнтнет респект, так и не понял есть концовка или нет) После выходы из игры глаза конечно немного в шоке)))

1

Теоретически ендинг есть но до него немного долго гриндить. Надо закончить ретрофабрикацию ретрофабрикатора, а это занимает как 10 любых других предметов.