gamedev

Постов: 17 Рейтинг: 28875
4444

Доделал игру, работающую на видеокарте

Развернуть
Наконец-то я доделал игру, которая работает на видеокарте. Она несколько месяцев повисела в раннем доступе на стиме, и теперь я её окончательно выпустил.

Основная особенность игры в том, что она представляет собой физическую симуляцию, которая выполняется на графическом процессоре. Основной код игры - это огромный compute shader, 6 тысяч строк на HLSL. Десятки тысяч взаимодействующих частиц обрабатываются параллельно, и выходит довольно быстро. Всё в игре сделано из этих частиц. Вот видосик с геймплеем:
Хочется просуммировать опыт разработки такого рода игры. Какие достоинства и недостатки у вычислений на видеокарте.

Достоинства:

1. Производительности GPU в 10-100 раз выше, чем у процессора, когда дело касается параллельных вычислений. Это очен много, так что на видеокарте можно делать принципиально другие игры, чем на процессоре. Моя игра просто не работала бы на CPU (то есть, была бы слишком медленной).

Недостатки:

1. Мало туториалов. Я потратил довольно много времени, чтобы всё изучить. И ещё больше - чтобы решить возникавшие проблемы.

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

3. Проблемы возникли и при чтении данных из видеопамяти. Это приходилось делать на каждом цикле, но работало оно слишком медленно. Потоу что в юнити не было асинхронного чтения в удобное для графического конвейра время, и он постоянно блокировался при чтении данных. В итоге fps падал вдвое. Пришлось использовать нативный плагин для асинхронного чтения из видеопамяти средствами directX, но во-первых, это не работало вне windows, а во-вторых, по неизвестным причинам это не работало на некоторых видеокартах, игроки жаловались.

4. Не у всех есть достаточно современные видеокарты, поддерживающие шейдеры и обладающие достаточной производительностью. Это ограничивало круг игроков, способных поиграть в мою игру.

5. Графические API на разных платформах немного отличаются друг от друга. В простых случаях они совместимы со стандартом directX, но у меня - не простой случай. У Metal одно небольшое ограничение, на андроиде - другое, на Vulkan - третье. В итоге, моя игра работает только на Windows.

6. Не удалось сделать вычисления детерминированными, так что пришлось обойтись без мультиплеера.

Но по итогам, я всё-таки доволен, что сделал что хотел. Очень интересно было посмотреть, каково играть в полностью физической, разрушаемой среде. Было бы неплохо, если б все графические API были совместимы, надеюсь, в будущем это всё устаканится. Потому что технология очень полезная из-за гигантского выигрыша в производительности. Вовсе не обязательно делать целую игру, можно перенести некоторые части игры на обработку в видеопроцессор. Например, поиск пути в стратегиях. А сейчас не любой разработчик будет готов писать compute shader, если всё равно его придётся дублировать, на случай, если игра запущена на платформе, не поддерживающей вычисление на видеокарте.

Ну и если кто-то вдруг захочет попробовать свои силы в этой области, то вот парочка туториалов:

http://kylehalladay.com/blog/tutorial/2014/06/27/Compute-Sha...

http://www.emersonshaffer.com/blog/2016/5/11/unity3d-compute...

А если кому интересно посмотреть мою игру, вот ссылка на её страницу на Steam: http://store.steampowered.com/app/593530/Jelly_in_the_sky/
63

Приглашаем на тест текущего билда Swordbreaker in Action

Развернуть
Приглашаем на тест текущего билда Swordbreaker in Action
Всем привет!
Мы сейчас находимся на конференции и решили выложить в открытый доступ текущий билд проекта для получения ваших отзывов, предложений и замечаний.

В текущем билде работают все базовые механики, обучение, компас с областями интереса, один секретик, а также один квест, который можно уже пройти. Так же присутствует перевод на инглиш и озвучка.

Вот ссылка на билд: https://drive.google.com/open?id=0B7eBLk9Sj4-nMUNSOVlHYmJPaU...

Свои отзывы и прочее пишите вот в этой форме для обратной связи, чтобы нам было проще это отслеживать: https://drive.google.com/open?id=1gH2TsVB5ERlbaAIAUjB3HD_Bxy...
617

SONISS раздают 20гб+ звуковых эффектов.

Развернуть
Третий год подряд SONISS в честь GDC бесплатно раздают бандлы звуковых эффектов.  Для тех, кто пропустил:
2015 год (10GB+) - На сайте раздача завершена, но ссылка на торрент есть в этой теме на Reddit
2016 год (16GB+) - THE #GAMEAUDIOGDC BUNDLE PART 2
2017 год (20GB+) - THE #GAMEAUDIOGDC BUNDLE PART 3
Ссылка на лицензионное соглашение
SONISS раздают 20гб+ звуковых эффектов.
4862

Если ты задрот-прокрастинатор...

Развернуть
Если ты задрот-прокрастинатор...
Друзья, всем привет. Напомню, что не так давно возникла идея сделать игру, которая бы превратила ваши ежедневные дела и задачи в маленькое приключение.

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

Итак... что будет в игре:
1. Возможность создания вредных и полезных привычек, ежедневных задач.
2. Противники, наносящие Вам урон при выполнении вредной привычки или просрочки задачи.
3. Улучшения для персонажа (характеристики и внешний вид).
4. Регулярные челенджи от разработчиков (например отжаться 200 раз в течение дня).
5. Совместные многозадачные проекты (боссы)

Если у Вас есть идеи, буду рад их выслушать. Всем добра..не ленитесь, ведь жизнь коротка, что бы проводить ее лежа на диване ))
1549

Twin Soul - новые скриншоты.

Развернуть
Twin Soul - новые скриншоты.
Twin Soul - новые скриншоты.
Twin Soul - новые скриншоты.
Twin Soul - новые скриншоты.
Немного новых скриншотов окружения от команды White Noise Team в рамках игрового проекта Twin Soul. Активно работаем над игровым процессом, хотим продемонстрировать прототип в конце этого месяца.
3188

3Дэ скан.

Развернуть
Для нашего проекта нужны модели персонажей, желательно с фототекстурами. Так как ресурсов и времени мало, а моделек нужно много, тестировал метод фотосканирования.

Задача такая — есть туфля от гарсингов:
3Дэ скан.
нужно ей заменить эту страхолюдину:
3Дэ скан.
Берем ботинок, набиваем его газетой для удержания правильной формы, зашнуровываем. Берем зеркалку с кучей мегапикселей и 50мм объективом. Ждем чистого неба и идем на улицу, в тенечек.
Важно: 50мм объектив (идеален для наших целей, по крайней мере так сказано в инструкции), освещение (чем четче и контрастней фото выходят, тем лучше, а в тени — для более мягкой тени). В студии совсем было бы отлично, но чего нет, того нет.
Фоткаем ботинок по кругу и под разными углами. Настройки в ручном режиме, не должно быть скачков яркости на картинке. У меня вышло 103 фото.
3Дэ скан.
Запорол баланс белого, но потом подправим. Удаляем все фотки с расфокусом и там где ботинок не целиком в фокусе. Осталось 66 штук, нам хватит. Загоняем все в agisoft photoscan и запускаем обработку выравнивания фотографий(ищет позиции камеры в пространстве). Получаем вот такую штуку:
3Дэ скан.
Уже видно, что положение камеры вычислено правильно. Тут нужно выставить только объем в котором будет вычисляться плотное облако, но мы его заодно и почистим:
3Дэ скан.
Просчет плотного облака самый длительный. На выходе:
3Дэ скан.
Появились артефакты, их нужно все вычищать в обязательном порядке. То, что останется, будет потом торчать на хайполи. Чистить очень неудобно, камерой крутить адово, привыкнуть не реально.
После чистки:
3Дэ скан.
Вроде б норм. Строю геометрию:
3Дэ скан.
Она же, но с технической текстурой (как я понял, генерируется из цвета точек облака, или еще как то по быстрому):
3Дэ скан.
На этом этапе можно загнать сетку в ZBrush, или еще в какой редактор, сгладить и подровнять геометрию. Потом заменить ту геометрию, что сгенерировала программа на исправленную и проецировать текстуру уже на нее.
Генерирую основную текстуру:
3Дэ скан.
Сама текстура(8000х8000 пикселей):
3Дэ скан.
Далее клепаем лоупольку, проецируем на нее текстуру и нормалку, правим баланс белого в фотошопе. На выходе (2048х2048, этого много, хватает и 256х256 пикселей):
3Дэ скан.
Настраиваем скин на лоупольке и экспортим в игру. Конечный результат:
3Дэ скан.
Качество вполне устраивает (для нашей игры даже чересчур). Время просчета: 30 минут выравнивание фото, 3 часа плотное облако, 20 минут генерация геометрии и еще 30 минут на генерацию текстуры. Просчет шел на АМДэшном бульдозере, 8 ядер. Самой работы на 2 часа.
Достаточно простой и быстрый способ получения моделек с фототекстурами, но подходит не для всех задач.

Из того, что делать не желательно: хоть как то редактировать отснятые фото перед просчетом, снимать на разные объективы одну серию фото для одного проекта, избегать изменения освещения (солнце зашло за тучу на улице или фотограф перекрыл свет в помещении). Кадр должен быть контрастным с минимальным ISO. В кадре не должно быть динамических объектов, сам объект нельзя перемещать. Это из основного, но есть еще и мелкие нюансы.

Если кому интересен сам наш проект (пошаговая стратегия), подписывайтесь на паблик в ВК.
1857

Мои боты теперь разрушают ворота и стреляют со стен! :)

Развернуть
Научил ботов разрушать вражеские и оборонять свои ворота. Кроме того, научил лучников занимать защитные позиции на стенах, башнях и других выгодных точках с учетом взаимного расположения.
Сейчас боты уже по-настоящему маневрируют по карте, борются за ресурсы, захватывают точки и принимают хоть сколько-то разумные решения. Игра становится интересней :)
В этот раз мы решили сделать полноценный тизер :Р
734

Pixel art обои на рабочий стол

Развернуть
Pixel art  обои на рабочий стол
Pixel art  обои на рабочий стол
Pixel art  обои на рабочий стол
Pixel art  обои на рабочий стол
Pixel art  обои на рабочий стол
447

Магия Parallax Mapping'a

Развернуть
Всего лишь 1 плоскость + текстура. И особый алгоритм смещения текселей с дорисовкой динамичесиких теней.
1138

Не, ну как назвать фирму? Ну, не знаю... Че делать то... ***... О!

Развернуть
С последней презентации Unity.
P.S. В Unity ожидается интеграция Октан рендера.
Не, ну как назвать фирму? Ну, не знаю... Че делать то... ***... О!
41

Домик на дереве

Развернуть
Домик на дереве
909

Когда работать лень.

Развернуть
По работе возникла необходимость делать множество деколей имитирующих разрушения бетона, асфальта и подобного. Будучи существом ленивым, решил собрать генератор этой дряни в Substance Designer. Как итог, потратив день, имеем бесконечное количество вариаций деколей, которые автоматически красятся в substance painter, беря в основу необходимый материал. (iray renders)
Когда работать лень.
Когда работать лень.
А это он голенький:)
Когда работать лень.
Когда работать лень.
Когда работать лень.
P.S. Само собой, это не "обожемойматериалгода" а просто рабочий мат, для повседневного использования, так сказать.
1352

Программист учится рисовать

Развернуть
Всегда хотелось самому делать арт к своим играм, поэтому продолжаю свои попытки научиться рисовать. Прочитал (и прорисовал) книгу Марка Кистлера "Вы сможете рисовать через 30 дней", о которой тут уже были посты. Стараюсь не останавливаться на достигнутом, находить время для рисования. Сейчас вот, тренируюсь на котах, в прямом и переносном смысле. О чем пост? Да просто коты требуют чтобы их кому-нибудь показали! :)
Программист учится рисовать
731

Текстовые игры. Возрождение.

Развернуть
Привет! Речь пойдет об играх. За последний год мы все стали наблюдателями чудесного явления - возрождения жанра текстовых игр. Это тот формат, где все ограничено только фантазией создателя. Люди постарше еще могут вспомнить насколько увлекательными они могут быть. Вспомните шедевры прошлого, такие как Adom или Dwarf Fortress. Сложно поверить, что настолько захватывающий игровой опыт создан только с помощью графических символов, но это так! Я предлагаю подборку самых стоящих творений среди современных текстовых игр. 

Сначала пройдемся по браузерным онлайн-играм, в которые можно играть в соседней вкладке, после чего перейдем к мобильным платформам :
1. Lift ( liftthriller.com ). Браузерная, онлайн.
Текстовые игры. Возрождение.
Минималистичный погружающий триллер, в котором есть амнезия, лифт и что-то неизвестное. История про психиатрию и бесчеловечные опыты.  
Захватывающий сюжет, красиво нарисовано, временами заставляет поёрзать на стуле. 
В общем - интригует. Ждем продолжения. 

P.S. Играем за девушку.
2. Домовой ( bravemule.com/domovoi-ru ). Браузерная, онлайн.
Текстовые игры. Возрождение.
Взрослая сказка. 
Это единственный переведенный на русский язык интерактивный квест от Кевина Сноу. 
Красивые иллюстрации и музыкальное сопровождение в комплекте.
3. Чёрный континент (  ). Браузерная, онлайн.
Текстовые игры. Возрождение.
Настоящее приключение в Африке. 
Вы - руководитель экспедиции и с вами может произойти что угодно.
Какую команду собрать, сколько провизии взять, вступать в контакт с воинственным племенем Зулусов или нет? 
Все зависит от ваших взрослых решений. Захватывающе и интересно.
4. Lifeline ( Appstore, PlayMarket )
Текстовые игры. Возрождение.
С нами связывается астронавт, оказавшийся на неизвестной планете, нам нужно помочь ему выжить и параллельно разобраться в том, что же там все таки творится.
Разработчики уже выпустили 2 игры “сверху” с другим сюжетом и активно экспериментируют. 
Не поскупитесь на игру - она того стоит. К слову, сюжет совсем нетривиален.
5. The Martian: Official Game ( Appstore, PlayMarket )
Текстовые игры. Возрождение.
Снова космическая тематика. 
Марсианин, тот самый. 
Помогаем Марку выжить на Марсе. Взаимодействуем с жизненными показателями, следим за обстановкой вокруг него, даем советы и указания. 
Интересно, использованы необычные механики. Стоит поиграть.
2709

*оторвало руку* - плевать, всё равно она мне не нужна!

Развернуть
Моя вторая попытка сделать игру для Android
*оторвало руку* - плевать, всё равно она мне не нужна! GIF
1311

Наша игра "The Uncertain"

Развернуть
Первый демо шоурил, который мы сегодня показали на конференции #unitykrd в Краснодаре. Надеемся вам понравится :)
2923

Это бесплатно?! Да это бесплатно!

Развернуть
Большой выброс контента в свободный доступ.
Это бесплатно?! Да это бесплатно!