Давай по новой, всё х...орошо. HackeRPG DevLog #2
Изначально думал продолжать ретроспективно описывать проделанную работу (в первом девлоге я описывал билд 0.0.1, когда 0.0.2 уже был готов), но очень сложно вспомнить всё, что тогда было в голове, поэтому просто расскажу все, что произошло с момента написания прошлой статьи, не привязываясь к версиям.
Новые фичи
Когда вот так вот сел описывать всё, что я сделал за последние почти 2 недели пришло понимание, насколько много всего было добавлено:
Автокомлит
Прокачка статов с уровнем
3 вида врагов
Более динамичный и приятный глазу (надеюсь) фон
Улучшенная IDE
Маркетинг (c игрой не связано, но занимает не мало времени)
Тонна фиксов и архитектурных правок + Звуки и визуальные эффекты (здесь расписывать не буду, поэтому объединил всё месте)
Автокомплит
С ним решил особо не извращаться: при нажатии на там предлагается самый близкий к введённому тексту вариант команды. Если команда без аргументов, то каретка ставиться в конец строки, иначе - в начало скобок.
Столкнулся с проблемой не лучшего UX: на букву "P" начинаются две команды (pause() и ping()). Первая по сути не имеет отношения к игровому процессу, но алфавитно является более приоритетной. Пока не пофиксил этот момент, но планирую вручную задать этой команде минимальный приоритет, чтобы не выбивать игрока из потока случайными паузами.
Прокачка статов с уровнем
Теперь не каждый лвл-ап приходится кодить, а только каждый второй(хотя не обязательно, если нет идей, то можно взять статы). Каждый первый же лвл-ап будет возможность взять один из бафов статов.
Получается такое разделение: можно качать железо(hardware) или программную составляющую (software). Название железа пытался как-то логически связывать со статами, но особо не заморачивался, т.к. ещё 10 раз буду балансить это дело.
Изначально мне почему-то показалось прекрасной идеей заставлять игроков писать upgrade() для прокачки статов, но плейтесты показали, что игроки зачастую не замечали лвл апы или же слишком увлечены были, чтобы писать еще одну команду, поэтому я решил насильно заставлять игроков прокачиваться по лвл-апу.
Новые враги
Продолжая тематику айтишных врагов мне сразу в голову пришли два экземпляра: уточка (метод утенка) и троянский конь. С поведением обоих идеи пришли сразу же: при убийстве коня появляются черви, а утенок просто взрывается (мотивация использовать дальний бой).
В бэклоге у меня дополнительно лежит механика хакинга и основное её применение будет - сбивать щиты, значит кто-то эти щиты должен создавать - но кто? Это точно должна быть башня, которая стреляет по врагам и делает их сильнее (в будущем будет так же ускорять и т.д.). И как же должна выглядеть злая башня? Конечно же как 5G вышка!
Чтобы проще было рисовать нашёл несколько референсов:
Получилась вот такая чудесная башня зла:
С таким разнообразием игра играется уже куда интереснее.
Фон
Здесь я очень долго экспериментировал. В версии 0.0.2 на фоне довольно вырвиглазный синий фон, но по итогу я набросал небольшой шейдер с шумом перлина на фон, полностью убрал синие тона из палитры и получилось вот так:
до:
после:
Улучшенная IDE
IDE в этой игре - это моя самая большая гордость (поэтому нужно писать про неё в середине статьи ☠️). За это время в ней появилась возможность скроллить (ограничение в 5 строк кода максимум мне показалось крайне тупым, хотя я думаю привязать этот параметр к макропрокачке), а так же возможность использовать условный оператор if. Теперь это уже начинает походить на программирование.
Изначально я довольно костыльно и на скорую реализовал парсинг функций в стиле:
if input.starts_with("function ") {
input = input.replace("function ");
...
} else {
return CompilationResult::Error(1);}
С if я хотел сделать это несколько более грациозно, довольно долго поковырялся с регулярками в поисках идеального решения, но в итоге на чистых регулярных выражениях парсер сделать не получилось, однако большую часть работы они выполнили: теперь и if и function парсятся одинаковым образом, а главное - довольно малой кровью можно добавлять другие аналогичные структуры (например циклы).
Маркетинг
Самое страшное для инди геймдевера слово. Уверен, что я это делаю далеко не идеально, но и не худшим образом: наштамповал соц. сетей (реддит, gamejolt, itch.io, tiktok, youtube и пикабу, разумеется) и делаю контент подходящих форматов (короткие видео для tt, gamejolt и ytshorts; текстовые девлоги для reddit, itch и пикабу).
Радует, что к проекту начинает точечно появляться интерес - это очень вдохновляет, учитывая нереально узкую ЦА.
Я вам запрещаю играть
Чуть не забыл упомянуть, что решил выпилить демо билды со всех соц. сеток, дабы не портить впечатление слишком сырым продуктом. Плейтесты показали, что недостаток некоторых кор механик очень сильно влияет на ощущения от геймплея. Поэтому этим самым геймплеем буду делиться дозировано в контенте.
Ближайшие планы:
Добавить переменные и демоны.
Сделать наконец гугл таблицу статов и начать балансить цифры.
Добавить механику хакинга.
Сундуки + возможность менять оружие.
Спасибо за уделённое время.





Лига Разработчиков Видеоигр
8.9K постов23.1K подписчиков
Правила сообщества
ОБЩИЕ ПРАВИЛА:
- Уважайте чужой труд и используйте конструктивную критику
- Не занимайтесь саморекламой, пишите качественные и интересные посты
- Никакой политики
СТОИТ ПУБЛИКОВАТЬ:
- Посты о Вашей игре с историей её разработки и описанием полученного опыта
- Обучающие материалы, туториалы
- Интервью с опытными разработчиками
- Анонсы бесплатных мероприятий для разработчиков и истории их посещения;
- Ваши работы, если Вы художник/композитор и хотите поделиться ими на безвозмездной основе
НЕ СТОИТ ПУБЛИКОВАТЬ:
- Посты, содержащие только вопрос или просьбу помочь
- Посты, содержащие только идею игры
- Посты, единственная цель которых - набор команды для разработки игры
- Посты, не относящиеся к тематике сообщества
Подобные посты по решению администрации могут быть перемещены из сообщества в общую ленту.
ЗАПРЕЩЕНО:
- Публиковать бессодержательные посты с рекламой Вашего проекта (см. следующий пункт), а также все прочие посты, содержащие рекламу/рекламные интеграции
- Выдавать чужой труд за свой
Подобные посты будут перемещены из сообщества в общую ленту, а их авторы по решению администрации могут быть внесены в игнор-лист сообщества.
О РАЗМЕЩЕНИИ ССЫЛОК:
Ссылка на сторонний ресурс, связанный с игрой, допускается только при следующих условиях:
- Пост должен быть содержательным и интересным для пользователей, нести пользу для сообщества
- Ссылка должна размещаться непосредственно в начале или конце поста и только один раз
- Cсылка размещается в формате: "Страница игры в Steam: URL"