Мы разработали движок и теперь делаем свою первую игру. Нам нужно ваше мнение. Часть 2
Теперь мне бы хотелось сделать акцент на самом движке - двух основных его "фишках". Сразу сделаю объявление: я не буду спорить с тем, что функционал, описанный тут, можно так или иначе реализовать на Unity/Unreal Engine/Game Maker/rpg maker(нет). Просто в один прекрасный день я проснулся и понял, что хочется пощупать OpenGL и заиметь стимул прокачать линейную алгебру. И все заверте...в общем, поехали!
1. Воксельный движок.
Все же знают, что такое воксели, правильно? Вот эти вот кубики из майнкрафта:
А ещё, согласно википедии это volumetric pixel - то есть, это фактически просто некоторая "ячейка" пространства. А вот чем именно её можно заполнить - ограничено только вашим воображением :)
Т.е. программист может обратится к любой ячейке пространства и сделать то, что нужно в данный момент:
Так же можно иметь объекты, состоящие из нескольких "кусков", чтобы иметь, например, частичную разрушаемость:
Совсем необязательно при этом делать предметы состоящие из таких воксельных "кусков" квадратными! Такой подход имеет логическое продолжение в виде использования мешей вместо спрайтов, и в общем-то внешний вид мира ограничен только навыками художника - любую геометрию можно "интерполировать" в кубики любого размера :D
Для честности повествования следует упомянуть более сложные версии "терраформинга", так же так же интерполирующие геометрию из простой в сложную и наоборот - например, marching cubes или хз-как-назвать симуляцию жидкости. Если дело пойдёт, хотелось бы сделать и их нативную поддержку :)
Лачуга на видео из предыдущей статьи вообще-то является "многовоксельным" объектом и очень успешно разбирается на составляющие.
2. Освещение двумерных тайлов.
Наивно предположив, что имея скромные ресурсы в виде двух (даже без половины) рудокопов, в самом начале мы решили делать двумерную игру - она в последствии переехала в трёхмерное пространство, но плоские спрайты остались. Поэтому было решено придать плоскому внешнему виду немного ощущения глубины, используя игру теней.
Вот красивая версия (в конце видео я двигаю тени от "глобально источника" так что они тоже не статичные, если что):
...и функциональная версия, где лучше видно, как именно свет может взаимодействовать со спрайтами:
...и ещё один прикольный эффект, полученный случайно :D (если что, это shadow acne)
Собственно, на этом у меня всё! Я уверен, тут найдутся адепты известных движков, и вопрос к ним - на сколько сложно было бы сделать вышеописанное на знакомом вам движке? Как именно вы бы это сделали?
Так же зацените игру в магазине - это будущий битэм-ап:
Всем добра :D
Комментарий недоступен
Изобретение велосипедов важный шаг в творчестве
Но такое псевдо 3д достигается в том же анриле спрайтами и источником света за 2 шага)))
Ну, для света строго говоря 3д не псевдо - в этом и есть трюк
Кстати, вот ещё зачем мы заморочились - когда всё начнёт рушится, статичные блокауты хз как смотрелись бы, наверное. Но интересно посмотреть, как бы это было сделано на unreal engine
Даёшь open source! А вообще молодцы, как минимум это отличный опыт. Удачи!
Соглы, молодцы что на месте не сидят
Как назвали движок ?