can someone tell me who already had experience with mobile games in both godot versions which version is better to use for now?
What is the biggest problem making mobile games in godot 4? Is it possible to fix those problems in the future?
I can’t find information on how many mobile devices support gles3 or/and vulkan? Is it more than 90% devices or lower? Does it make sense to make games using only gles3?
And how is tuff to migrate game from godot 3+ to godot 4+ ?
I have just upgraded a 2D mobile game from Godot 3 to 4 & it wasn’t a walk in the park. Most conversion was done automatically via the conversion/upgrade tool, but parts of the game had to be recoded/reconfigured. Especially, in the areas of file access and GPUParticles.
There is also the issue of Vulkan drivers not being available on some older mobile devices, which forces use of the compatibility renderer.
The problem is that Vulkan support on Android 7-8 is pretty broken, and essentially unusable (not just for Godot). You pretty much need Android 9 or later to have a chance of having good Vulkan support (and even then, it will depend on how recent your device’s SoC is).
If you look at other Android apps using Vulkan such as emulators, they strongly recommend a high-end device with a recent Android version for this reason. These tend to have better drivers across the board due to the manufacturer putting more effort into updates.
GLES 3.0 should work well enough on most Android devices by now. However, Godot 3.x’s GLES3 renderer isn’t a good point of comparison with Godot 4.x’s Compatibility rendering method.
Godot 3.x GLES3 was a high-end oriented renderer that happened to run on mobile as well (albeit with poor performance, especially on devices of the time). In Godot 4.x, this role has been filled by the Forward+ and Mobile rendering methods, which use Vulkan (or Direct3D 12/Metal in the future).
Godot 4.x’s Compatibility rendering method is designed for low-end devices such as integrated graphics and mobile. It doesn’t have any features that only work on high-end hardware, and it takes rendering decisions that prioritize performance over quality. In that sense, it’s similar to Godot 3.x’s GLES2 renderer, except it uses GLES 3.0 as a baseline to improve quality and flexibility a bit (e.g. shadow maps are properly filtered out of the box).
PS: Remember that if you create a project and switch its rendering method afterwards using the dropdown in the top-right corner of the editor, its mobile override won’t change automatically. You have to change it manually in the Project Settings.