?

Log in

No account? Create an account

Previous Entry Поделиться Next Entry
Заметки о геймдеве. UDK, Unity и крутые шейдеры.
lorendroll
Последние месяцы увлеченно изучаю игровой движок Unity. После UDK его редактор кажется более ясным, логичным, свободным, хотя и менее оснащенным по-умолчанию. Простые вещи тут делаются просто, сложные — ровно настолько сложно, насколько этого ожидаешь. Если что-то хочется сделать, то просто берешь и делаешь, а не ищешь часами в документации как именно это подразумевается делать, какие волшебные нативные функции и свойства для этого в движке имеются (или отсутствуют), и какими инструментами нужно пользоваться. Компиляция скриптов и подгрузка новых ассетов происходит "на лету", также как и изменение публичных параметров объектов на сцене. К UDK после этого возвращаться совсем не хочется. Хотя скучаю по его встроенной физике мягких тел и симплигону. Но богатство ассет стора с плагинами, реализующими практические любые прихоти разработчика, с лиховой это ощущение компенсирует. Там и визуальные редакторы шейдеров на любой вкус, и полноценный 3д редактор внутри движка, и куча полезных скриптов, стартер паков и просто материалов из которых можно лепить всё, что пожелаешь: от двумерного платформера до мморпг.

Самая распространенная претензия у начинающих разработчиков к Unity это отсталая графика. Но я скажу, что это претензия дилетантов. В UDK и CryEngine с которыми его принято сравнивать, за вас поработали мозговитые коллеги из именитых компаний: написали на свой вкус кучу крутых встроенных шейдеров для материалов и постобработки изображения. В Unity же все в ваших руках, и проекты вроде Contract Wars, шейдеры Marmoset IBL и подобные, наглядно показывают, что претензии к движку никак не относятся. Более того, недавно появившийся плагин глобального освещения делает просто потрясающие вещи с визуальной атмосферой сцен. Реализованный при помощи "вычислительных шейдеров" (compute shaders) плагин позволяет симулировать на экране практически качество рейтрейсера, просчитывая в реальном времени отражение света от освещенных поверхностей. UDK кусает локти.

Использование подобных шейдеров стало доступно обладателям gpu с поддержкой sm5.0 и открывает для разработчиков волшебный мир скоростных многопотоковых вычислений. Нынче идут активные разработки потрясающих вещей вроде симуляции жидкостей, поверхности океана, объемных эффектов и физических частиц. Все это значительно повышает уровень интерактивности мира, прогресса в котором лично мне давно не хватало...
Вот и я, также, не преминул этим функционалом воспользоваться, и собрал трехмерный генератор изоповерхности из скалярного поля. А чуть проще говоря, воксельный редактор на marching cubes:

Скоро расскажу подробнее о том, как я это смастерил, в каком направлении собираюсь развивать, и, наверное, покажу интерактивную демку.