Original size 1140x1600

DeadLands | Код и UX

PROTECT STATUS: not protected

Программирование UX и программирование геймплея для мрачного шутера от первого лица с элементами выживания.

big
Original size 1799x753

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

big
Original size 3440x1440

БЛИЖНИЙ БОЙ

big
Original size 3100x1295

Урон по врагам во время ближнего боя происходит с помощью бросания луча, определяющего объект, с которым произошло столкновение при нажатии ЛКМ.

Original size 1799x753

Для реализации притягивания к поражаемой цели во время атаки, создан алгоритм линейной интерполяции между точками А и B.

Original size 3440x1440

КВЕСТЫ И ИСПЫТАНИЯ

Original size 1799x753

Разрушение статуй — одно из испытаний. Оно реализовано с помощью встроенного в UE5 инструмента — Fracture Mode, позволяющего разделить объект на множество мелких частей. Во избежание проблем с FPS, все осколки удаляются через 5 секунд.

Original size 3440x1440

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

Original size 3440x1440

МУВМЕНТ

Original size 1799x753

Мувмент персонажа представляет из себя комплексную систему функций, плавно сменяющихся с помощью ноды Switch Movement State. Для усиления ощущения бега, ходьбы и скольжения используются камерашейки.

БОЕВЫЕ СИСТЕМЫ

Original size 1799x753

Чтобы создать бесшовную боевую систему, нажатие игроком кнопки мыши делится на 3 состояния (типа функций):

— нажатие
— удержание
— отпускание

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

Original size 3440x1441

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

ВРАГИ

Original size 3440x1440

Для спавна врагов созданы несколько Blueprint классов. BP_WaveControl определяет общее состояние волны: сколько врагов появилось, было уничтожено, какой лимит. BP_Spawn отвечает за корректность их появления.

Original size 1701x712

Логика поведения врагов создана с использованием классического фреймворка Behaviour Tree, позволяющего последовательно переключаться между их состоянием.

Original size 3440x1440

Например, с помощью ноды Move To оборотень передвигается, однако раз в 4 секунды срабатывает Cooldown, и он швыряет в мага булыжник.

Original size 3437x1377

Передвижение всех юнитов создано с помощью системы NavMesh. Во избежание их застревания используется собственная функция jumpandvelocity или удаление, если разница векторов скорости в течение 12 секунд равна 0.

0

ПЕРКИ И УЛУЧШЕНИЯ

Original size 1799x753

Для буста персонажа во время покупки перков реализована простая система: нодой Switch On Int определяется, какую переменную изменить в зависимости от типа покупаемого перка.

Original size 3440x1440

БОСС

Original size 3440x1440

Чтобы не создавать лишний уровень, который займет 200 МБ в память компьютера, арена с боссом находится в отдельном DataLayer, а сторонний функционал при перемещении к нему останавливается.

Original size 1799x753

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

Игровой трейлер:

Loading...
DeadLands | Код и UX
Project created at 26.06.2026
We use cookies to improve the operation of the website and to enhance its usability. More detailed information on the use of cookies can be fo...
Show more