Как я делал свою первую Action RPG

Как я делал свою первую Action RPG Gamedev, Gamedev-tutorial, Action RPG, Открытый мир, Мобильные игры, Видео, Длиннопост

Приветствую читатель.
Всегда хотел сделать Action RPG с открытым миром. Обычно именно такие игры меня цепляли.
Как думаю и многим другим разработчикам мне хотелось создать большой мир с большими возможностями.

Забегая вперед скажу что я сделал это. Мой проект конечно еще сырой, кривой и косой. Однако игра уже существует и в нее можно полноценно играть.
Думаю найдутся те кому будет интересно что я сделал, какими силами, какие подходы и инструменты при этом использовал. А я попиарю свой проект немножко.

Видосик одной из последних версий:

До начала проекта
Я уже не был новичком в разработке игр. За плечами было куча мелких проектов с различными механиками и один достаточно крупный проект.
В геймдеве я на тот момент был уже 4 года. Поэтому я достаточно хорошо понимал свои возможности.
Финансовых ресурсов я не имел. Т.е. я мог вкладывать в проект только свое время.
Работать над проектом я начал в июне 2018 (год назад).
Целевая платформа Android

Какие инструменты я использовал:
Движок Unity3D. Потому что Хорошо с ним знаком.

ассет ProBuilder. Им я моделирую ландшафт


для локализации I2Localization

Диз. Док.


Никакого четкого плана не было и нет.
Я не работал в команде большую часть времени. Все чисто на моем энтузиазме.
Если ко мне подключались добровольцы то я писал минимально необходимую документацию.
Но не более того.
По сути все было только в голове.
И это было правильно.
Могу только сказать что хотелось сделать что-то похожее на Gothic 1 под мобильные платформы.

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


1) производительность. Ведь помимо ландшафта надо отображать еще кучу всего. И все это на весьма слабых устройствах. А по опыту я знал что ландшафтом легко можно загрузить и CPU и GPU так что на этом разработку можно будет заканчивать.


2) легкость изготовления. Моделера нет. Найти в интернете подходящую модель будет не возможно. Значит моделить ландшафт надо будет мне.

3) Сложные формы. Пещеры, утесы, рвы.


4) Никаких отдельных загрузочных локаций аля TES.

5) Моря и реки с адекватной физикой.


В общем довольно жесткие требования.

И подход был найден. Простой и эффективный. Не самый красивый но это и не требовалось в ТЗ)

Терейн в юнити меня не устроил. Высокая нагрузка и примитивный по форме ландшафт.
Сторонние пакеты моделирования я тоже не стал использовать хотя и был знаком с некоторыми.
Я выбрал ProBuilder. Это позволило мне моделить прямо в юнити что крайне удобно для ландшафта. И я контролирую каждую вершину как в сторонних пакетах моделирования.
Его инструментарий скуден, но и освоить его не сложно.
Если мне надо например добавить новую пещеру, то у меня на это сейчас уходит порядка 5 минут. И это круто.
Ландшафт конечно весьма угловатый выходит. Но я очень сильно экономлю на треугольниках. А это низкая нагрузка на графику и на физику.

Это монолитная основа мира игры смоделирована всего из 3336 треугольников (включая множество пещер которые вы не видите на скриншоте):

Как я делал свою первую Action RPG Gamedev, Gamedev-tutorial, Action RPG, Открытый мир, Мобильные игры, Видео, Длиннопост

сверху разумеется расставлены объекты попроще:

Как я делал свою первую Action RPG Gamedev, Gamedev-tutorial, Action RPG, Открытый мир, Мобильные игры, Видео, Длиннопост

Мне очень хотелось сделать реки с течением. Но очень не хотелось их настраивать.
Поверхность воды я также моделировал в ProBuilder. А там где я хотел чтобы было течение я наклонял поверхность. Получается поверхность реки у меня имеет небольшой уклон.
Достаточно маленький чтобы это не бросалось в глаза.
В контроллере персонажа я сделал пересчет этого наклона в физику течения.
Получилось очень просто в настройке.
Захочу сделать новую реку. Смоделю русло и поверхность реки. И все начнет работать.


Ну пожалуй на сегодня хватит.

Проект вы можете найти и посмотреть в магазине GooglePlay:
ВАРВАР: Кровь и Слава