Why C# for game engine?

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

OSS projects



But seriously, I cannot even fathom what the actual question here is and how it relates to MonoGame…

I hate to raid on threads but claiming to be an [quote=“Amer_Koleci, post:1, topic:8339”]

And then not knowing the virtues each brings…

Anyway as Kosmonaut (a respectable user here) says, those are the two key points, Performance vs. Rapid Development…

Also do you mean to use MonoGame? Or are you asking in general?

“sigh” If you really did help with SharpDX, don’t you have a preference already?

Or are you looking for some reason which you might have overlooked?

This question baffles me completely…

Welcome to the forums though… :confused:

@kosmonautgames BTW C# is no longer JITTED (Roslyn) or do you mean slow in some other way?

I mean open source, anyway :slight_smile:
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++.

The current situation in 2016/2017 in my view:

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)

1 Like

I wanna say Why not C# to make a game ?

A good algorithm in C# can be faster than a bad one in C++ so…
It is the same kind of/troll question as “C++ vs Java”.

The good language is the one that suits you AND also the “job”. (ie qbasic would not do the job for ex even if you liked it)

You can also use pointers in C# for faster processing, but not on all types, be warned.

C# is RAD, C++ is lower level and thus demands more work and being watchfull about memory leaks.