Статья удалена
Я увлекаюсь разработкой игр. Мне нравится моё хобби, но последние несколько лет я постоянно брался за проекты и забрасывал их на этапе прототипа.
В середине этого года я решил, что должен сделать законченный проект и обязательно выпустить его в Steam. Взял за основу свою старую мобильную игру, которая изначально задумывалась для ПК. В результате от мобильной версии в итоге не осталось ничего кроме концепции и названия.
Об игре
No Parachute — это хардкорная аркада, в которой главный герой падает в пещеру и пытается не умереть, избегая препятствий. Хардкорность игры заключается в скорости, безумной камере и отрывающихся конечностях.
Одной из особенностей является то, что игра на самом деле двухмерная. Мир состоит из десятка 2D-плоскостей, отрисованных друг поверх друга, имитируя глубину пещеры.
Июль. Ранние прототипы на Unity
Планируемая дата завершения работы над игрой — сентябрь
Итак, для начала нам нужны пещера, препятствия и игрок. Я начал с прототипирования физики персонажа и обработки препятствий. Старался добиться ощущения нахождения в воздухе, но сохранить при этом тонкий контроль над персонажем. Начал делать наброски первых уровней.
Всё шло неплохо. В результате неторопливой работы в конце июля была готова демка с отрывающимися конечностями, экраном смерти, некоторыми звуками, эффектами камеры. Я начал постепенно добавлять уровни. Целью было сделать 4-5 левелов, отражающих основной геймплей.
Сделав третий уровень, я осознал, что движок не хочет справляться с моей игрой. До этого я не беспокоился насчёт фреймрейта, ведь делал простую демку, но в однажды решил запустить игру на ноутбуке с Intel HD Graphics. Оказалось, что рендер пары десятков плоскостей с прозрачной текстурой ронял FPS ниже 60.
После изучения проблемы, я узнал, что overdraw это очень плохо, а transparency overdraw ещё хуже. Если коротко, то overdraw — это когда множество объектов рендерятся друг поверх друга в одном кадре и снижают тем самым производительность. Загвоздка в том, что вся моя игра состоит из одного большого overdraw. В этот момент я сильно расстроился и почти забросил разработку.
Сентябрь. Знакомство с ECS, переход на LÖVE
Планируемая дата завершения работы над игрой —?
В сентябре вместо запланированной подготовки к релизу я решил отвлечься и взялся изучать шаблон проектирования Entity Component System, который на тот момент был уже давно на слуху благодаря его внедрению в Unity. Я осознал, что до этого не пытался придерживаться строгой архитектуры в своих играх, а ECS дает довольно чёткую структуру приложения, чего мне сильно не хватало.
Но эта статья не про ECS, поэтому не хочу углубляться. Смысл в том, что я изучал описанный выше паттерн, делая прототипы на LÖVE, фреймворке для 2D игр. И внезапно мне пришла в голову мысль перенести No Parachute в 2D, заодно попробовав ECS.
Меня настолько захватило использование нового подхода, что через две недели у меня уже был билд на новом движке, имеющий весь функционал из версии на Unity и два уровня. Производительность стала в среднем в 5 раз лучше, чем в старой версии. Теперь нужно было добавлять уровни.
Ноябрь. Возня с уровнями
Планируемая дата завершения работы над игрой — середина декабря
По изначальной задумке уровни генерировались процедурно из заранее созданных кусков. При каждой попытке игрок получал по сути разные уровни. После плейтестов я понял, что такие уровни получаются либо слишком лёгкими и скучными, либо их крайне сложно пройти и игрок винит в своих неудачах генератор. Было решено полностью отказаться от рандома и создавать уровни вручную. Оказалось, что это значительно тяжелее.
Через несколько недель я понял, что мне безумно тяжело заставить себя делать уровни. Я испытывал какое-то отвращение к этому процессу, которое пытался побороть, заставляя себя как минимум час в день делать хотя бы небольшой кусок уровня. Это не помогло. Я начал неделями не притрагиваться к игре.
Март. Подход good enough™
Планируемая дата завершения работы над игрой — конец марта
Я прочитал статьи о разработке Titan Chaser и вдохновился.
Точнее, понял, что ковырять месяцами один проект не есть хорошо, и пора что-то предпринимать. Первым делом я выбросил из списка задач всё, что можно было выбросить: систему повторов, бесконечный режим, NPC-противников, полную поддержка геймпада и кучу прочих мелочей. Далее я понял, что мой подход с огромным TODO и глобальным дедлайном явно не работает. Я решил попробовать работать недельными спринтами. Большой список задач превращается в бэклог, на каждую неделю выделяется отдельный список задач, которые должны быть выполнены за эту неделю. Всё. Никаких ограничений по времени, никакого обязательного часа бесполезных ковыряний. Можно ничего не делать в любой день недели, главное выполнить небольшой план. И это сработало.
Подготовка к релизу, раскрутка
Планируемая дата релиза — апрель
В середине месяца я начал заполнять страницу в Steam. Сделал трейлер и логотип.
Дальше я начал пытаться пиарить игру бесплатными методами. Сначала на Discord-сервере фреймворка LÖVE с довольной большим онлайном. Я регулярно публиковал там скриншоты с прогрессом разработки, поэтому люди с радостью приняли новость о появлении страницы в Steam, что в первый же день дало 20 добавлений в вишлист.
Также я опубликовал пост на Reddit в r/IndieDev. К моему удивлению пост набрал 1200 апвоутов, вышел в «горячие» и сейчас находится на втором месте по популярности за месяц. Но несмотря на популярность и ссылку, с Reddit было всего 65 переходов на страницу в магазине.
После этого я решил попробовать TikTok. Не особо стараясь, я записал геймплей на телефон прямо с монитора, играя одной рукой. Видео набрало 1000 просмотров в первый день. В TikTok нет прямых ссылок, поэтому сложно отследить количество переходов, но игру явно начали активнее искать в поиске. Я сделал еще несколько видео, которые в сумме набрали еще 13 тысяч просмотров. Правда, помимо поисков в Steam, ожила и старая версия игры в Google Play, получив 200 новых установок.
На момент написания этой статьи страница в магазине имеет 1418 посещений и 112 добавлений в вишлист.
Пару дней назад я закончил работу над финальным билдом игры и отправил его на проверку в Steam. Игра будет стоит $5 или 133 руб. и выйдет в начале апреля.