Hello there. It's a bad topic, but I'm asking particular things which bother me, so hope to get real help here. First of all, I'm interested in opinion of very experienced users/programmers of Unity (and even better if you have long time Unreal experience as potential alternative). Have no experience with both engines and not very interested to spent half year deep learning one of them to find out that just wasted time. The game will be similar to classic first/third person 3d games (like Alice Madness Returns, Hellblade or something like that) with me as the only one programmer and developer who hire 3d artists to make things faster or to make something I cant do myself as fast as they do. Because of my specialisation, want to make game look as much realistic as I can with not much content, no stunning physics or other fancy stuff.
My skills:
Mostly wasted time as graphics programmer last two decades, helped indies to improve graphics or modify existing games as hobby, but also have big experience with coding engines (c++) and feel okay with any parts of them (but prefer to avoid because of complexity learning and working someones code). I dont know C#, but guess will be fine with it. Have experience with visual scripting in engines (Virtools and Quest3D) and like it.
What is required and what bother me:
Working with visual scripting (blueprints) most likely slower process compared to native programming, even with C# which I dont know, so Im not sure if complex project will not become way more time consuming when using Unreal instead of Unity. Also from what I can see in tutorials, Blueprints of Unreal are not perfect and intuitive at first sight, they are mostly very tiny ops, so to make something serious you need to build hell many elements. So, how is this on practice for big projects, can it be that using blueprints be equal or faster development process over C# scripts? My friend told me that Unreal developers cant normally share their code and use screenshots for that, so I fear maybe there is no internal ways to copy-paste some blueprints from one object script to another and require do the same things again and again, right?
I know that most engines with access to sources can be improved a lot by graphics, but its all about time, is it worth such investiment or not. Unreal have good prebuild graphics, but not okay for me, need to write my own screen space ao, change its blending code to much more complicated, better implement some other realtime ambient and indirect lighting features, make other tonemapping and eye adaptation, change temporal aa or disable it. In Unity not just these things, but some other need to be done from scratch and as I understood from googling, you basically define render pipeline flow there, if want to make any good changes, but without source code to do this in C# make me feel it cant work fast if you try to handle more than thousand visible objects on screen. Am I correct about this and Unity have very negative performance impact when trying to customize renderer (without making own .dll of course)?
Texture streaming in Unity do not exist, so is this possible to develop in good way with no noticable stuttering using only included C# code? Is that easy and will work globally or something very tricky and add huge amount of time to game making? To bother with splitting up levels to small scenes and load them is much more work to do when no good streaming is available. In Unreal (not sure, but from what I can see in games), streaming is very weird, it preload low level mips slowly to make framerate smooth and its often much worse than get some delay and display full resolution, so Im not happy with that, but at least by memory requirements its way better than default Unity.
Is Unreal have any simplifications for utilizing save/load game feature or like in Unity, it must be done entirely by programmer hands?
Is it really true that projects in Unity rarely broke when migrating to new version, while Unreal can destroy all the job you have done, so for safety reasons you should stick to some build? if so, Unreal sounds not very good thing, unless you have army of coders who can fix all the bugs in huge engine.
In general, is Unity for complex projects is good enough out of the box by features or require to program too many things which bring up when you start to work on game? Excluding purchasable assets with .dll files in them (prefer to avoid this for multiplatform). I already have bad experience of starting development using other engines and spending half year for each to try write missing, but required code for making game and its not acceptable for me, few months is okay, but no more. So how is it in Unity for usual complex 3d first/third person single player games like shooters or action rpg?
Thanks