Девблог #2: PostJam версия — как я доделал игру и добавил самого страшного врага...
📝 И мы снова здесь...
Привет, представляю PostJam версию игры, и в этом посте расскажу, что исправил, что изменилось, что было самым сложным и почему финальный босс получился таким, каким и должен был быть.
🐛 Что было сломано и что починил
Начну с неприятного. На джеме я обнаружил критический баг в последний момент, но не успел его пофиксить — загружать обновление было нельзя! Очень обидно что нельзя было сменить обложку и скриншоты после загрузки игры, что я планировал сделать позже, так как все данное время хотелось потратить на саму игру, а уже после скриншоты и обложка.
Баг со спавном модификаторов
Проблема: после смерти врагов модификаторы просто не появлялись. Игрок убивал толпы врагов, а в награду получал... ничего. Геймплейный цикл был полностью сломан. Решение: проблема была в системе спавна — я просто не дописал ОДНУ строчку кода, выбирался рандомный мод, но не спавнился! Поправил логику, и теперь после каждого убитого врага с определённым шансом выпадает модификатор.
Переход на Delta Time
Проблема: пули, гранаты и частицы крови использовали встроенные переменные GameMaker speed и direction, которые зависят от FPS. На 60 FPS игра работала нормально, а на 30 — всё замедлялось в два раза. Решение: перевёл всю физику на собственные переменные h_speed и v_speed с умножением на DT. Теперь:
- Пули летят с одинаковой скоростью на любом железе
- Гранаты реалистично замедляются через
exp(-friction * DT) - Кровь анимируется покадрово с контролем через таймер, а не через
image_speed
Это было необходимо — без этого игра не могла считаться завершённой.
🎨 Базовый интерфейс
На джеме UI был... ну, его не было вообще. Теперь есть:
- HUD с полоской здоровья, энергии для рывков, счетчиком волн и таймером до следующей
- Отображение текущих модификаторов в пушке
- Динамический прицел, который расширяется в зависимости от разброса и количества пуль
- Подсказки при приближении к предметам
Мелочи, но без них игра воспринималась сырой.
🔊 Музыка
На первом релизе мой друг bierowner любезно предоставил мне музыку для игры, а я просто забыл добавить её в игру.
Но теперь я не просто добавил её в игру, а написал простейшую библиотеку музыкального плеера для Game Maker для всех будущих проектов!
🔫 Подбор пушки и модов с земли
Раньше пушки и моды подбирались автоматически через collision. Это было неудобно — ты бежишь мимо предмета, а он уже в инвентаре. Теперь реализовал систему интерактивных предметов:
- Предметы лежат на земле с анимацией покачивания
- При приближении появляется подсветка и подсказка
- Нажимаешь E — подбираешь ближайший предмет
- При подборе пушки старая автоматически выбрасывается (со всеми модами внутри!)
Это добавило тактической глубины — теперь нужно решать: подобрать новый дробовик или оставить прокачанный пистолет?
⚖️ Баланс пушек и волн
На джеме баланс был... скажем так, "авторским". То есть я ставил цифры на глаз и молился. Теперь подошёл к этому системно.
Система тиров пушек
Разделил пушки на 5 тиров редкости:
- Common (1-2 слота) — стартовое, слабенькое
- Uncommon (2-3 слота) — стандартное
- Rare (3-4 слота) — продвинутое
- Epic (4-5 слотов) — элитное
- Legendary (5-6 слотов) — ультимативное
- Увеличивают количество врагов
- Каждую волну — выбор награды (пушка или мод)
- Собрали билд с Multishot + Power + Beam? Босс будет стрелять вашими же мультишотным лазером с повышенным уроном.
- Играли осторожно с Projectile + Speed + Accuracy x 3? Босс будет методично простреливать вас насквозь.
- Пытаетесь собрать слабейшую пушку чтобы она была у босса? Но тогда как вы дойдете до босса в принципе?!
- Кружит вокруг игрока, периодически меняя направление
- Приближается и удаляется волнообразно
- Стрейфит, не давая просто стоять и стрелять
- Получает knockback, но быстро возвращается в бой
- Больше типов врагов (танк, стрелок, камикадзе)
- Расширенные модификаторы с интересными эффектами
- Улучшенную систему модификаторов с возможность переставлять их между пушками
- Систему достижений
- Больше визуального feedback (screen shake, particles)
Чем выше тир — тем больше слотов под модификаторы и выше базовые характеристики. Но даже легендарка без модов — это просто пушка. Настоящая мощь рождается в комбинациях!
Нарастающая сложность волн
Волны теперь:
🪞 Самое главное: босс, который копирует ВАС
Вот ради чего всё это делалось. Тема геймджема была «Враг — это ты», и я не мог оставить игру без её раскрытия.
Как это работает
На финальной волне появляется зеркальный босс. Но это не просто сильный враг с большим HP. Он берёт вашу текущую пушку со всеми ее модификаторами!
Что это значит на практике?
AI босса
Чтобы бой был интересным, а не "кто кого застрелит первым", сделал боссу orbital AI:
Это создаёт динамичный танец смерти, где побеждает тот, кто лучше освоил механики.
Философия боя
Самое крутое в этом боссе — рефлексия. Ты буквально сражаешься с результатами своих решений. Если билд имбалансный — будет очень сложно. Если сбалансированный — шансы равны. Если слабый — босс тоже слабый, но всё равно опасный. Это и есть раскрытие темы: враг — это не какой-то абстрактный монстр, а отражение тебя как игрока. Твоих выборов, твоего стиля, твоей стратегии.
🚀 Что дальше?
Игра теперь завершена в том виде, в котором я её задумывал для джема. Есть начало (пустая пушка), есть середина (сбор билда через волны), есть конец (бой с собой). Полный цикл. Возможно, в будущем добавлю:
Но это уже не обязательно — ядро игры готово и играбельно.
💭 В конце
Спасибо всем, кто играл в джем-версию и писал фидбек! В общей сложности на проект ушло 22 часа с учетом перерывов, именно столько был открыт проект в Game Maker. Ваши комментарии стали лучшей мотивацией доделать всё как надо. К сожалению не у всех бывает свободное время на все время геймджема, понимаю что выложил первую версию игры сырой, так как из-за различных семейных дел просто не успел. Рад за всех победителей и участников джема и за свой сертификат участника! А теперь если ещё не играли — сейчас самое время. Попробуйте собрать безумный билд, а потом сразитесь с самим собой 😈



Комментарии (0)
Войдите, чтобы написать комментарий
Войти