I love Godot but I’m working on what is essentially a niche real-time animation engine / simulator of sorts, and I wonder how the rendering performance differs between the two.
I plan on using either Rust or C# and I know what I’m doing so I’m only worried about rendering.
The project in question needs to look close to photorealistic while maintaining over 60 FPS on a mid-end machine and being able to scale down and run well on low-end machines on the lowest graphical setting.
The project will use baked lighting for nearly everything, and will require a low amount of dynamic lights. The few dynamic lights it does require would have to look very convincing however.
There will be a lot of small meshes moving, and potentially lots of bones and armatures.
There is very little around Godot’s graphical performance. The only comparisons and tests we have on YouTube are like a year old and often sloppy inconsistent and unrealistic to what you would actually use in a game (you wouldnt need to spawn 4000 animated bees).
I believe there is currently a bug on Godot’s baked lighting so high quality baked lights are impossible to make, or require a huge amount of ram, can’t remember exactly.
Sounds like you’ve got a specific idea in mind; could you draw up a sample scene in both engines to test? Compare framerates? The project description sounds like a blender competitor, which employs strange optimizations you will not see in a game engine.
I think the best static geometry/lighting test we have is the bistro scene, you could load it up in Unity and Godot
I have 32 GBs of RAM so I would probably be fine, its VRAM I struggle with since I only have 6 GBs.
Making a sample scene in both engines would take a lot of work for this, and I’m afraid I might compare the engines the wrong way (missing some easy fast optimization in one of them that makes the other appear far faster, like the fact Unity doesn’t have auto-LODs but Godot does)
I might try doing it though.
The project in question is less of a Blender clone, and more of an attempt to do what Blender cannot; it’s a general animatronic simulator of sorts, think of something like Chuck E Cheese except digital (*rat animatronic not included).
Because animatronics like those are built with pneumatics, which are pistons of sorts that can only be turned on or off, every movement has to be very repetitive (ex: hand left up, hand right up, head tilt up, head tilt down) and every movement has to either be on or off. Most of the animator’s work comes down to trying to punch in movements for each limb every second they record. Its a different way of animating things, and while I plan on adding a more traditional Blender-like editor, this is something Blender could not achieve without either a fork of Blender or an extremely hard to maintain addon.
The project is also rather unprofessional and I do plan on including game-y features, so that’s why using a game engine would be ideal.
You can see why I’m hesitant to make a test scene, as I would require several very detailed models animating at the same time, with real-time lighting (spotlights are often used in these shows) and a large environment with baked lighting for the map. I would basically end up implementing half of the project in both engines xD
Thank you! very nice description, I think for the graphics tests you will not have to program or implment most anything. I also think it’s actually a fairly basic project from a technical art perspective, most game engines will optimize for this so Unity (or Unreal) will probably win. Especially because I have 32GB of ram and 8GB of VRAM so I think that lightmap bake crash will hit you (if it is still present).
You can download an animation (maybe from mixamo) loop and clone that a few times, it won’t be any more stressful than the style of animation you are aiming for. Try the bistro scene, put some spot lights in, drop the animated models in, watch the framerate in either engine.
As for lightmap size, the issue has been fixed recently by allowing 64 bit image size. It in for 4.3. It shouldn’t be crashes, though maybe there can if it like 32k size.