Message from C, C++ discussions

December 2019

— The definitive answer to that is: it depends


It mostly depends on whenever you wrote your code in a slightly unoptimized way in C++ and write it in a better way in C#, and on if you write it in a way that pleases the .NET runtime your user uses so that it gets nicely vectorized

— But the starting time will, as for it, definitely suffer

— Yeah but I dont think that C# can win against the sse/avx optimized code. But writing c++ dx11 code is just a pain in the ass :P

Message permanent page

— Imagine C# as a worse compiler that C++'s but that always compile for the native CPU you are using, meaning that it may use instructions your C++ compiler may avoid in fear of not being exactly compatible with the architecture

Message permanent page

— This is actually very exactly where well written C# shines. It targets the native architecture of the host that executes, not the minimal architecture that the host can execute

Message permanent page

— .

— Hmm yeah thats true

— Meaning that instead of targeting for example, x86_64, it will target Haswell x86_64 if the game runs on a Haswell CPU

Message permanent page

— From tests runned by a colleague, C++/CLR offers about what you may want as a trade-off of the best of both worlds

Message permanent page

— But I dont know how big the difference would be for example csgo runs on my pc with around 400 fps and is written in c++ (uses slow dx9 tough) I would say in C# it would run around 350 fps all I care are the fps :)

Message permanent page

— And gpu calls are probably much slower because I need a wrapper like SharpDX