Разрабатываю action-платформер. ч.2 Мы не сидим сложа руки.

Продолжение увлекательной истории начинающего разработчика.

Краткий отчет за почти неделю проделанной работы.
Как и планировал сделал рефакторинг основного кода игрока, код был разнесен на физику и обработку состояний.
С платформинговыми механиками игрока вопрос остается не очень простым, были прикручены физические параметры которые помогают делать его движение более интересным, но их довольно большое количество и приходится их постоянно подстраивать чтобы добиться оптимального значения, пока что я его не нашел, но занимаюсь этим.
Для этого я сделал отладчик физики, благодаря которому могу проверять значения в игре, создание отладчика вообще надо было делать с самого запуска разработки.

Интерфейс отладчика, выведена лишь часть параметров настройки физики игрока.
Интерфейс отладчика, выведена лишь часть параметров настройки физики игрока.

В итоге сейчас можно настраивать различные физические параметры так что игрок будет ощущаться не только быстрым/медленным, но и тяжелым/легким, возможна настройка скорости выхода из прыжка, зависание в верхней точке, скорость входа в приземление, разворот в воздухе после прыжка и ускорения, инерция при старте и остано��ке.
Все это позволяет делать супермобильное и быстрое поведение, но можно настроить так что игрок будет ощущаться тяжелым, но все же мобильным. Я не планировал делать классы в игре, но можно настроить физику для быстрого асассина например или для рыцаря в броне.

Пример переработанной физики игрока, базовые значения.
Пример два, пониженная гравитация.

Для сравнения, старая физика.

До топовых платформеров еще далеко, но как по мне прогресс есть.

Улучшения, нововведения.

Долгое время я боролся с тряской камеры при движении и сейчас достаточно близко ктому чтобы закрыть этот вопрос, в процессе изучения темы я наткунулся на видео разработчиков Unity где они проводили мастер-класс по тряске камеры для улучшения восприятия игры так сказать.

Мастер-класс Юнити.

Мне понравилось и я сделал свой модуль тряски камеры, многие параметры были прямо скопированы из видео, вряд ли моя камера такая же крутая как у Юнити, но жить стало лучше, жить стало веселей.

Тряска нереальная, осторожно в конце немного громко.

Мелочь, а приятно.

Боевой механикой времени в итоге не было заниматься, но одно улучшение я ввел, это так называемый перегрев(усталось).
В процессе нанесения урона игрок начинает уставать и время между ударами увеличивается, параллельно он накапливает заряженный удар, алгоритм накопления усталости и заряженного удара отличаются, при накоплении заряженного удара игрок наносит его автоматически и сбрасывает усталость возвращая скорость ударов к изначальным значениям. Так же игрок может заряжать удар просто удерживая атаку намного быстрее чем просто спамя их.
В теории это будет немного разный геймлей в ближнем и дальнем бою.

Механика перегрева отката и сброса.

Потраченное время впустую(или нет).

Пару недель назад, я для теста работы с тайлсетами и глубиной отрисовки, сделал крошечный проект с видом сверху, заготовка ARPG по типу старых Зельд, мне больше нравились игры серии Tales of(Destiny, Eternia) мир с видом сверху, бои на арене. И у меня появилась идея, сделать форк платформенной системы и слить с этой заготовкой.

Результат.

Получился в итоге проект с двумя полностью изолированными режимами и контроллером который будет управлять переходами между режимами, я могу переносить все наработки из платформера не трогая часть с top-down. Надо будет выделять денек раз в пару недель чтобы переносить обновления в форк и проверять совместимость.

Там ееще есть по мелочи всякого, прототип UI системы, библиотека пресетов анимаций и настроек тряски камеры, взаимодействие со временем игры (слоумо, пауза).

Дальше.

Следующую неделю буду допиливать физику, камеру(зум, плавные переходы между режимами), коллизии и столкновения, систему состояний надо сделать более продвинутую, сейчас совсем базовая и надо доделать отладочный инструмент, вывести все параметры, настроить возможность переключать их в идеале создавать пресеты и выгружать во внешний файл, но это пока что для меня сложновато.
Вот и всё.

Разрабатываю action-платформер. ч.2 Мы не сидим сложа руки.
6
1
1 комментарий