Hacker News new | ask | show | jobs
by Fred27 75 days ago
As a primarily C# developer who has done some game engine work, I recently gave Godot a go for licensing reasons. Apart from some quirkiness I'm fairly impressed. Much nicer C# support compared to Unity. I've done a fair bit of Unreal C++ but to be honest unless you really need the performance that's just too much hard work.

Having said that getting the code working properly with a nice 3D UI is my priority, not having a slick game with some code doing some mundane stuff in the background.

2 comments

I can't comment on Godot or Unity which both use primarily C#.

Unreal engine which uses C++ primarily, has the problem that it's a humongous mostly legacy code macro heavy system .

If anything being proficient in C++ before you start is harmful because of the puckering of orifices when you hear about it's mostly quirky powerful macros all the way down.

Never worked with it myself but I've always heard the people who do describe it as Unreal c++ because to them it's completely different than regular c++ and this must be one of the reasons why
That's pretty much correct. I kind of have to switch to "unreal c++" context whenever I'm working in it. They have their own standard library etc
Don't forget if you make the editor access a nullptr it'll probably crash and take out any unsaved changes to blueprints!
I agree. I came to Unreal with only a basic level of C++. Having Unreal handle memory management for you was useful, but I can imagine the chaos an Unreal-only C++ developer might cause when unleashed on another C++ codebase.
Godot uses C++, and even though there is a C# version, most folks either use GDScript, or GDextension with C++, Rust.
I don't want to design anything in any UI.

I want to use a game engine as a library.

I'm curious, as a primarily C# developer, how do you feel about Godot, in this respect?

It's 100% completely usable for that purpose. To the point where I'm internally using Godot as a backend for my engine, using it for rendering/system events.

It's also really good for a hybrid setup where you use their editor to design scenes, and then you can load/instantiate the scenes at runtime how/when you want. Or, just programmatically creates scenes yourself from code. You can really do whatever you want.

You can do everything from C#, rider launches the player only for debugging if you want. The only thing you probably do want to use the UI for is for... building UIs.
> I don't want to design anything in any UI.

I had the same need and found Raylib_cs suit very well for that

Probably MonoGame is the best option for your case then