Как мы за 48 часов на хакатоне игру делали
И почему мы будем участвовать в новых хакатонах снова
В середине апреля мы в SATORI Ent. впервые решили выйти из своей зоны комфорта. За два года существования студии мы почти полностью работали над одним большим проектом BERENICE: videogame, поэтому команда у нас была маленькая.
На идею поучаствовать в хакатоне согласились только я — разработчик — и один из композиторов. Без бюджета. Без грандиозных планов. Только ради драйва и ради того, чтобы показать, что SATORI живет.
Честно говоря, поводом послужило ещё и то, что в чате и в комментариях в Telegram канале царила полная тишина. Иногда мне кажется, что подписчики SATORI вообще не интересуются играми, а всё, что делается, — это будто бы только для себя и для маленькой команды, которую я каждый раз собираю под новый проект. Хотелось наконец-то сделать что-то живое, что-то, что сдвинет этот лёд.
О чем пойдет речь
- Подготовка и создание плана
- Брейншторм и концепция
- Эскизный документ: набросали скелет игры
- Разработка MVP
- Бета-тест черного экрана
- Отправка на джем
- После джема
- Итог
Подготовка: создание плана
Перед стартом я как обычно организовал все рабочее пространство:
- Таблицы задач в Google Docs
- Карты идей в Miro
- Чёткое планирование: брейншторм → концепция → эскизный документ → MVP → тестирование → правки.
На бумаге всё выглядело вполне достаточно, чтобы снизить мой стресс во время разработки. Но последний день решил, что спокойной разработки не будет... Об этом далее.
Брейншторм и концепция
По началу, мы даже не смотрели на предложенные темы и не предлагали. В итоге, организаторы анонсировали две темы: "Мир без времени" и "Нулевые характеристики".
Мы взялись за брейншторм. На Miro появлялись всё новые идеи: персонаж без памяти, временные окна, механика выбора. И тогда родилась концепция:
Игрок — это персонаж без собственной личности. Чтобы двигаться, прыгать, выживать — он должен поглощать других, крадя их способности. Но это всегда имеет цену.
Из референсов было только один концепт-арт с Pinterest - главной героини.
Эскизный документ: набросали скелет игры
На втором этапе мы написали первый эскизный дизайн-документ. В нём:
- Идея "временных окон", где можно двигаться только в определённые моменты.
- Поглощение NPC с моральной дилеммой: стать кем-то или исчезнуть, сохраняя мир.
- Атмосфера застывшего времени, пульсирующего дыхания мира.
В финале игрок должен был выбрать: поглотить последнюю сущность и стать реальным или исчезнуть навсегда, сохраняя остатки мира.
У игры, как и у документа - названия не было. Но только в последние минуты дедлайна, оценив все написанное я написал первое попавшееся в голову слово - "Паразит"
Разработка MVP: баги, код и эмбиент
Я взял движок — Godot 4, потому что он простой и легко компилирует под HTML5 - буквально за пару минут. Сразу занялся основной механикой движения, система "временных окон", поглощения способностей и этими способностями.
2Д художника не было, поэтому я взял спрайты из открытых источников (благо, правила джема это позволяли). Думал перерисовать в последний день, но, к сожалению... Узнаете далее.
Композитор за это время сделал:
- Главную тему в жанре эмбиент-минимализма
- Постоянный атмосферный эмбиент для мира
- Спецэффекты для поглощений и временных окон
Один из треков, написанных композитором
Техническое ТЗ для композитора звучало как музыка безысходности:
- эмбиент с glitch-шумами
- тревожные вдохи во время поглощений
- тихие обрывки мелодий
- дыхание мира
В целом, мы как будто и успевали все. Но это только казалось...
Бета-тест черного экрана
К утру второго дня я начал финальную сборку. Планировал выпустить только для подписчиков бета версию на sat-ent.com и собрать фидбек, чтобы на джеме вышло качественно. Всё шло по плану, пока... на сайте появился чёрный экран.
Godot4 сломался: autoload-синглтоны не подхватывались в HTML5-билде. Логи молчали. Сайт показывал пустоту.
Ситуация была безнадёжной. На исправление оставался один час. И знаете, что самое страшное? Это уже случалось в SATORI раньше.
В 2021 году я готовил к релизу первую игру бренда — "No Remorse". Тогда я тоже в последний момент столкнулся с багом Unreal Engine 4.26, который ломал сборку. Тогда исправление заняло почти год.
Сейчас — у меня был один час.
Что я сделал? Пересобрал весь проект с нуля.
Новое окно. Новый проект. Новый билд. Вставлял всё вручную и тестировал.
На последнем часу до дедлайна хакатона компилятор соизволил упаковать все правильно и просмотреть кэш движка. Игра была отправлена в submission на itch, но артдизайна и нормальной полировки, к сожалению, я так и не успел сделать.
Отправка на джем уже как победа
48 часов — звучит весело, пока не наступает последние пару часов. Особенно когда половина времени уходит только на механику, которую ещё надо отладить, объяснить игроку во время игры и хотя бы как-то "упаковать" в презентабельный вид.
К концу второго дня стало очевидно: кое-что я физически не успел. В игре остались спрайты-заглушки вместо артдизайна. Сюжетные квесты и диалоги хоть и были написаны, но финальную интеграцию я уже не потянул. Анимированные катсцены? Их черновики тихо лежали в папках, но в самой игре до релиза так и не попали.
Зато: механика работала. Временные окна мерцали, "поглощение" действительно давало способности, физика перетаскиваемых предметов вела себя как надо. Саундтрек и звуки — отдельная гордость: композитор реально вытащил всю атмосферу на себе.
Игроки, правда, не сразу понимали, как вообще нужно играть. В комментариях под игрой я несколько раз объяснял механику и давал подсказки. Но знаете что? Всё равно было приятно. Хоть какой-то живой фидбек, хоть какие-то вопросы, обсуждения.
И тут встаёт странная и немного печальная вещь: В официальном телеграм-канале и в чате на игру почти никто не отреагировал. Как будто часть аудитории подписана "для галочки", а сами проекты их не цепляют. Иногда кажется, что мы работаем в пустоту — и это, наверное, самая тяжёлая часть всей истории начала SATORI. Но это точно не повод останавливаться.
Позже, на стриме жюри, нашу игру включили в третьей части обзора проектов. Организаторы оценили идею: задумка им действительно понравилась, мир и механика показались интересными. Но в отзывах прозвучало честно: "игра сырая, баги мешают, нужно много дорабатывать, много чего непонятно".
У нас в чате выпустили хайлайт с этого стрима — посмотреть его можно по ссылке.
Я считаю, что все равно можно гордиться первым хакатоном. Потому что даже с багами, даже в спешке — новый проект "Паразит" вышел и продолжает развиваться до сих пор.
После джема
После завершения Джема я сразу решил продолжить работу над "Паразитом" и открыть его для всех желающих. Теперь открытую бету можно протестировать прямо на сайте — через браузер на странице Gameshop. Никаких установок, никаких лишних движений. Просто заходите и играйте.
Наконец-то настроено всё для удобного релиза запланированных мини-игр и визуальных новелл на собственной платформе. И это только первая ласточка.
Первый серьёзный патч для "Паразита" уже вышел. Что нового?
- Исправили баг, из-за которого при рывке можно было улететь за край карты.
- Доработали инвентарь: теперь он обновляется динамично, без перезагрузки.
- Добавили полноценный функционал способностей: все поглощённые умения сохраняются в отдельном меню и могут быть восстановлены через новый предмет "Эхо".
- Расширили механику замороженного времени: теперь способности теней можно увидеть заранее — это откроет секретные проходы на поздних этапах.
- Ввели "окно смерти" и систему чекпоинтов с привязкой к аккаунту (если вы авторизованы на сайте).
- Переделали спрайты главного героя и теней — теперь визуально всё лучше соответствует атмосфере мира.
- Оптимизировали таймеры временных окон: в разных зонах теперь разные ритмы, что делает игровой процесс более "пульсирующим" и музыкальным.
Геймплей стал более плавным и интуитивным: теперь способности можно использовать свободно, а не ограниченно в пределах одного окна.
Ниже фотографии с катсцен, которыми мы сейчас дополняем игру.
Если вам интересен этот проект, если хочется увидеть, как "Паразит" эволюционирует прямо на ваших глазах — присоединяйтесь к нашему комьюнити и помогайте нам делать эту вселенную ещё глубже.
Итог
В целом, нам понравилось в первый раз участвовать в джеме, чтобы протестировать свои способности. Мы вышли с новым опытом, с самим композитором намного больше сработались. Кроме того, мы вышли с новый IP, который во всю развивается на нашем сайте.
Будем участвовать еще. Спасибо за внимание.