Hi all,
I’m working on personal game engine and I have native C++ backend supported and also C# version of the engine, now I’m living big dilemma whether to go with C# or complete Native C++ version and maybe extend scripting logic with C# (similar to Unity).
Anyone can help me out why should I choose one or another?
I’m already expert in both C++ and C# and had also contributed on OS projects on github, but also to SharpDX.
I already know exsistence of Xenko or Wave engine as full C# engine.
What about performance?
C# has many problems, if you can - go with c++ if speed is what you need. It is more performant and delivers more stable framerate.
C#/.net is more convenient and has a garbage collector, which makes writing code easier since you don’t need to manually assign memory, but gives framespikes when said gc has to be cleared.
CPU performance in most cases is a bit worse with c# but good enough that it’s not a major drawback.
The big upside of C# is the time you need to write working code, it can be significantly shorter.
But if you are an expert in both you can probably judge for yourself whether that applies to you
I mean open source, anyway
I maybe use monogame and keep track on it for years, i wanted to ask here as monogame is pure C# project and I already know about pro and cons and wanted to hear other people opinions.
Dont wanted to be offensive not off topic stuff, just battle with myself whether to go with C# or C++.
If you want to build a AAA game: you should have a look at UE, full featured and C++
If you want to focus on building a AAA engine, bgfx is the best place to start to me (C++)
If you want an AA game done, Unity will make you productive (C#)
if you are looking for a C++ engine with C# scripting as an alternative to Unity, and you have an adventurous spirit you might want to look at Banchee Engine, promissing but this is still in development.
If you want to learn low level graphics programming or build a beautiful 2D game or 3D that is not too demanding, and have maximum control, Monogame is great for that.
Overall, if you want to build a game, go with C#. If you want to build an engine, go with C++ (but you probably won’t end up building a game)