5115

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

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


Основная особенность игры в том, что она представляет собой физическую симуляцию, которая выполняется на графическом процессоре. Основной код игры - это огромный 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...

Правила сообщества

ОБЩИЕ ПРАВИЛА:

- Уважайте чужой труд и используйте конструктивную критику

- Не занимайтесь саморекламой, пишите качественные и интересные посты

- Никакой политики


СТОИТ ПУБЛИКОВАТЬ:

- Посты о Вашей игре с историей её разработки и описанием полученного опыта

- Обучающие материалы, туториалы

- Интервью с опытными разработчиками

- Анонсы бесплатных мероприятий для разработчиков и истории их посещения;
- Ваши работы, если Вы художник/композитор и хотите поделиться ими на безвозмездной основе

НЕ СТОИТ ПУБЛИКОВАТЬ:

- Посты, содержащие только вопрос или просьбу помочь
- Посты, содержащие только идею игры

- Посты, единственная цель которых - набор команды для разработки игры

- Посты, не относящиеся к тематике сообщества

Подобные посты по решению администрации могут быть перемещены из сообщества в общую ленту.

ЗАПРЕЩЕНО:

- Публиковать бессодержательные посты с рекламой Вашего проекта (см. следующий пункт), а также все прочие посты, содержащие рекламу/рекламные интеграции

- Выдавать чужой труд за свой

Подобные посты будут перемещены из сообщества в общую ленту, а их авторы по решению администрации могут быть внесены в игнор-лист сообщества.


О РАЗМЕЩЕНИИ ССЫЛОК:

Ссылка на сторонний ресурс, связанный с игрой, допускается только при следующих условиях:

- Пост должен быть содержательным и интересным для пользователей, нести пользу для сообщества

- Ссылка должна размещаться непосредственно в начале или конце поста и только один раз

- Cсылка размещается в формате: "Страница игры в Steam: URL"

50
DELETED
Автор поста оценил этот комментарий

Тут напредлагали игр, которые им показались похожими "из-за разрушаемости", но не заметившие разницы между созданием дыр и физике частиц.


Но тем не менее знаю ещё одну крутую игру, прям вах, в которой так же все частицы со своей физикой, и частицы разные все, с кучей интересных свойств. Ах да, игра - Powder Toy

раскрыть ветку (1)
47
Автор поста оценил этот комментарий

Да, Powder Toy - это симуляция частиц. Именно она меня навела на идею сделать свою игру.

показать ответы
0
Автор поста оценил этот комментарий
Хм. Я слышал в новостях о квантовом компьютере, что его изобрели только потому, что паралельное вычисление на полупроводниках невозможно. Или тут что-то другое имелось в виду?
раскрыть ветку (1)
36
Автор поста оценил этот комментарий

Квантовые вычисления - это совсем другая хрень. А здесь всё просто, частиц много, для каждой надо вычислить новые координаты. Можно по очереди на одном процессоре это делать. А можно одновременно на тысяче процессоров видеокарты.

показать ответы
19
Автор поста оценил этот комментарий
Расскаите мне, нубу. Если графический процессор так крут, то почему вычеслительную логику всех приложений не перенесут на него, а обычный процессор не выкинут за ненадобностью?
раскрыть ветку (1)
35
Автор поста оценил этот комментарий

Центральный процессор хорош для последовательных вычислений, в которые укладывается любая задача. А графический мнгоядерный процессор хорош для параллельного вычисления, к которому многие задачи не сводятся, так что процессор никуда не денется, но с развитием графических API всё большее количество неграфических задач разработчики начнут переносить на видеокарты.

показать ответы
19
Автор поста оценил этот комментарий
Поймите правильно, я не имею ввиду что то что вы сделали -- хреново и не нужно. Довольно интересно было почитать и понимаю что это ещё интересней было делать.

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

раскрыть ветку (1)
23
Автор поста оценил этот комментарий

Это верно, времени ушло больше, чем планировал. Но за вычислениями на видеокарте - будущее. Это полезный навык сегодня. Модный deep learning весь на карточках работает, к примеру.

показать ответы
7
Автор поста оценил этот комментарий
а каким образом выполнялось взаимодействие частиц в старых "танчиках", работающих на цпу?
раскрыть ветку (1)
20
Автор поста оценил этот комментарий

В классической Scorched Earth была просто текстура земли, взрывы вычитали из неё окружности, остатки осыпались по пиксельным столбцам.

показать ответы
4
Автор поста оценил этот комментарий
вот я не специалист в данной области, но интересно вот что:
если создать карту ну например из того же кс (небольшую комнату на худой конец) то каких затрат это потребует по части железа, я так понимаю сист. требования будут заоблачными и всё упрётся в то что железа с такой производительностью пока нет?
раскрыть ветку (1)
18
Автор поста оценил этот комментарий

Зависит от размера частиц. Думаю, миллиона частиц хватит на несколько комнат в 3д мире. И это будет прилично работать на самой современной игровой карточке. Но мы ещё далеки от ситуации, Когда вообще всё можно сделать из подобной материи. Скорее всего лучший вариант - это комбинация подходов. Когда частицы образуются в момент взрыва. А пока не разрушено - монолитный физический блок.

показать ответы
Автор поста оценил этот комментарий
Автор, Посмотри игру wings 90х годов. Всё тоже самое, только про самолетики, все разрушаемо. Шла на 486)) Ты опоздал на 20 лет
раскрыть ветку (1)
27
Автор поста оценил этот комментарий

Там принцип попроще. По сути просто текстурка исчезает. А в моей игре куски падают, ничего не исчезает.

показать ответы
1
Автор поста оценил этот комментарий
Получается такими играми процессор загрузить на 100% будет очень сложно? Или он вообще почти не используется?
раскрыть ветку (1)
10
Автор поста оценил этот комментарий

В моём случае CPU используется на пару процентов: он отвечает за управление и VFX (взрывчики).

показать ответы
3
Автор поста оценил этот комментарий

В вормс бы такую физику, отлично зашло бы

раскрыть ветку (1)
8
Автор поста оценил этот комментарий

В моей игре есть режим как в вормс, посмотри гифку:


https://i.imgur.com/REynOOr.gifv

Автор поста оценил этот комментарий
Я от разработке игр далёк, но судя по скринам это пойдет на калькуляторе. И да, я бы подобное не то что не купил, но и даже пиратку бы не качал. Вопрос к ТС, зачем? Как я понял большинство людей выкладывающие сюда свои игры как правило работают не игроделами. И честно признаться выглядит это дёшево (прошу не обижаться, я не обосрать кого-то хотел). Для чего вы этим занимаетесь, ну кроме того, что это хобби ?
раскрыть ветку (1)
8
Автор поста оценил этот комментарий

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

1
Автор поста оценил этот комментарий
Запили проверку железа перед запуском, это не сложно и решит подобные вопросы.
раскрыть ветку (1)
15
Автор поста оценил этот комментарий

Ага, просто загружу демку в стор, чтоб люди её пробовали и виделиЮ работает у них и достаточно ли быстро.

показать ответы
18
Автор поста оценил этот комментарий
Можно сделать похожую игру которая будет идти и на процессоре, но с небольшой потерей в "реальности" взаимодействия. Потому что не критично будет.

Это как если брать сложный объект, например, грузовик. и делать его физическую оболочку не по каждой мелочи которая торчит, а просто кубом. Куб вычисляться будет в десятки/сотни раз быстрее, и при этом потери взаимодействия -- абсолютно ничтожные.

раскрыть ветку (1)
15
Автор поста оценил этот комментарий

Да, можно, некоторые игры так делают. Это уже немного другий принцип со своей спецификой. Там физика сложней, например. Потому что физические точечные партикли очень просто рассчитывать.

показать ответы
5
Автор поста оценил этот комментарий

а я танк сломал =)

Иллюстрация к комментарию
раскрыть ветку (1)
7
Автор поста оценил этот комментарий

Да, бывает он развалится, но ещё живой и ездит. Иногда корпус полностью отваливается, одни гусеницы ездят.

17
Автор поста оценил этот комментарий
Замечательная игра! Купил еще месяца три назад, с тех пор вопрос "во что поиграть с друзьями в гостях" практически отпал :) Такого веселья даже Вормс не даёт. Жаль только, что в игре нет редактора уровней, а за ним и Стим Воркшопа )

MSI Radeon R9 380 4G - летает.
раскрыть ветку (1)
13
Автор поста оценил этот комментарий

Ого, рад такое слышать!

показать ответы
21
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
6
Автор поста оценил этот комментарий

Спасибо :)

1
DELETED
Автор поста оценил этот комментарий

А почему вычисления недетерминированные в мультиплеере, входные параметры одни и те же для другого игрока - расчеты же должны идти одинаково (я про походовую систему)? Или просто задумка в реалтайме играть?

раскрыть ветку (1)
6
Автор поста оценил этот комментарий

Да, хотелось бы в рилтайме. А если по очереди ходить и симуляция происходит только у активного игрока, то всё проще, но не так зрелищно. Было бы приятно посмотреть, как к твоему танку подъезжает враг и в упор стреляет тройной бомбой.

показать ответы
3
Автор поста оценил этот комментарий

бля, ТС же во время разработки игры описывал физику взаимодействия объектов. Ее всегда можно переписать поближе к тому, что Вы называете реальной физикой. @ThisIsZolden, проясните ситуацию, пожалуйста.

раскрыть ветку (1)
5
Автор поста оценил этот комментарий

Главный недостаток симуляции в том, что она дискретна. Временной шаг вычислений слишком велик, чтобы обеспечить хорошую точность. Я использую силу леннарда-джонса, но это не имеет большого физического смысла просто потому, что у меня модель двумерная. Ну и не учитываются многие тонкости взаимодействия реальных физических атомов в веществе. Обладающие предсказательной силой модели очень сложны, их вычисляют на суперкомпьютерах. С их помощью можно, например, выяснять, кк поведёт себя лекарство. Или как будет сворачиваться не синтезированный пока в реальнсти белок.

2
Автор поста оценил этот комментарий

Просто воксельная игрушка. Пусть оно и не три-дэ, что уже не воксель, но мы поняли.

Прикол в том, что обычно для взаимодействий твердых тел каждый объект заворачивают в дополнительных объект, а тут каждый пиксель - влияет на каждый пиксель.

Кстати, @ThisIsZolden, были попытки как-то оптимизировать с квадро-деревьями или пер нами тру-пиксели с тру-взаимодействием?

Иллюстрация к комментарию
раскрыть ветку (1)
5
Автор поста оценил этот комментарий

Я просматривал альтернативные методы, и в итоге остановился на простом обсчёте парного взаимодействия с разными оптимизациями. Квадро деревья не пробовал.

0
Автор поста оценил этот комментарий
Подобная физическая реалистичность требует довольно высокой производительности сисемы, но к счастью,

Опечатка в описании в стиме

раскрыть ветку (1)
5
Автор поста оценил этот комментарий

Спасибо!

показать ответы
5
Автор поста оценил этот комментарий

Можешь глянуть Voxelstein 3D, там очень даже немаленькая карта сделана полностью из вокселей. Они большеваты, конечно, для того, чтобы реалистично выглядеть, но играется очень круто

раскрыть ветку (1)
4
Автор поста оценил этот комментарий

Забавно. Интересная идея. Спасибо за наводку.

4
Автор поста оценил этот комментарий
И к чему этот высер? Комментатор выше акцентирует внимание на том, что для Украины цена завышена в сравнении с РФ. И что бы автору привлечь украинских игроков, цену желательно снизить с 4,5$, как сейчас, хотя бы к 2$, как в РФ. Иначе, учитывая реалии, никто ее за такую цену не возьмет.
раскрыть ветку (1)
4
Автор поста оценил этот комментарий

Стим по умолчанию расставил цены с учётом экономического положения. Для России -150р, хотя для Америки - $6. Не знаю, почем он для украины высокую цену оставил. В данный момент я не могу цену менять, потому что типа активная скидка. Но когда она закончится, я для бывшего СССР понижу цены, потому что Steam явно переоценивает платёжеспособность людей в этих странах.

0
Автор поста оценил этот комментарий

Но почему нужно синхронизировать именно состояния мира, а не действие, которое привело к  изменению ландшафта?
Например, отправлять параметры выстрела, который привел в разрушению части уровня, а дальше параллельно считать физику на клиентах.

раскрыть ветку (1)
4
Автор поста оценил этот комментарий

Из-за недетерминированности вычислений у каждого клиента будут немного другие результаты. Пара частиц не в ту сторону полетит.


Поэтому, я хочу сделать вычисления детерминированными, Тогда игроки будут обмениваться нажатиями клавиш управления.

показать ответы
25
Автор поста оценил этот комментарий

Этот пост на 100% заслуживает быть в Лиге Разработчиков Игр, давно такого не было, очень круто) Хотя если бы ранее поведал о своей игре, то успелось бы больше аудитории набежать) Хотелось бы тогда ещё услышать или увидеть то, чего происходило "за кадром"

раскрыть ветку (1)
6
Автор поста оценил этот комментарий

Про за кадром я вот тут писал, особенно гифки показательны:


https://imgur.com/gallery/5LJoI

показать ответы
9
Автор поста оценил этот комментарий
Может сделаешь что то в духе Worms World Party? Такая механика для них очень подходит
раскрыть ветку (1)
6
Автор поста оценил этот комментарий

Если найду способ сделать мультиплеер, то конечно.

показать ответы
2
Автор поста оценил этот комментарий
Ааа! Круто! А есть возможность портировать на мак?

И продолжай развивать движок!
раскрыть ветку (1)
3
Автор поста оценил этот комментарий

Я бы хотел портировать на мак, но у Metal API есть какие-то ограничения по сравнению со стандартом DX11, так что пока под маком оно не работает, но я попробую что-нибудь сделать, народ на форуме юнити подсказал пару идей.

показать ответы
1
Автор поста оценил этот комментарий

А, т е там есть немного рандома и это пара частиц, в итоге, может привести к совершенно разному результату на клиентах?

раскрыть ветку (1)
3
Автор поста оценил этот комментарий

Рандома нет, он случайно происходит из-за того, что, видимо, очерёдность исполнения потоков влияет на результат. Я всё пытаюсь найти в коде место, которое к этому приводить. И сделать его независимым от очерёдности потоков.

показать ответы
2
Автор поста оценил этот комментарий

Присоединяюсь - очень круто сделано! Желаю на достигнутом не останавливаться, и двигаться вперед!

раскрыть ветку (1)
3
Автор поста оценил этот комментарий

Спасибо. Не останавливаюсь.

1
Автор поста оценил этот комментарий
Ну и "Выпушен" подправь)
раскрыть ветку (1)
3
Автор поста оценил этот комментарий

Поправил, спасибо!

1
Автор поста оценил этот комментарий
для популяризации игры в массах рекомендую добавить скин танчика с дулом стилизованным под мпх.
раскрыть ветку (1)
2
Автор поста оценил этот комментарий

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


Была даже гифка, где один танк другого хорошо насадил. Только я не могу ссылку найти.

0
Автор поста оценил этот комментарий
А в твоей игре есть возможность уменьшить диаметр частиц? (чтобы сделать картинку более плавной)

Вроде настройки графики в обычных играх, выставить ultra.

раскрыть ветку (1)
2
Автор поста оценил этот комментарий

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

0
Автор поста оценил этот комментарий
В геймдеве и программировании на GPU не шарю, но сразу возник вопрос - не стоит ли эти труды закатать в библиотеку/фреймворк/плагин для Unity, чтобы подзаработать на этом и поднять планку игр, которые не сжирают все ресурсы видяхи "красивой картинкой"?
раскрыть ветку (1)
2
Автор поста оценил этот комментарий

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

1
Автор поста оценил этот комментарий
что мешает выпустить игру "не на видеокарте" со встроенным майнером???
раскрыть ветку (1)
2
Автор поста оценил этот комментарий

Я в этом не понимаю, но говорят, что даже интернет-странички могут в тихую майнить. Наверное, и в игру можно вставить такой функционал. Но ведь это легко отслеживается по сетевой активности игры. Чуть кто заметит, сразу огласка - и репутация игры разрушена.

2
Автор поста оценил этот комментарий

А если симуляция будет только на хосте, остальным игрокам отправлять готовое изображение. Чтоб разгрузить сеть изображение можно передавать по принципу торрента. Или все равно задержка слишком большая будет?

раскрыть ветку (1)
2
Автор поста оценил этот комментарий
Это хорошая идея, но я нуб в сетевом кодинге. Самое простое - сделать симуляцию детерминированной и отправлять только управление игроков. Но если всё же стримить картинку, то многовато трафика для простенькой игры.
показать ответы
0
Автор поста оценил этот комментарий

В паре слов, если можно: а в чем еще загвоздка?

раскрыть ветку (1)
2
Автор поста оценил этот комментарий

Я пока сам не уверен. Есть подохрение, что очерёдность обращения потоков к ресурсам имеет значение. И она почему-то разная от запуска к запуску. Моя задача понять, где именно этот эффект возникает. И переписать код, чтоб не зависело от очерёдности.

показать ответы
0
Автор поста оценил этот комментарий

@ThisIsZolden, спасибо за игру, но если честно из за работы некогда играть.

Но с удовольствием почитал свой пост, хоть сам только Паскаль знаю и не более.

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

Пасиб!

раскрыть ветку (1)
2
Автор поста оценил этот комментарий

Я советую изучать Юнити и язык C#. Научиться программировать по хорошему учебнику можно за месяц. После этого просто делай простые игры, давай друзьям играть, будет накапливаться опыт. Через годик сможешь взяться за что-то серьёзное и коммерческое.

0
Автор поста оценил этот комментарий

Напомнило игрушку молодости Scorched Earth и даже что то более древнее на бк-001

раскрыть ветку (1)
2
Автор поста оценил этот комментарий

Я на неё и ориентировался, хотел сделать то же самое, но с физикой.

0
Автор поста оценил этот комментарий

Нет поддержки джойстика. Немного поиграл и снёс - очень неудобно на клаве.

раскрыть ветку (1)
3
Автор поста оценил этот комментарий

Кстати, спасибо. Куплю джойстик, замучу поддержку.

показать ответы
2
Автор поста оценил этот комментарий

Зашел в игру. Первый уровень Burning snow: на экране идет снег, в левом верхнем углу шкала здоровья, аммуниции и все. Где танк?

Иллюстрация к комментарию
раскрыть ветку (1)
4
Автор поста оценил этот комментарий

У тебя какая видеокарта? Похоже, что она не поддерживает compute shaders. Если чё, делай возврат.

показать ответы
9
Автор поста оценил этот комментарий
Ну "Игра работающая на видеокарте" это конечно сильно сказано, зачем пытаться так преукрасить.

Судя по постам автора на хабре, это не преувеличение.


Что не так с кортекс командер который считаеться на ЦП

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


Что касательно сетевой синхронизации - автор не смог добиться детерминизма вычислений. Т.е. симуляция с теми же исходными параметрами на разных машинах выдаст разный результат, а это исключает возможность использовать подход Lock-Step. Есть конечно вариант переписать шейдеры на интах, но приятного в этом процессе будет мало. Дельта-синхронизация для такой игры также не подходит, поскольку в каждом кадре изменяется вся сцена.

раскрыть ветку (1)
2
Автор поста оценил этот комментарий

Я не прочь переписать всё на интах, но этого было не достаточно.

показать ответы
1
Автор поста оценил этот комментарий

@ThisIsZolden, А не хотел ли ты выпустить свои туториалы по написанию таких систем частиц на видеокарте, например под Юнити? Я думаю нашлось бы достаточно отбитых, кому это было бы интересно, например Я..

раскрыть ветку (1)
2
Автор поста оценил этот комментарий

Я выпустил раннюю версию своего движка, снабдил его обильными каментами, его можно использовать в качестве туториала, вот он, в ассет сторе лежит: http://u3d.as/B82

0
Автор поста оценил этот комментарий

Автор, будет ли поддержка мышки для прицеливания?

раскрыть ветку (1)
2
Автор поста оценил этот комментарий

Да, похоже, что надо сделать. Люди просят.

0
Автор поста оценил этот комментарий
Спасибо, комрад, за скидку. Прекрасная работа, но ты не доделал игру. Все кроме геймплея выглядит убого. Может менюшки в порядок привести, да и мультиплейер тут сам напрашивается.
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Согласен, многое надо доделать, но пока игра на паузе. Вычисления на видеокарте оказались проблематичными, изобилующими подводными камнями. Так что я пока работаю над другой игрой. Но к Jelly in the Sky вернусь, потому что сделать мультиплеер было бы здорово, ну и вообще довести игру до ума.

показать ответы
0
Автор поста оценил этот комментарий
@ThisIsZolden, можно вопрос задам? Возможно ли создать собственный уровень в JellyInTheSky или уровни кампании сформированы в программном коде?
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Пока нет, но теоретически возможно. Я сам уровни ривую в фотошопе, но можно сделать редактор прямо в игре. Я планировал это сделать, но пока игра на паузе.

0
Автор поста оценил этот комментарий
Спасибо, очень интересная информация. Мне кажется, в будущем все игры будут проходить в полностью разрушаемой среде с разным коэффициентом прочности для каждой поверхности.
Я не особо в этом разбираюсь, но скажите, не получается ли так, что в данным момент вы пытаетесь... Ммм... Как бы это сказать... Ну вот, если у человека сломанные и криво сросшиеся ноги, то вместо того, чтобы их исправить, выровнять, вы изобретаете технику и механизмы для эффективного кривого хождения.
Т.е. не правильнее ли будет поставить этот вопрос на уровне архитектуры?
Либо изменить сам процессор, наделив его теми полезными в данном случае свойствами, которыми обладает графическое ядро. Либо добавить туда, собственно, эти самые ядра или что-то в этом роде.
Ну или наконец создать один общий вычислительный центр, а не порознь процессор и видеокарта.
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

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

1
Автор поста оценил этот комментарий

напомнило фильм "Газонокосильщик" =)))

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

крутой фильм, девяностые!

0
DELETED
Автор поста оценил этот комментарий
Комментарий удален. Причина: данный аккаунт был удалён
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Погугли "Jelly in the Sky"

3
Автор поста оценил этот комментарий

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


Пример: Две машины=два игрока, оба стоят, каждый кадр оба компьютера обсчитывают вектора партиклов, по сети идет обмен информацией симуляции, это безумный обьем данных, то что как раз не давало кортекс командеру собрать нормальный мультиплеер

пару лет назад.


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


Рендеринг 3д на ГПУ на сколько я понимаю как раз и дает больше шума по сравнению с ЦП за счет этой десинхронизации между потоками.


И как написал гражданин vsugrob в коментах, изменяеться вся сцена (что на практике провал, а не достижение) то и отправлять надо как минимум 2 вектора каждого партикла, а не только проснувшихся.


*Раздел занимательной математики*

Прикинем что вектор из двух (х.y.)Интов каждый весит 4 байта. Прикинем что экран забит частицами с пиксель при разрешении 1024*768(786к партиклов) перемножаем/делим=6 мбайт, надо два вектора (положение и направление движения) = 12 мбайт информация для отправки 60 раз в секунду (расчёты чисто для развлекательных целей)

*Раздел Закончен*


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


Вспомните как много слёз пролито что игры не используют все потоки ЦП и первое ядро нагружено под завязку пока другие простаивают. Даже в одиночной игре не всё можно кинуть в разные потоки без последствий (синего экрана смерти или бубонной чумы как повезёт). Правда все что я написал может быть полным бредом:D

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Да, всё верно.

0
Автор поста оценил этот комментарий

Но все равно очень прикольно, удачи в дальнейшем.


А нет, вот еще вопросик. Я так понимаю, на взгляд, что на сегодняшний момент количество пикселей/частиц/разрешение(?) относительно небольшое, так? И если поставить что-то вроде 720p, то потребные вычислительные мощности заметно возрастут. А если добавить третье измерение - то ваще. Нагрузить при желании можно будет хоть четыре Веги/Титана. Так?

И еще нубский вопрос - используются вычисления одинарной или двойной точности?

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Вычисления - одинарной точности. Я бы даже половинчатой сделал, но там какие-то железячные проблемы были.


Количество частиц на уровень - тысяч двадцать-тридцать. Можно хоть миллион поставить, будет тормозить на Gtx1080. А может и не будет. В целом, рост производительности идёт линейный с ростом числа частиц.


В трёх измерениях люди делают тоже похожие вещи:


https://www.oculus.com/experiences/rift/1393627804009838/


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

показать ответы
0
Автор поста оценил этот комментарий

разброс осколков от детонации снарядов выглядит странно, как будто в месте попадания выделяются частици в радиусе и и летят в сторону противоположную выстрелу. Или это специальное оружие для копания?

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Да, оружие для копания. "Откусывает" кусок материи и отбрасывает в противоположном полёту снаряда направлении.

0
Автор поста оценил этот комментарий

Правильно ли я понимаю, что у игр с подобным движком(?) и полной разрушаемостью есть такой потенциальный недостаток, что игрок может сам себя загнать в реально тупиковую ситуацию, из которой выбраться будет просто невозможно? Ну вроде наразрушал яму, упал, а патронов уже нет?

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Да, теоретически это возможно. Поэтому я старался побольше оружия давать на уровнях, чтобы если что, можно было раскопаться и дальше ехать.

показать ответы
3
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Гитом не пользуюсь :(


Попробуй этот туториал, хорошо тётка всё расписала:

https://www.youtube.com/watch?v=qDk-WIOYUSY

1
Автор поста оценил этот комментарий

Сбалансировано или збаланзировано?

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Сбалансировано

1
Автор поста оценил этот комментарий

А что на счет The Powder Toy ?

Песочница с физикой частиц, ничего бесследно не исчезает

Вместо танка можно управлять человечками

Требования к компу минимум


Опять же вопрос от конечного пользователя. Техническую сторону я не могу оценить

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

На powder toy я как раз ориентировался, хотел скрестить её со Scorched Earth. Но про человечков там не знал, видимо это только в новых версиях появилось.

2
Автор поста оценил этот комментарий
Круто
а можно хоть одним глазком посмотреть на исходники? Или там все секретно/ужасно/концентрация велосипедов и костылей на одну строку превышает норму?) (Нужное подчеркнуть)
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Да чего там смотреть, обычный HLSL код. Проверяются расстояния между частицами, если близко - вычисляются силы взаимодействия. Очень просто всё. Я бы показал пару функций, но лень я Юнити лезть.

показать ответы
Автор поста оценил этот комментарий
Я такое можно замутить в 3D? Давно мечтал что бы от огромных боссов отваливались куски мяса после выстрела из ракетницы!!!
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Вот чувак сделал не просто 3д, а VR: https://www.oculus.com/experiences/rift/1393627804009838/

1
Автор поста оценил этот комментарий

Следил за проектом, но ждал ремейка Scorched Earth, то есть концентрации именно на этом режиме. В 90х именно разрушаемость мира, баланс и тактика привлекло меня на многие-многие матчи с друзьями по хотситу. Заливающийся в щели напалм, скатывающиеся по склону гранаты, полное изменение ландшафта от ядерных взрывов, кассетные бомбы. Из старого SE можно было выжать кое-чего, чего нету в червяках и энгри бердз, намекнуть на WoT в 2D.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Режим вроде Scorched Earth уже давно существует. Можно поиграть против компьютера или hot seat с одного компа с друзьями. Хотя, надо бы ещё разных типов оружия добавить.

1
Автор поста оценил этот комментарий

Довольно интересно. Почему использовал юнити? Не лучше ли просто использовать визуальную библиотеку и библиотеку для доступа к видеокарте?

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

По привычке экспериментировал в Юнити. Там всё остальное проще. Управление, интерфейс, VFX, звук. К тому же, я думал, что оно будет работать на всех платформах.

показать ответы
0
Автор поста оценил этот комментарий

Ух-ты, ты ответил! С прошедшим тебя!

Видеокарта Nvidia GeForce gtx745

Год назад, игра запускалась и успешно игралась.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Спасибо, и тебя.

Причина вылета мне не ясна. Никто больше на такую проблему не жаловался.

Попробуй обновить драйверы видеокарты.

0
Автор поста оценил этот комментарий

Куда высылать crash reports?

-игра вылетает при запуске

-integrity of game files verified

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
А какая у тебя видеокарта?
показать ответы
0
Автор поста оценил этот комментарий

Извините, а можно поинтересоваться какую математическую модель вы использовали для реализации движения воды. Просто у меня была задумка сделать для работы что то типо тренажера для обучения персонала цеха работе на котле, и там мне понадобилась хоть какая то модель движения потока дымовых газов из топки в конвективный газоход и дальше, если с теплопередачей мне все более менее понятно было(хвала небесам институт не пропал зря), то навыки программирования и расчеты на видеокарте я осваивал самостоятельно. Даже вроде как была найдена приемлемая мат. модель для реализации газодинамики(решетчатый метод Больцмана), и вот все было сделано, я перевел мат. модель в удобную для использования в шарпе форму, перевел все это дело на расчет в CUDA(что дало ускорение расчета в 48 раз), и начал тестить модель на работоспособность, но в итоге уперся в один неприятный момент который связан с LBM расчетом, скорость в отдельной точке непременно переваливала за единицу, после чего вся модель неизбежно рушилась и превращалась из красивой картинки в месиво, и в силу своих слабых знаний математики так и не смог найти решения которое бы устранило этот недостаток.

P.S. Изображение того что получалось в итоге прилагается, градиент цветов показывает градиент скоростей в потоке. Поток идет по квадратной "трубе" сверху вниз, посередине квадратное препятствие.

Иллюстрация к комментарию
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

У меня все частицы взаимодействуют с силой Леннарда-Джонса, плюс кое-какие мелочи, вроде вязкости. Приближение к динамике жидкости довольно плохое, потому что я там многое заточил под твёрные тела.


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

показать ответы
0
Автор поста оценил этот комментарий

А не будет рождественской скидки в стиме? Я не наглею, прост интересно как это делается вообще. и если не будет, куплю)

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

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

показать ответы
0
Автор поста оценил этот комментарий

Невероятно. Видел ранее ваши статьи. Просто не представляю как можно набраться столько сил и терпения для написания подобных вещей.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Когда интересно - легко.
0
Автор поста оценил этот комментарий

Купил, поиграл.

@ThisIsZolden, на тостерах, я так понял, играть не стоит?
P.s 12 фпс на первом уровне.

Иллюстрация к комментарию
раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Ага. Первый уровень самый быстрый, дальше больше частиц - ниже фпс. Так что сделай возврат, если не планируешь новую видюшку покупать.
показать ответы
0
Автор поста оценил этот комментарий

простите, то есть видюха обрабатывает массивы куда лучше проца? извините за сленг.ну то есть параллельно обрабатывает

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Да. Быстрее справляется.
показать ответы
0
Автор поста оценил этот комментарий

Автор, возникла проблемма с геймпадом. Назначить джойстики и куркИ (кароч всё, что отличное от бинарного) не получается. Игра определяет только нажатие кнопок. Что можно сделать?

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Заказал геймпад, в ближайшее время добавлю поддержку.

0
Автор поста оценил этот комментарий

Автор, возникла проблемма с геймпадом. Назначить джойстики и куркИ (кароч всё, что отличное от бинарного) не получается. Игра определяет только нажатие кнопок. Что можно сделать?

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Я попробую это исправить, спасибо за репорт.

1
Автор поста оценил этот комментарий
1 2 3 4 - легко

5 - зайопся его проходить.

Такое ощущение что некоторые уровни проходятся за 10 секунд, а некоторые по 20 раз перепроходить.


С ледником прикольный.


Небоскреб я просто разрушил повредив фундамент. В итоге он завалился налево и я взял кристалл.


Расхреначивание 20 уровня происходит всегда, если до этого был 20 уровень. Если выбрать другой уровень, а потом снова 20, то он один раз работает нормально.


У меня 1080 Ti.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Спасибо!
0
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Это всегда происходит или изредка? Там в материале уровня есть внутренние напряжения, чтоб лучше держалось. И они могут случайно глюкануть. Мне вот интересно, насколько часто это происходит, и зависит ли это от видеокарты.


Кстати, не мог бы ты рассказать, если запомнилось, какой уровень больше всего понравился?

показать ответы
0
Автор поста оценил этот комментарий

Тоже хочу танковый симулятор сделать. Так. Для души.
Правда, не на Юнити , а на анриле4
Тест динамики. Видео ускорено.
https://vk.com/video24783837_456239104

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
А как колёса с землёй взаимодействуют? Физика или IK?
показать ответы
0
Автор поста оценил этот комментарий

кто-нибудь, расскажите ему про PhysX

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

PhysX - для тел, а не для частиц. Если б я юзал PhysX, работало бы сильно медленней. А так я всё оптимизировал для частиц.

0
Автор поста оценил этот комментарий

Купил почти год назад. Можно прикрутить поддержку xinput?

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

А что такое xinput?

показать ответы
0
Автор поста оценил этот комментарий
Музычка на превью игры стиме улёт
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Музыка взята из этого произведения: http://argonov.ru/2032.html

0
Автор поста оценил этот комментарий

А допустим система <цельный блок> допустим дерева, при воздействии определенного типа преобразуется в <набор частиц> с определенными характеристиками - такого не было?

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Логичный ход, я бы так и делал, если б решил пойти по этому пути. Может кто и делал именно так, я не встречал.

0
Автор поста оценил этот комментарий

"работающую на видеокарте"

Я думал все игры въёбывают на видюхах

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Обычно только графика на видюшке, а всё остальное - на процессоре. А тут - физика тоже на видюшке.

0
Автор поста оценил этот комментарий

про майнинг-ферму было, не??

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Было, даже один чувак в личке приглашал поработать над криптой. Но я в этом не понимаю, я только по играм специалист.

0
Автор поста оценил этот комментарий
Из прочитанного понял что игра использует вычислительные мощности видеокарты. Подскажите гумманитарию если установить эту игру то видеокарта не сгорит от сильных нагрузок?
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

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

0
DELETED
Автор поста оценил этот комментарий
Комментарий удален. Причина: данный аккаунт был удалён
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

То и другое. Разницы принципиальной нет. Делаешь камеру ортогональной и направляешь на висящую в воздухе текстуру, на которую рендерится игра, и вот 2д в 3д мире.

0
Автор поста оценил этот комментарий
Пока он не выстрелил думал,что это какой-то странный смайлик)))))
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Некоторым кажется, что это бумбермен.

0
Автор поста оценил этот комментарий
А скачать то это чудо можно? Или я что то пропустил?)
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Можно, на стиме есть, "Jelly in the Sky"

0
Автор поста оценил этот комментарий

тс, дай ссылку на стим, чтоле, куплю.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

А загугли "Jelly in the Sky", не получается сссылку дать.

0
Автор поста оценил этот комментарий

Если не трудно, можете описать, как делается этот тест? Просто считает простенькую задачку и смотрит на затраченное время? Изменяется ли точность теста при усложнении задачи?

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Да, именно так, простенькая задача много раз в множестве потоков. В юнити работает, а в билде - нет. Попробую изменить задачку, может получится исправить.

показать ответы
0
Автор поста оценил этот комментарий

@ThisIsZolden, а можешь выложить уровень пикабу?)

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

По-моему, он включён в список карт для hot seat, которые случайно выбираются.

0
Автор поста оценил этот комментарий

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

Есть еще предложение- пускай хостит только 1 из игроков, а второму передается видео (стрим) с сохранением управления своим танком.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Этот вариант я не исключаю, если другие не будут работать.

1
Автор поста оценил этот комментарий

C# не интерпретируемый, он JIT-компилируемый.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Я читал, что C# код вдвое медленней, чем если то же самое в виде плагина на C++ сделать.

показать ответы
1
Автор поста оценил этот комментарий

C# не интерпретируемый, он JIT-компилируемый.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

А, спасибо. Я помню, что с ним что-то не то, но не помню, как точно называется.

0
Автор поста оценил этот комментарий
А какие именно ограничения вычислительных шейдеров у Метала и Вулкана?
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

У Метала атомарные операции над текстурой не работают - это то что в документации указано.


А про вулкан - не помню. Сам шейдерный код не компилируется, выдаёт ошибку, что, мол, превышены какие-то лимиты. Этих ошибок было слишком много, я даже не заморачивался попытками поправить в коде.

0
Автор поста оценил этот комментарий

скачал на пробу пиратку от 15.06.17.
на AMD HD 5800 слайдшоу тормознутое.


игра не дружит с АМД?

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Она дружит с АМД, о чём говорит тот факт, что ты видишь непосредственно симуляцию - землю, танк. Значит, всё работает. Но производительности не хватает, поэтому медленно.

0
Автор поста оценил этот комментарий

Лучше б на хабре внятную. статейку написал.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Я написал парочку, в процессе работы, описал все проблмы и решения. Подискутировали там, нормас.

0
Автор поста оценил этот комментарий
Недетерменированные вычисления - это как? Используются случайные числа местами?
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

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

0
Автор поста оценил этот комментарий
То есть за тот процесс, что в посте деньги платят? Да нихуя подобного. Ну разрекламировал он на пикабу своё произведение искусства, полтора местных калеки купили игру. Но по сути он даже им нахуй не нужна. Этот проект был для фана. На ассемблере было бы аналогично, только вот результат о котором пишет автор "Производительности GPU в 10-100 раз выше" была бы ещё на порядок выше.


Да, теперь он может написать в резюме "программирую на юнити видеокарту" или как-то так. Эта строчка по сути равносильна "программирую на ассемблере видеокарту" и никому в наше время нахуй не нужна.


Я конечно не видеоигродел, но я при таком мнение.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Кстати, в отличие от интерпретируемого С#, язык HLSL, на котором в юнити я написал шейдер, компилируется в тот же низкоуровневый код, исполняемый на графическом железе, в который он бы компилировался если бы я всё написал в нативном direct x на С++. То есть шейдерный код в юнити предельно эффективен.

показать ответы
0
DELETED
Автор поста оценил этот комментарий
gtx 650 ti 2 gb потянет?
раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Да, легко.
0
Автор поста оценил этот комментарий
А греется при этом сильнее, чем... это... ну это, что там греется в Мире танков?
раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Жопа у проигравших.
0
Автор поста оценил этот комментарий

И все равно не смогу поиграть, так как видеокарта 750М, и вроде не хватает там необходимого. Но всё равно купил, чисто поддержать, может когда ноут обновлю, поиграю нормально

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
У меня самого 750М, я на ней всё тестировал. Половина уровней тормозят, но несколько раз я игру прошёл.
0
Автор поста оценил этот комментарий

Если линейный рост с ростом количества частиц, значит тебе нужно оптимизировать твой движок.

Введи зоны спокойствия, т.е. подели игровое пространство на сектора и если в этом секторе нет движения, то не просчитывай в нем частицы.

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

Производительность сильно подрастет.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Да, я думаю сделать такую оптимизацию и существенно расширить игровой мир.

показать ответы
0
Автор поста оценил этот комментарий

@ThisIsZolden, зацени https://www.youtube.com/watch?v=ZBLoffoZLH8. У разработчиков тоже всё симулировано по-пиксельно. Вероятно, используют те же технологии.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

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

0
DELETED
Автор поста оценил этот комментарий

Автор, знакомо такое, я думаю, https://www.youtube.com/watch?v=Cv1ZRAPnUOA ?

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Не, впервые вижу.

0
Автор поста оценил этот комментарий

Хм. А почему в разных случаях потоки могут выполняться с разной очерёдностью?

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Этого я не знаю. Надо почитать поглубже про работу графических процессоров, должно быть какое-то объяснение.
0
Автор поста оценил этот комментарий
Молодец! Прикольная игруха! Жанр правда не мой, но интересно реализована. Интересно узнать логику прописывания свойств материала поверхности! Подписываюсь! Успехов тебе.
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Логика простая, частицы притягиваются, если подлетят близко друг к другу, но если слишком близко, то оттлкиваются. В результате, они образуют объёмную материю.

0
Автор поста оценил этот комментарий

Автор, на основании чего ты выбирал звуковую дорожку для трейлера в стиме? :D

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Просто песня понравилась :)

0
Автор поста оценил этот комментарий

скачай shaow play или bandicam

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Ок, попробую, спасибо.

показать ответы
0
Автор поста оценил этот комментарий
Судя по видосу, все в игре похоже не кинетический песок. Забавно, однако
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Вот ещё более кинетический песок:


https://www.oculus.com/experiences/rift/1393627804009838/

показать ответы
0
Автор поста оценил этот комментарий

звук добав

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

В игре звук есть, а из игры не получается писать, прога глючная, которая видео пишет, там звук отстаёт постепенно.

показать ответы
0
Автор поста оценил этот комментарий
Где купить/скачать?
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

На Стиме есть.

0
Автор поста оценил этот комментарий

а можно ли вызывать шейдерные методы из корутин? чтоб например обсчитывать какие нить сложные штуки параллельно

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

По-моему, нельзя. Только из main thread.

0
Автор поста оценил этот комментарий

Обожаю BeamNG Drive! Купил, теперь будет новая залипалка!! На GeForce 965M загрузка видео на 50%, фпс не показывает, но явно больше 30, даже в "мультиплеере". В главном меню тест выдал 5.8 балла

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Тест глючит почему-то, неправильно показывает.

показать ответы
0
Автор поста оценил этот комментарий

а в итоге как оказалось? андроидовая видеосистема не потянула?

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

У андроида compute shader работает в немного обрезанном виде. Один kernel не может работать более чем с четырьмя буфферами. А у меня больше используется. Но если это поправить (что долго), то вполне потянет, на новых телефонах пристойные видеокарты ставят.

показать ответы
0
Автор поста оценил этот комментарий

Крузис это игра crysis. Довольно старая, но и сейчас заставляющая напрягаться современные видеокарты.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Если заставляет напрягаться современные видеокарты, то видимо она не оптимизирована, не так считает.

показать ответы
2
Автор поста оценил этот комментарий

Куплю, пожалуй, но обещайте не забрасывать) А что за песня в трейлере?)

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

А чего её забрасывать, хорошая игра, колупаю потихоньку. А песня - из техно-оперы Виктора Аргонова "2032", можно всю скачать вот тут: http://argonov.ru/2032.html

показать ответы
Автор поста оценил этот комментарий

а имеет ли смысл делать какой-нибудь крузис чисто на видяхе или "традиционный" способ лучше? теоретически.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Что такое "крузис"?

показать ответы
1
DELETED
Автор поста оценил этот комментарий
Не удалось сделать вычисления детерминированными

А вот это печаль. Насколько сильно скорость падала?

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Если синхронизировать, то надо несколько мегабайт отослать между играками. Плюс, задержка на запись этих данных в видеокарту. И это в лучшем случае каждые пару секунд надо делать.

показать ответы
0
Автор поста оценил этот комментарий

Я прошу прощения, конкретно сейчас нет возможности вникнуть глубоко. Возможно, вы это упоминали где-то, но я правильно понимаю, что у вас вычисления на шейдерах? Почему / зачем? Почему не CUDA / OpenCL? Ну, CUDA сильно ограничивает круг пользователей, но OpenCL-то нет? И вопрос кроссплатформенности в значительной степени решился бы.

раскрыть ветку (1)
Автор поста оценил этот комментарий

По привычке я сделал в юнити, я и не знал про разнооразие способов работы с GPU. Но юнити вроде бы билдить в openGL core. Хотя, там тоже есть некоторые различия в API, так что оно не работает.

показать ответы