Войти
ПрограммированиеФорумФизика

Зачем Юнити своя физика ? (6 стр)

Страницы: 1 2 3 4 5 6 7 Следующая »
#75
(Правка: 15:05) 15:05, 26 мар. 2019

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


#76
(Правка: 15:35) 15:27, 26 мар. 2019
FordPerfect
У меня процессор Sandy Bridge с первым AVX. Т.е. -march=native -O3 у нас даёт разные результаты и твой результат у меня, скорее всего, вообще не запустится. Burst в Unity, возможно, тоже дал бы прибавку с последними AVX, но я не могу проверить. Процессор относительно старый, но апгрейдиться пока смысла нет, не в синтетике он до сих пор со всем отлично справляется.

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

Я думаю, что The Sims 4. У них там вся игровая логика на Питоне. По ощущениям, он не справляется.

В Civilization V вся логика была на скриптах (если не путаю, в IV части вроде был Питон, потом перешли на Lua). Когда на большой карте много соперников, то пока они все обсчитаются после завершения хода, можно было заснуть, если клонит в сон.

GLoom
> Была версия фреймворка для микроконтроллеров или вроде того. Там была интерпретация байткода. Я не уверен что это живо сейчас, давно не видел.

Наверно, уже умерло. У Моно, кстати говоря, был свой интерпретатор IL для внутреннего потребления, пока JIT ещё не доделали. Они его сейчас возродили/возрождают для поддержки динамически генерируемого/загружаемого кода, когда JIT-компилятор недоступен (консоли).
https://www.mono-project.com/news/2017/11/13/mono-interpreter/

Ещё по ссылке, которую Kinjal дал, чувак упомянул, что в NET Core(?) теперь тоже есть свой интерпретатор, но он вроде не вдавался в подробности, зачем, или я пропустил мимо ушей.

#77
(Правка: 16:08) 15:46, 26 мар. 2019

bykabak
> Когда я назвал C# обёрткой, я имел ввиду что-то вроде обёртки над С++ кодом,
> которая в том числе улучшая жизнь программистам поедает производительность.

Просто не очень понятно, что это значит.

В C# и вообще в NET жизнь программистам очень сильно облегчает хорошая базовая библиотека, где и строки, и ввод/вывод, и потоки, и асинхронность, и XML и чё хочешь в готовом виде - бери и пользуйся. Т.е. не надо переизобретать велосипеды или какие-то сторонние API использовать.

Ещё в C# удобно, что поддержку новых фич не только добавляют в библиотеки, но и для удобства использования встраивают в язык. В С++ стараются синтаксис языка не трогать, он и так уже опухший, пихают всё что удаётся в библиотеки.

Тут сегодня в твитере всплыл прикол: Hello world на C#, который работает без рантайма и без ОС на "голом железе":
https://github.com/MichalStrehovsky/zerosharp/tree/master/efi-no-runtime

#78
15:55, 26 мар. 2019

alexzzzz
> Я думаю, что The Sims 4. У них там вся игровая логика на Питоне. По ощущениям,
> он не справляется.
>
> В Civilization V вся логика была на скриптах (если не путаю, в IV части вроде
> был Питон, потом перешли на Lua). Когда на большой карте много соперников, то
> пока они все обсчитаются после завершения хода, можно было заснуть, если клонит
> в сон.
Всё тяжелое в изи выносится в с++ плагины.
C# даёт больше синтаксического сахара, читабельности кода, и скорости написания кода.
Для особо критичных случаев, когда важна скорость, можно всё тяжелое вынести в dll-ку.
Много проектов на unity требует таких расчетов? Дай бог если в 1 случае из 1000.
Ну и стоит ли в unity вводить более сложный язык, ради того, что бы поддержать упоротых фанатиков оптимизаций.

#79
15:59, 26 мар. 2019

Kripto289
> что бы поддержать упоротых фанатиков оптимизаций.
это вам не картридж денди 48килобайтов

#80
(Правка: 17:20) 16:13, 26 мар. 2019

Kripto289
> Для особо критичных случаев, когда важна скорость, можно всё тяжелое вынести в dll-ку.
> Много проектов на unity требует таких расчетов? Дай бог если в 1 случае из 1000.

Может и есть, я таких вообще не знаю. В Cities Skylines вся симуляция, в т.ч. симуляция воды, на C#. Специально искал, не прикручена ли какая-то нативная библиотека для расчётов. Нашёл вроде только одну, она занимается интеграцией со Стимом, а всё остальное делают C# и сам Unity 5. Кажется, это самая тяжёлая игра на Unity в плане объёмов вычислений.

PS
А вообще-то Cities Skylines - это ровно та самая игра, где всё упирается в скорость "скриптов". В начале игры конечно нет, то как бы эффективны ни были вычисления, рано или поздно всё равно игра в них упрётся. Более эффективная кодогенерация дала бы возможность строить города ещё большего размера без необходимости запускать её на AMD Threadripper'е.

#81
20:36, 26 мар. 2019

alexzzzz
> Может и есть, я таких вообще не знаю. В Cities Skylines вся симуляция, в т.ч.
> симуляция воды, на C#. Специально искал, не прикручена ли какая-то нативная
> библиотека для расчётов. Нашёл вроде только одну, она занимается интеграцией со
> Стимом, а всё остальное делают C# и сам Unity 5. Кажется, это самая тяжёлая
> игра на Unity в плане объёмов вычислений.
>
>
Paradox'ы вообще с оптимизацией не дружат, их игры на C++ тоже не шибко быстрые...постоянно жрут озу как в не себя

#82
(Правка: 14:31) 14:30, 27 мар. 2019

alexzzzz
> В Cities Skylines вся симуляция, в т.ч. симуляция воды, на C#.
Что же они там на скриптах симулируют интересно?
Я так симулировал волны от коллизий и дождя на cpu, но это было когда я был совсем дно в этой теме.
Даже если без compute shaders, можно симулировать почти всё на gpu. FFT, коллизии, и всё такое.
Так что будем считать что они юзали симуляцию на c# из-за непрофессионализма.

#83
14:34, 27 мар. 2019

alexzzzz
> А вообще-то Cities Skylines - это ровно та самая игра, где всё упирается в
> скорость "скриптов"
Да скорее всего неоптимизированный код.
Если бы они юзали C++, вряд ли у них была бы скорость выше.
Судя по трейлеру у меня вообще много вопросов, что там происходит на скриптах.

#84
20:30, 2 апр. 2019

Мда, так а что по теме господа?)

#85
21:49, 2 апр. 2019

Чтобы по теме, надо

1) взять бету 2019.1,
2) починить в её менеджере пакетов нубский баг с некорректным десятичным разделителем при неанглийских региональных настройках,
3) скачать пакет Unity Physics,
4) разобраться, что он из себя представляет (предварительно разобравшись с ECS).

#86
22:18, 2 апр. 2019

alexzzzz
> (предварительно разобравшись с ECS).

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

#87
0:06, 3 апр. 2019

innuendo
На каждый логический срез логики надо делать системы.

#88
9:06, 3 апр. 2019

GLoom
> На каждый логический срез логики надо делать системы.

имеешь практический опыт по этому ? расскажи

на большом проекте, а не в демке

#89
10:03, 3 апр. 2019

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

Комментарий основан на просмотренных докладах с GDC vault.

Страницы: 1 2 3 4 5 6 7 Следующая »
ПрограммированиеФорумФизика