So I dunno where to ask advice about this nowadays, but I'm getting into Lemmy and here seemed as good as anywhere :).
Anyone here have advice for a total noob game dev, but pretty experienced programmer, on what engine they should learn first? I'm not looking to do anything too serious, just want to try my hands at making some stuff for fun in my spare time. These days I mainly write Python code but I wrote C++ for ten years.
So I guess I'm looking at Unity and Unreal, seems like Unreal is C++ and Unity is C#, so I guess that biases me to Unreal, but then it seems that Unity is quite a bit more popular among smaller devs? People praise iteration times and simpler usage etc? Does that shift the scales even though I never wrote a line of C# in my life? I'm sure I can learn it just fine but just trying to minimise effort.
I did however see people saying that Unreal scales better, handles larger worlds better etc. Which might be a factor because the first thing I want to experiment with is some kind of blend of lowish-res whole Earth map data with some procedural generation of the fine details (not exactly trying to recreate Earth accurately, I just think real terrain data would be a good starting point for interesting terrain). So maybe Unreal might handle that sort of thing better? I have no idea though really :).
Godot uses a language which is similar to Python, GDScript. I avoided Godot for a long time because I thought it was some sort of kiddy language meant for children to make games. I was wrong
GDScript is actually very robust. It uses a familiar syntax to python, and it is built using C++
You can also use C# and C++ if you don't want to use GDScript. I use C# for most of my actual game logic, and then use GDScript for stuff where performance isn't an issue or for something that only takes a couple minutes to write.
Godot also has a shader language similar to HLSL, and it's a robust option, too. It has built in networking, exports to Android very easily.
You can use libraries really easily, so if you have a C# or C++library you want to use, it's super simple.
I recommend you at least try it, the whole engine is really small in comparison to Unity or Unreal and there is no installation. You just download it and run the exe
Godot also runs on Linux, since that's important to you.
From my very limited Python experience, I'd say GDScript manages to avoid some of it's annoying parts while still being easy to work with. It also supports typed variables which is pretty cool, I know Python has type hints but idk if they're enforced or have any performance benefits like in GDScript.
It doesn't matter too much which engine you pick up.
If you feel like writing in c++ and can deal with unreals longer compile times go for it.
If you want to write in c# go with unity if you want lots of documentation and tutorials. Go with godot if you want something open source.
The skills you'll pick up with any choice transfer very easily to another choice. Don't stress too much. There are no wrong choices.
Edit. On whether picking up c# is easy if you know c++. That's where I came from too and there was like. No learning curve at all. It will feel very easy and natural.
Edit2. On which one scales better for large worlds. None and all of them. It's entirely up to you to make your code efficient for large scale projects. No engine will help you there. They all have the basic tools for you to optimize your code though.
Tldr: literally doesn't matter which one you pick. If you want a stranger to pick for you. Go with godot. Can't go wrong with open source and quick iteration times.
Thanks! That's comforting to hear. I hadn't heard of godot but it does sound pretty cool, I'll check it out! Are any of these more suited to Linux development than others? I haven't used Windows in like a decade* and kind of can't be assed with it unless I really have to :). I tried installing Unreal 4 on my underpowered laptop running Ubuntu a few years back, and I did get it working but it was kind of a drag, maybe they've tightened up the Linux version since then though...
*Ok l lie, my work machine is Windows but I kind of forget that it is because i immediately log in to Linux machines to do all my actual work aside from writing emails and video chatting ;).
Godot, being open source, runs perfectly on Linux, I've been using it for years with no issues. Just install from your package manager and boom.
I believe the other two work but I haven't tried them. Apparently you can get Unreal through EpicAssetManager or something, otherwise you may have to compile it yourself. People say Unity crashes often on Linux but idk how common that is really, could just be selection bias.