Advanced: Тема повышенной сложности или важная.
Что за тупой трэд?
А вообще главный недостаток, нет кнопки "сделать охуенно"
> Это шутка надеюсь?
https://store.unity.com/configure-plan/unity-core-support
ну все правильно. движок же бесплатный)
Я думаю многим не нравится нижеописанное и приносит боль:
- тонна зависимостей
- сложность сборки (из первого вытекающее)
- низкая производительность (первое тоже виновато бывает)
- кривая закрытая архитектура (вспоминаем N3t Wars)
- форматы данных спроектированы так, что ими сложно или неэффективно манипулировать (мой движок)
Еще неудобно бывает делать release ресурсов игры.
Всякие списки удаленных\добавить или созданных буферов, текстур.
Но самая большая проблема
innuendo
> Чё ты постоянно несёшь, форумный дурачок?
>
> посмотри на исходники юнити для начала
Kripto289
> Если мы говорим о C# в контексте геймдева, то его никто не использует для
> написания внутренностей движка, это очевидно. В ue4/unity/cry/godot/... C#
> покроет 95% задач с лихвой.
lookid
> Что-то я не верю. Вот флою по оптимизации 400к луа скриптов для вермитайт 2.
Ну во-первых мы говорим о C#.
А во-вторых, 400 тыщ скриптов? Рили? Они пишут индусский код, в дополнение для каждого слова создают отдельный скрипт???
Ну значит это поделие входит в 5%, очевидно же. В каком ещё проекте может понадобиться 400 тыщ(!!!) скриптов? Что это за сюр?
Этот убогий пример никак не опровергает мнение о том, что C# на 95% хватит для описания поведения почти любой игры. Особенно в свете того, что бутылочное горлышко чаще GPU, а процессорные ядра растут как на дрожжах и экономить на спичках и писать на C++ нужно всё меньше и меньше. Нет, конечно какое-нибудь ресурсоёмкое вычисление (например FFT преобразование на CPU) можно вынести в c++ библиотеку, но всё же это редкий исключительный случай.
Для однострочника повторю ещё раз. На C# не надо писать внутренности движка, которые должны быть оптимизированы по максимуму.
Suslik
> что, опять разучились цивилизованно общаться?
С этим однострочным клоуном не возможно общаться иначе.
ps Я никогда и не отличался вежливостью, особенно в присутствии инуендо-подобных.
Kripto289
> А во-вторых, 400 тыщ скриптов?
лол, LOC = lines of code
> Этот убогий пример никак не опровергает мнение о том, что C# на 95% хватит для
> описания поведения почти любой игры.
ты отличаешь игру и сам движок?
innuendo
> лол, LOC = lines of code
lookid
> 400к луа скриптов
Ты опять жопой читаешь?
innuendo
> ты отличаешь игру и сам движок?
Вот реально с тобой что-то не так. Ты от природы идиот, или плевать хотел что пишут и просто набиваешь количество постов?
Сколько раз тебе написать, что C# не используется для движка?
Kripto289
> Для однострочника повторю ещё раз. На C# не надо писать внутренности движка
Kripto289
> C# в контексте геймдева, то его никто не использует для написания
> внутренностей движка
> 400к луа скриптов
это потому что ООП?
Kripto289
Kripto289
> Если мы говорим о C# в контексте геймдева, то его никто не использует для
> написания внутренностей движка, это очевидно
и
> В ue4/unity/cry/godot/... C# покроет 95% задач с лихвой.
неадеквато, ue4/unity/cry это и есть движки с внутренностями :)
Kripto289
> Нет не допустим. С каких пор более дружелюбный и читаемый язык стал
> недостатком?
С каких пор он дружелюбный и читаемый?
Ну, например:
В нём недостаточно взглянуть на сигнатуру функции, чтобы понять, каким способов в неё передаётся объект. Т.е. спецификаторы передачи вроде есть, но их отсутствие ещё ничего не означает.
Константность вроде есть, а на самом деле её нет. Вместо того, чтобы дописать const модификатор на функцию, нужно городить интерфейсы.
Нет стандартной библиотеки контейнеров. Если у тебя старая версия дот нет (как раз в юнити), то половину контейнеров пиши сам. А заодно и алгоритмы к ним, т.к. свободных алгоритмов не завезли.
Да и в целом, язык, максимально приветствующий копипасту, может быть дружелюбным только для индусов. Никакой генерации: там, где можно было написать 1 шаблон, нужно 100500 раз копипастить классы (ибо дженерики не только не поддерживают алиасы и половину необходимых констреинтов вроде isEnum, но и при первой малейшей трудности просто сливаются и предлагают тебе радостно лезть в рефлексию). И всю эту копипасту даже в качестве workaround нельзя завернуть в макрос.
Кроме плюсов есть хорошие современные языки, но до-диез к ним точно не относится.
> С какими недостатками движков вы сталкивались.
Недостатки (+ наверно даже баги), движков местных писателей.
У одного не запускалась релизная демка которую он сам же и построил.
У другого в коде был настроен линукс, виндовс тоже есть но на винде код строится как линукс.
У другого только видимо для 64 бита и при этом он не предупреждает препроцессором что движок только для 64 бита.
У ещё одного всё на симейках. Неиметь visual studio проекта или не генерировать эти проекты - не уровень движка для большой аудитории. Тоже самое относится к urho3d
У unigine нет крутилки для настройки качества графики
У хрюнити одни и те же баги и ошибки всплывают периодически, причем в одном обновлении все нормально работает, в следующем обновлении уже кто то из их горе программистов создает баг или ошибку, его правят в следующем обновлении, потом может какое то кол-во обновлений работать нормально и потом опять этот же баг, в следующем обновлении они его снова правят, все это проверено на не изменяющемся проекте, баги и ошибки эти могут мелкими и не критичными или критичными, причем я говорю о версии LTS у них.
pahaa
> С каких пор он дружелюбный
С таких, что просыпаясь ночью ты знаешь где сейчас находится указатель.
pahaa
> и читаемый?
C++ код выглядит так, как будто при его написании рассыпали знаки препинания и символы.
Вот тебе исследования читаемости кода c# vs c++
https://thesai.org/Downloads/Volume11No3/Paper_75-Code_Readabilit… Languages.pdf
pahaa
> Нет стандартной библиотеки контейнеров. Если у тебя старая версия дот нет (как
> раз в юнити), то половину контейнеров пиши сам. А заодно и алгоритмы к ним,
> т.к. свободных алгоритмов не завезли.
В юнити уже лет 5 как используют последние версии C#.
pahaa
> Нет стандартной библиотеки контейнеров. Если у тебя старая версия дот нет (как
> раз в юнити), то половину контейнеров пиши сам. А заодно и алгоритмы к ним,
> т.к. свободных алгоритмов не завезли.
> Да и в целом, язык, максимально приветствующий копипасту, может быть
> дружелюбным только для индусов. Никакой генерации: там, где можно было написать
> 1 шаблон, нужно 100500 раз копипастить классы (ибо дженерики не только не
> поддерживают алиасы и половину необходимых констреинтов вроде isEnum, но и при
> первой малейшей трудности просто сливаются и предлагают тебе радостно лезть в
> рефлексию). И всю эту копипасту даже в качестве workaround нельзя завернуть в
> макрос.
Я не писал код на плюсах, но сразу видно "легко читаемый" язык и его описание с твоих слов :)
В твоё описание ещё бы добавить пару символов и вообще легкочитаемая красота. контейнер::дженерик->алиас*->workground::IsEnum::copy::copy->copy*::a*::b*