Мы разработали движок и теперь делаем свою первую игру. Нам нужно ваше мнение. Часть 2

Добрый день, камрады!
В предыдущей статье мой коллега сделал небольшой обзор того, чем мы с ним занимались.

Мы разработали движок и теперь делаем свою первую игру. Нам нужно ваше мнение. Часть 2

Теперь мне бы хотелось сделать акцент на самом движке - двух основных его "фишках". Сразу сделаю объявление: я не буду спорить с тем, что функционал, описанный тут, можно так или иначе реализовать на Unity/Unreal Engine/Game Maker/rpg maker(нет). Просто в один прекрасный день я проснулся и понял, что хочется пощупать OpenGL и заиметь стимул прокачать линейную алгебру. И все заверте...в общем, поехали!

Мы разработали движок и теперь делаем свою первую игру. Нам нужно ваше мнение. Часть 2

1. Воксельный движок.

Все же знают, что такое воксели, правильно? Вот эти вот кубики из майнкрафта:

Мы разработали движок и теперь делаем свою первую игру. Нам нужно ваше мнение. Часть 2

А ещё, согласно википедии это volumetric pixel - то есть, это фактически просто некоторая "ячейка" пространства. А вот чем именно её можно заполнить - ограничено только вашим воображением :)

Мы разработали движок и теперь делаем свою первую игру. Нам нужно ваше мнение. Часть 2

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

Мы разработали движок и теперь делаем свою первую игру. Нам нужно ваше мнение. Часть 2

Так же можно иметь объекты, состоящие из нескольких "кусков", чтобы иметь, например, частичную разрушаемость:

Совсем необязательно при этом делать предметы состоящие из таких воксельных "кусков" квадратными! Такой подход имеет логическое продолжение в виде использования мешей вместо спрайтов, и в общем-то внешний вид мира ограничен только навыками художника - любую геометрию можно "интерполировать" в кубики любого размера :D

Для честности повествования следует упомянуть более сложные версии "терраформинга", так же так же интерполирующие геометрию из простой в сложную и наоборот - например, marching cubes или хз-как-назвать симуляцию жидкости. Если дело пойдёт, хотелось бы сделать и их нативную поддержку :)

Лачуга на видео из предыдущей статьи вообще-то является "многовоксельным" объектом и очень успешно разбирается на составляющие.

2. Освещение двумерных тайлов.

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

Вот красивая версия (в конце видео я двигаю тени от "глобально источника" так что они тоже не статичные, если что):

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

...и ещё один прикольный эффект, полученный случайно :D (если что, это shadow acne)

Собственно, на этом у меня всё! Я уверен, тут найдутся адепты известных движков, и вопрос к ним - на сколько сложно было бы сделать вышеописанное на знакомом вам движке? Как именно вы бы это сделали?

Так же зацените игру в магазине - это будущий битэм-ап:

Всем добра :D

120120
77 комментариев

Комментарий недоступен

16
Ответить

Изобретение велосипедов важный шаг в творчестве

Но такое псевдо 3д достигается в том же анриле спрайтами и источником света за 2 шага)))

10
Ответить

Ну, для света строго говоря 3д не псевдо - в этом и есть трюк

Ответить

Кстати, вот ещё зачем мы заморочились - когда всё начнёт рушится, статичные блокауты хз как смотрелись бы, наверное. Но интересно посмотреть, как бы это было сделано на unreal engine

Ответить

Даёшь open source! А вообще молодцы, как минимум это отличный опыт. Удачи!

7
Ответить

Соглы, молодцы что на месте не сидят

3
Ответить

Как назвали движок ?

3
Ответить