Сделал игру за 5 часов
Откладывая на потом и кое-как втиснувшись в дедлайн таки принял участие в конкурсе, но успел не всё. Подробнее в этом небольшом пост-рассказе (писал кстати дольше, чем игру делал).
Участвовал в конкурсе КОД одного сайта. КОД расшифровывается как Конкурс Одного Дня и хотя по факту он длится больше 24 часов, но в этот раз вышло, что я участвовал даже меньше этого самого Одного Дня.
Тема — Рикошет. Не гений мысли, поэтому пришла в голову лишь самая банальная идея: игрок кидает снаряд, который отталкивается от стен и включает выключатель.
В этом вся идея и я сел за бумажку описывать мысли. Результатом стала вот такая картинка с планом:
Кривой подчерк разобрать сложно — сделал более читаемую цифровую версию, которая скорее дополняла, чем полностью заменяла данный рисунок.
Несмотря на то, что документ получился небольшой — вставить такой набор строк проблематично. Без забегания вперёд этот список тоже не описать, поэтому просто опустим его и буду ссылаться только в пояснительные моменты.
В распоряжении был один день, хоть конкурс и длился целых три. Даже больше: у меня было меньше 8 часов на проект, но это создавало свой вызов. При этом скорее вызов планирования.
Инструментарий
Без лишних размышлений беру GameMaker и Aseprite. Заранее мне понятно, что игра будет 2D, небольших размеров в пикселях и скорее всего на одном экране с делением на уровни. Этих инструментов хватит для таких задач.
Вдохновение
С недавних пор стараюсь на конкурсы делать упор на геймплей, но получается как получается. Раньше же я придумывал всё скорее от каких-то сюжетных вещей или персонажей. В данном участии тематика слилась с воспоминаниями — Bionicle. Я старый фанат этой серии и особо мне нравятся начальные поколения и вообще Lego Technic тех времён, который кажется даже угловатый и причудливый.
Для задумки подошла вещь из воспоминаний, что были наборы или промо-материалы с Маторанами\Тохунга (небольшие жители, не главные герои), которые кидали диски. Ну это просто идеально, учитывая, что ещё и стихии в моём концепте предполагались.
Раш или гонка со временем
Не сказать, что я таки трёсся и “быстрее! быстрее!”, но действительно всё было второпях. При этом необходимо было иметь в голове чёткий план действий и последовательность. Признаюсь, но я пару раз успел чуть не уйти в украшательства и прочие медитативные дела, но времени они отняли не так много.
Всё кодирование протекало достаточно хорошо: сказывался мой опыт с движком. Были конечно ошибки или “да почему не работает, правильно же”, но буквально всего два или три раза.
Проект создавался с нуля, но помимо опыта я обращался и к прошлым наработкам, например: взял и посмотрел как сделан отскок от стен в другом моём проекте (Взертос, буквально одна строчка), взял скрипт функции создания объектов (чтобы просто писать меньше символов), пара функций для ввода и одну важную функцию для столкновений в top-down.
Из старых проектов перекочевало два тайла: стен и пола. Вся остальная графика уникальная.
Уровни создавались в каком-то смысле “чтобы были” и вышли очень странными. Делал я их уже практически к завершению своего дедлайна (где-то за 2 часа до официального). Хоть я и проходил уровни, но получалось не совсем то, что я хотел.
Розовые блоки это блоки со стихией. Красная область с точками это такой “трюк”, чтобы назначить блокам стихию за один раз, а не каждому объекту блока отдельно (лень наше всё).
В объектах у меня один тип стихийного блока: один для задания стихии диску и ещё один разрушаемый блок. По идее было бы куда лучше сделать каждый тип блока отдельным объектом, но я предпочитаю один объект с настройками.
В GameMaker есть Variables (по сути настройка переменных вне блоков кода), которые определяет программист. Вот я и определил стихию и задал список из которого потом выбираю какой стихии данный блок. Правда полностью теряется WYSIWYG.
Игра близка к завершению, какие отхождения
Как я писал выше — список из документа не предоставлю, но пройдусь по моментам, которые имеют расхождение.
Совсем не успел сделать и добавить звуки. Скорее всего я бы не стал делать новые, а пошарился в своей библиотеке звуков. В планах были совсем уж минимальные, но необходимые (как мне кажется) звуки вроде отскока, кидания, топота, разбивания. Без звука игра выглядит ещё более безжизненной, чем она есть.
Полностью отказался от идей с ареной и следовательно врагами. Вернее сначала отказался от врагов вообще, а затем от комнаты с ареной. Хорошо, что я верно оценил свои силы, когда уже начал проект и даже не стал заводить placeholder-ы для врагов и их точек появления. Очевидно я бы просто не успел добавить хоть какой-то ИИ для них.
Финишная прямая и в последние минуты делаю вещи. Например, экран “нажмите старт” сделан наверно за 10-15 минут, включая рисунок и код.
Дизайн главного героя я по памяти подрезал из одного набора по тем самым Биониклам. В моей памяти он назывался Боксёр, но оказалось, что это Boxor 8556. В первую очередь конечно врезалась в память эта рыжая маска — она и перекочевала в дизайн.
Очевидно, что BIBONICLELE явно отсылает к BIONICLE, слишком на виду, но отметить стоит!
Итоги
Лично мне кажется, что за 5 часов результат хороший. Ещё немного посидеть, подшлифовать, изолентой связать и будет просто неплохая небольшая игра.
По итогу на весь проект ушло 5 часов и оставалось 1.5 - 2 часа до конца приёма работ на конкурс. Но у меня был свой дедлайн и я ровно в него успел, а то иначе и звуки бы добавил, возможно, музыку тоже.
В планах разве что минимальная доработка в виде добавления звуков и может музыки и* оставить этот проект на просторах itch.io.
* на самом деле это уже есть, осталось лишь ещё чуть напильником
И под конец пара скриншотов как выглядит игра:
Скачать можно две версии:
В 1.1 внесены изменения вроде добавления звуков с музыкой и некоторых других вещей.
Всем спасибо за внимание!