Devilman писал(а):
88461513SPT не скоро обновится под 1.0. Разрабы (Battlestate Games) включили трансляцию C# кода в C++ (должно повысить производительность), от чего разваливается всё модостроение SPT и простого решения в природе не существует. Модинг в прежнем виде становится попросту невозможен, лишь какие-то ограниченные варианты модифицирования. Так что господа, довольствуемся тем, что есть сейчас.
Инфа непосредственно с дискорда разработчиков SPT.
-C# использует промежуточный язык программирования (Common Intermediate Language - CIL) для выполнения действий в рамках .net платформы, которая в свою очередь является виртуальной машиной. Система сама по себе является эквивалентом java с jvm от microsoft.
-C++ является компилируемым языком программирования
Можно конвертировать C# в C++ и скомпилировать получившееся.
Трансляция C# в C++, это как.
C# себя не важно чувствует в рамках задах highload, потому когда пишут сложные решения часто обращаются к winapi и библиотекам кода написанным на языках программирования ниже по уровню абстракции.
Если использовать C# для хеширования данных на моем CPU алгоритм из .net дает производительность около 10mb/sec. В то время когда winapi - win crypto service с легкостью дает нам производительность более 100mb/sec.
При этом CPU load в первом случае 100% и 10mb/sec, во втором 1-3% CPU load и 100mb/sec+.
В защиту C# могу отметить возможность использования win crypto service без сложных манипуляций.
В данном случае возникает только закономерный вопрос, а зачем те же алгоритмы в рамках .net работающие медленнее?
Если приходится использоваться winapi.
C# это штука в некотором смысле придуманная с уклоном в web. Потому все что касается .net работает в виртуальной машине со всеми вытекающими.
Но! Безопасно.
В том же unity используется C# для описания игровой логики.
click - score = score + x;
Может быть что то по сложнее чуть.
На этом C# там заканчивается.
Дальше начинается directx для отображения графики, сама программная реализация физической модели скорее всего описана на C++, точно не знаю, но скорее всего, ООП удобно для игр.
Там C# естественно не используется в силу высокой вычислительной нагрузки, нужны более эффективные решения.
Потому если в игре на unity слишком сложная игровая логика, которую люди думают описать на C#.
В какой то момент это может стать не самой замечательной идеей.
Большой объем потребляемой памяти, низкая производительность .net платформы на фоне компилируемых решений.
Unity системные требования
Windows: Windows 10 version 21H1 or newer
В windows 10 .net встроен.
Потому я не уверен что там что то даже конвертируется и компилируется.
Хотя возможно что в unity используется что то для создания приложения не зависимых от .net, но это не точно.
Если нет, unity подойдет для простеньких игр.
Хотя порой сложно описать термин "простенькие".
Даже при таком условии могут быть весьма солидные игры.
Сложно представить себе игровую логику которая из себя бы представляла задачу с высокой вычислительной нагрузкой.
Даже если взять какой нибудь rimworld.... оооо вся его логика не очень то и задача с высокой вычислительной нагрузкой по современным меркам.
Хотя математики там хватает. C# в данном случае может быть удобным решением для построения сложной конструкции с логической точки зрения.
Самих вычислений там хватает, но я не уверен что это задача из области highload.
Сложно сравнить rimworld с какими нибудь 3 миллиардами клиентов пытающихся подключиться к серверу.
Потому возможно там все написано на C#, за исключением некоторых нюансов.
Генератор случайных чисел как мне кажется точно не на C#.
Слишком быстро работает для C#.
Генерация мира на C# .net генераторе чисел мне кажется заняла бы приличное количество времени.
Потому в определение "простенькие игры" может попасть rimworld, хотя это очень сложная игра.
Где то пограничное состояние, между использованием базового unity, но уже при наличии некоторых вещей не из unity, но еще не много, скорее всего только генератор случайных чисел.
Игровая логика и системы слегка выходящие за возможности c# и unity.
Будем мы делать сложнее и нам нужны более производительные решения для реализации игровой логики, стоит разобраться самим.
Что вы там придумали и навыдумывали.
Что касательно Escape from Tarkov.
Весьма много говорящий комментарий в Steam.
""Но игра же еще в стадии разработки" - отмазка которая работала все эти годы, но внезапно с релизом ничего не изменилось."
Весьма стандартный порой финал проекта с ярлыком "в разработке".
Положительных обзоров: 37% - Обзоров на всех языках: 6 340 - В основном отрицательные
Escape from Duckov похоже наше все