Всем привет. Весь год я потратил над превращением прототипа локаций из примитивов, который делал в прошлом году, в детальные уровни. За этот год пришлось создавать ассеты для уровней в промышленных масштабах. Думаю мне уже есть что показать.
Напомню, что я делаю аркадный шутер в духе DooM и Titanfall, с элементами старой школой шутеростроения с современный геймплеем на игровом движке Unity5. В игре предстоит сражаться против большого количества роботов, пользоваться бегом по стенам для преодоления препятствий, а так же комбинировать пушки чтобы эффективно уничтожать роботов.
Всего в арсенал 6 видов оружия, и почти каждый из них имеет альтернативный режим огня. Так же имеется прокачка игрока и всего арсенала.
Я Фелимир, и мы с командой делаем игру Русы НЕ ПРОТИВ Ящерок. Наше основное занятие - разработка ряда других игр, которые я, конечно, не покажу. Но три недели назад я в пятый раз увидел репост мема "Русы не против ящеров", крякнул, плюнул, и написал нашей ПМ "делаем". Она подумала, что я шучу, и долго пыталась убедить меня в том, что я шучу, но я был непреклонен, поэтому теперь мы делаем эту игру.
Тот самый мем
Мы нашли художницу и писателя, собрали за неделю артов, написали синопсис, и запустили страницу.
Сюжет нашей грядущей эпохалки вдохновляется классикой жанра и историческими лекциями известного профессора, но помимо очевидных источников мы адаптируем темы из трилогии Эдем Гарри Гаррисона, и используем другим источники для повышенной исторической достоверности (догадайтесь по скрину Комиссарши ниже). А еще у нас все обязательно закончится хеппи-эндом (и оргией).
Как же все завертелось, спросите вы? Матриархальные ящерки проснулись из стазиса после схода ледников, их мужчины не годятся к размножению. Ящерки узнают, что пока они спали, Русы расселились по Гиперборее, и у них есть идол Припегалы, который обеспечивает им стабильный прирост населения.
Отряд ящерок отправляется, чтобы похитить идола, но они не рассчитывали на то, что в селе окажется настоящий богатырь. Он не позволит просто так унести идола, и накажет ящерок во славу Перуна.
Посмотреть страничку можете по ссылке внизу поста.
А напихать удов в кокошник ниже в комментариях, постараюсь ответить всем.
Да заболел, работать не получается, голова гудит как аэродинамическая труба. Ни спать, ни думать. Недавно закончил работу над мат.моделью черной дыры для нашей игры TOTAL RELOAD:
Кинематографичный раурс №1
Cкрин из нашей группы из нескольких разработчиков. Все интенсивно кидают результаты своих работ, наброски, идеи:
Скрины процесса разработки
В процессе разработки вдохновение черпал везде где только можно. В основном из Interstellar, референсы и матмодели других разработчиков. Сразу приведу некоторые ссылки: youtube.com/watch?v=g-iw2DDNDeY (реализация без когда, полезно чтобы понять в общих чертах как сделать черную дыру)
А вот этот парень большой молодец (на мой взгляд):
Он подробнее рассказал на пальцах как сделать черную дыру и с какими проблемами можно столкнуться. Да, в его версии черной дыры есть артефакты, но видео достаточно полезное. А еще он не забывл упомянуть "того лысого чувака", который очень подробно объясняет рейматчинг :)
А это мой вариант "Б" на случай если у меня не получилось бы сделать черну дыру приблизительно как в Интерстелларе. Такую версию дыры точно можно сделать:
Разработка
Процесс разработки начался с изучения того что из себя представляет черная дыра и того как она выглядит. Какие ожидания относительно внешнего вида имеются у игроков, как ее видят дизайнеры. То есть все началось с референсов дизайнеров и матнаработок других разработчиков.
Все что попадает (свет, материя) в область воздействия черной дыры, притягивается и сжимается в идеальную точку. Именно из-за этого черная дыра и выглядит так как ее показали в Интерстелларе:
Как оказалось, многие дизайнеры имеют свое видение черной дыры и оно часто рознится с описанием математиков. Привожу ниже разные референсы:
Некоторые рефренсы черной дыры, которые нашел в сети
Структура черной дыры, некотороые попытки воссоздания
В целом черная дыра состоит из ядра (то что находится в центре) и диска (его называют аккреционным диском).
Моей первой идеей была следующая: а что если сделать черну дыру в виде модели сферы и модели диска? Мой напарник Александр к тому времени уже сделал версию черной дыры в Blender, записал клип и он много месяцев лежал в папке, я попробовал воссоздать что-то похожее, но полностью в Unity.
Версия черной дыры Александра
Ортографическая камера, разная толщина линий обода, кольца вокруг черной дыры, плоский аккреционый диск с перетянутой(? или в блендере mipmap неверный задается) на краях ткустурой, звезды одного размера, цвета и яркости. Непонятно что с звездным небом. То и из-за распределения, то ли из-за одинаковой яркости небо какое-то странное. А может мне кажется? Ваше мнение? В итоге все это привело к тому что качество картинки сцен с черной дырой пришлось доработать.
Сразу отмечу, что звезды имеют разный размер (в том числе и из-за разной яркости свечения), цвет, неравномерное распределение на небе и ко всему к этому они еще и мигают (какие-то больше, а какие-то почти нет).
Пикабу не умеет вставлять форматированный код, потому прилагаю фото кода
После того как немного пошаманил, получилось создать процедурное небо:
Минимальное количество звезд
Увеличил яркость звезд
Уменьшил яркость звезд
Что мне нравится в компьютерной графике и к чему всегда стремлюсь - это автоматизация процесса. Взгляните, количество звезд, яркость, частота мигания и прочие параметры могут быть заданы через несколько ползунков. Можно в реальном времени настраивать параметры звезного неба и смотреть устраивает оно или нет... Круто, правда?
Черная дыра
Но а дальше пошли пляски с бубном. Мне категорический, крайне не хотелось возиться с рейматчингом. Потому что рейматчинг: - тяжел для графической карты - у меня небольшой опыт работы с ним - чтобы что-то сделать в рейматчинге - это нужно реально разобраться и сделать математически. То есть там реальная математика и если где-то будет проблема, то ты ее не найдешь отладкой. Нужно сидеть и разбираться что к чему.
В общем мой подход "ВСЕ ЧТО УГОДНО, НО НЕ РЕЙМАТЧИНГ" привел меня к таком результату:
ну хоть небо на небо похоже
Здесь две модели: диск и сфера. Ну поехали критиковать: - облака на диске плоские как лист бумаги - облака диска не похожи на облака - плавного перехода между облаками диска и космосом нет (в этой версии, но это не спасет все равно) - дыра не искажает пространство - облака с аккреционого диска не наползают на черную дыру и текстура там без перехода - текстура газов или что это там - одноцветная какая-то, серая что ли + слева есть засвет от энергии, это плюс, есть как бы намек на соответствие с матмоделью
Я еще долго игрался с моделью дыры пока не понял, что пора завязывать с этими убогими потугами что ничего дельного из этого не выйдет:
Попытка улучшить аккреционный диск
Какой-то объект на фоне предполагаемой черной дыры
Аккреционный диск, попытка улучшить №100500
Попытка настроить\сделать карты нормалей для кинематографичного искажения неба
Да, можно показать дыру под определенным ракурсом, на определенном расстоянии и на определенное время. Но тут слишком много слова "определенное". Нужно чтобы можно было показывать как хочешь, со всех сторон и с разного расстояния. Рейматч короче. Ну что, поехали, небольшое видео о том чего можно добиться рейматчингом:
Хотя облака диска у нас реализованы не на 100% так как показано на видео, посмотрел это видео чтобы погрустить на тему того, что придется много-много-много пробовать, экспериментировать.
Рейматч
Первым делом создал объемную сферу, тор и сжал тор по высоте чтобы выглядел как дск. Здесь одна из версий тора и сферы:
Одна из версий черной дыры
Далее работаем с диском, добавляем ему шум с помощью облаков, используем полярные координаты и видим артефакт:
Шов в области перехода облаков
Шов в области облаков устранен
Артефакт, в данном случае, - это как бы "шов" от замыкания облаков. Здесь показал изменение координат полярной системе. Шов находится в области резкого перехода красного в желтый. Если смажем переход (путем интерполяции), то шва не будет:
Полярные координаты в виде цветов
Скрина с текстурой облаков без шва не осталось. После этого нужно было разобраться с текстурой глубины. Обьекты, которые попадают в диск и дыру должны пересекаться корректно. Сделано, здесь показано как палка свеху не пересекается облаками, а снизу облака перекрывают палку. Делается это так: если значение буддера глубины больше чем глубина облака, то считаем, что объект находится за облаками и рисуем облака. Иначе рисуем обьект. Результат:
Облака без цвета (один сплошной красный)
Нужно менять прозрачность в зависимости расстояния между облаками и палкой. Это нужно для того чтобы облака были похожи на обака. В данном случае облако перекрывает палку, но мы дополнительно изучаем расстояние между облаком и палкой. И в зависимости от расстояния мы задаем прозрачность облака:
Палку (ее часть, которая в облаках) немного нужно было исказить. Для этого использовал GrabPass. То есть делается фото всего экрана, помещается в текстуру и в шейдре обрабатывается текстура (вернее область палки). Так же добавим искажение звездам:
Ну что, получили артефакт в виде второй палки, которая возникла из-за искажения текстуры GrabPass. Чтобы устранить этот артефакт используем текстуру глубины и обрабатываем ситуацию, когда палка не должна рисоваться. Позже отказался от использования искажения (его незаметно), то есть GrabPass не используется .
Результат
Кинематографичный раурс №2
Выводы
Рейматчинг довольно мощный инструмент. Да и в целом, как оказалось, математика - это достаточно мощная штука когда умеешь ее использовать :) Экспериментировать пришлось не так и много. Во всяком случае меньше чем люди, которые разрабатывали облака для мультиков пиксар.
В результате нам удалось сделать: + теперь облака на диске объемные и выглядят как обака с разных углов. Потому что они реальные математические облака :) + облака диска стали похожи на облака + сделан плавный переход между облаками диска и космосом + дыра очень хорошо искажает пространство и звезды + облака с аккреционого диска наползают на черную дыру, все как надо + текстура газов диска цветная, объемная (цвет и плотность облаков меняются в зависимости от расстояния до ядра) - убрал яркий засвет в правой части аккреционного диска, пока он не нужен + звезды похожи на звезды: разного размера, цвета, яркости, мигают
Ссылки на нас
У нас уже есть страничка в стим, трейлер, скрины из игры :)
Человеку, ранее не следившему за разработкой нашей игры, вероятно трудно понять, о чем игра. Поэтому приведу небольшое описание, чтобы рассказать об игре и не перегружать статью излишним текстом.
В вымышленной вселенной, населенной антропоморфными зверями, существует жестокое телешоу, в котором участники попадают на опасный остров и борются за выживание и денежный приз.
Jaws & Claws - режим "Остров".
Игра Jaws & Claws сочетает в себе такие жанры как платформер, файтинг, beat'em up, party game.
Jaws & Claws - режимы игры.
Геймплей игры наполнен драками, перестрелками, движением и соперничеством.
Jaws & Claws - быстрый матч.
Игра имеет уникальный визуальный стиль и ярких запоминающихся персонажей. Саундтрек в стиле hard'n'heavy с элементами фанка и электроники.
В игре реализовано 14 игровых персонажей со своими уникальными особенностями. А также 6 игровых режимов.
Jaws & Claws - персонажи.
Уникальные способности персонажей позволяют им не только разнообразно сражаться, применяя спец. приемы против соперников, но также иметь определенные преимущества в различных игровых ситуациях.
Например, большинство персонажей имеют стандартный прыжок, который позволяет им проходить режим Остров только по некоторым траекториям.
Однако в нашей игре есть персонажи, такие как Buzz, имеющие способность, позволяющую им увеличивать длину прыжка и проходить уровни своими собственными маршрутами.
Это не все различия, персонажей о которых можно рассказать, но нам бы хотелось, чтобы игроки сами изучили персонажей, и нашли среди них своих любимых.
В ближайшее время мы планируем выпустить демо версию игры. Желающие могут добавить игру себе в избранное по ссылке.
Вот уже наступил декабрь, и мы бы хотели вкратце рассказать, над чем велась работа в течение предыдущего месяца.
1) Велась работа над системой улучшения войск и над войсками в целом: рассматривались различные варианты потенциальных улучшений и их тестирование в игровых условиях.
2) Проводилась крупная доработка игрового лора: подробная история ключевых городов Свекловии, мотивации главных героев, и на основе этого корректировался концепт основных сюжетных линий.
3) Были добавлены улучшения для аудиенций, расширяющие игровой процесс, например аудиенции со случайным исходом.
4) Дорабатывался общий интерфейс игры, позволяющий связать старые и новые механики вместе.
5) Были добавлены новые элементы и механики для боевой карты, такие как ловушки и различные бонусы.
6) Проводилось общее тестирование новых и доработанных механик боевой системы и глобальной карты, а также общей сбалансированности юнитов.
Мы продолжим делиться интересной информацией о ходе разработки и постараемся в ближайшем будущем наглядно продемонстрировать все нововведения.
Немного новостей разработки проекта проекта Jaws&Claws (неестественный отбор). На этой неделе мы довольно много времени уделили оформлению повествовательной части режима остров. Это, конечно же, подготовка текста и звукового оформления к бубнежу персонажей во время диалогов. Все сказанное относится и к новостям событий игры, рассказываемых комментатором Барри Тайгером. Барри любитель отпустить несколько острых и обидных шуток в адрес проигравших персонажей. Что поделать, такова современная журналистика в Fero City - столице антропоморфных зверей и параллельной вселенной.