You are currently viewing Как создавался Волшебный мир! часть 1.

Как создавался Волшебный мир! часть 1.

Приветствую на нашем канале! Сегодня в рубрике посвященной разработке компьютерных игр расскажу историю создания игры Волшебный мир, английское название The Magic World 2022 года.

Приобрести игру можно на следующих игровых платформах.

Все началось с покупки коллекционного издания игры Might And Magic 4 Clouds of Xeen на ebay.

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

И тогда стало интересно попробовать создать нечто аналогичное, удивительно, но в РФ ничего подобного никто никогда не создавал, хотя сам жанр партийной РПГ бродящей по жутким подземельям тогда был очень популярен. Я начал изучать вопрос и понял, что сам по себе геймплей таких игр очень сложный. Разработка началась с создания темы на форуме геймдева.

https://gamedev.ru/code/forum/?id=266181

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

Сам игровой мир как бы разбивается на клетки и впереди перед партией отображаются клетки стартующие от текущей клетки плюс клетки впереди и по бокам.

Соответственно, разбиваем игровое поле на клетки, состоящие из тайлов. Тайл соответственно имеет код ячейки например 0-0, 0-1, 1-4 и состоит из поверхности (пола), объекта (например дерево, дом, стена), потолка. Каждый элемент тайла должен быть отрисован под каждым наблюдаемом ракурсе.

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

Если дальность увеличивается до 4 клеток, то нужно отрисовать уже 21 картинку так как увеличивается широта обзора.

Я попробовал и создал тайловый конструктор V3 в фотошопе чтобы подставлять в каждое место свой тайл.
Однако дальность обзора очень низкая. Дальний фон придется скрывать туманом.
Тайловый конструктор V3
Тайловый конструктор V4

Первоначальный вариант игры в 2D проекции с заменой тайолов. Дистанция видимости очень маленькая.

Первоначальный вариант игры Волшебный мир

Добавляем еще 3 клетки видимости вперед и получается уже V6.

То есть под каждый угол обзора требуется отрисовать уже 34 варианта вида. На художника ложиться огромная работа. Примерно такой вариант был реализован в игре MM4. Не представляю сколько тайлов пришлось отрисовать их арт-отделу.
Такой вариант точно не подходил, так как в таком случаи стоимость арта составит уже космическую сумму. Каждую стену, каждый факел, дверь, сундук, трещину в стене нужно будет отрисовать по 34 раза. А дистанция перспективы все равно будет не очень. Ее придется скрывать за туманом или делать сильное искажение чтобы смыкался горизонт. Красная стрелка показывает как приходится искажать-наклонять тайл, чтобы уложиться в 6 клеток видимости и сомкнуть горизонт.

Какие есть варианты еще?

Второй вариант использовать какие либо 3D инструменты. Я изучил опыт американского художника, Клинта Беллингера, автора ассет пака First Person Dungeon Crawl Art Pack. Он к работе приложил объекты в blender, которые видимо выстраивал в сетку и уже рисовал поверх них.

Набор 3D элементов ассета Клинта Беллингера
Закрашенный вариант 3D колонны c разных ракурсов
Соответственно, как вариант можно выстроить сетку, нагенерировать множество картинок, а уже художник сможет их просто обвести.
Попробовал это реализовать.
Размещаем 3D элементы по сетке в соответствии со схемой Тайл V6

Расставил базовые элементы по клеткам и поместил камеру с видом от первого лица.

Камера обеспечивает идеальный вид симметричной перспективы

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

Отдельный PSD файл под каждый тайл

Принцип работы художника выглядит так: Отображаем конкретный слой в фотошопе например номер 21, смотрим на схеме где он отображается и рисуем поверх него текстуру.

Так выглядит арка на клетке 21 в зоне нашей видимости
Далее движок загружает все вариации тайла “Арка-с-проходом” (камень, дерево, железо) то есть 35 картинок и упаковывает это в текстурный атлас. А уже по ходу игры мы подставляем в ячейку 21 арку с проходом каменную как готовую картинку.
Ну допустим такой вариант тоже подойдет, правда на художника ляжет огромная работа. Но как быть с интерактивными элементами? Сундуки, рычаги, факелы? Вот тут огромная проблема. 

Первое – нужно рисовать объекты в разных состояниях. Сундук открытый, сундук закрытый, сундук открывающийся. Чем плавней анимация, тем больше состояний.

Сундук закрытый и сундук открытый

Второе – нужно рисовать в двух вариантах с поворотом. То есть вид спереди и вид сбоку. Иначе откуда мы ни посмотрим, сундук всегда будет повернут к нам лицом. Вот например пример рычаги с видом сбоку.

Рычаг с видом сбоку
Эти проблемы умножают работу художника и программиста.
В итоге после анализа трудоемкости всей работы, от варианта 2D и псевдо 2D (через реальный 3D) пришлось отказаться.
Уж слишком сложной и тяжелой станет подобная разработка. 

А какие варианты остаются? Об этом читайте в части 2.

Добавить комментарий