Hello. I'm with a small company using Unity. I argued that we should move away from Unity to an engine that has similar features but offers C++ scripting capability. Thus searching among game engines I found Godot. Looking for tutorials and capabilities on YouTube, at first it didn't look like a match for Unity, not by a long shot. Then I read this and it completely changed my perspective. So I decided to go forward and now I can pretty much say I left Unity for Godot. Now I'm willing to invest time, effort and other resources to make it my established game engine and I want that the company I'm with, to adopt it too. I know Godot may or may not not be suitable for medium to large projects but pushing is what makes progress.
So what I'm interested in is ways to squeeze the last drop of performance out of Godot. Thus I'm still spending time on researching about Godot performance as I'm spending on actually learning it.
Graphics-wise what I already know is general rules pertaining to any game engine: Keep geometry small Keep light number small (in forward rendering) Use mesh LOD Use mipmapping Use texture compression where possible Reuse textures (for memory reasons) * Use atlases (for faster accessing)
Unity and Unreal have these internal auto-optimizations and also other means for the user to optimize further and I wonder whether Godot has similar features. I'm talking about: Dynamic and static draw call batching (Unity). Basically it "combines" objects sharing the same material and issues a single draw call for several of them. Some is automatic, some user deciding. Merging actors (Unreal). Basically give the user the possibility to merge geometry of multiple objects into one. Static GI (baked)(Unity, Unreal). I didn't catch how Godot does GI but I tend to think it does it dynamically only. For static GI, I'm thinking the user could perhaps use baked GI textures as albedos? Instancing. This I know that Godot has it too and I think it's automatic (?).
With these features, additional tips are possible with other engines (which do also apply to Godot?): Reuse materials (for reducing draw calls) Reuse shaders (for reducing shader switches)
What tips and tricks do you recommend that are specific or not to Godot? Please share your expertise or your 2 cents - anything is welcome.