This is the testing Godot forums! All forum posts unique to this forum will be deleted! Please use the main forums here for any posts you want to keep. All forum rules still apply.

Hi - about Vulkan rendering . .

I'm new to Godot, and I don't understand Vulkan . . When I start up Godot does it automatically use Vulkan, and do I have to do anything to sort of change it, if I just want to make a normal 3D game . . I'm very fascinated by it, and that it can port to both Windows and Linux, so games can be made for both systems, more easily . .

Does Godot right now use OpenGL as default, or has it moved completely to Vulkan as a standard, and do I have to do anything as a user, of Godot, to enable it, or can I just make games, instead . .?


  • wombatstampedewombatstampede Posts: 171Member
    edited November 2019

    The current version (3.1.1) and the upcoming version 3.2 don't support vulkan. Instead they support GLES2 and GLES3. (OpenGL)
    Vulkan is being worked on and will be available in version 4.

    But you can now start making games in Godot with GLES3 and be able to port your project over to version 4 and Vulkan when it is ready. (Maybe two step, first port to Version 4 and GLES3 and then switch to Vulkan)

    The main developers said that they try to avoid breaking changes in Version 4 as much as possible. This means that you hopefully don't have THAT much work when switching from 3 to 4.

    You can also use GLES2, especially if you want to support a wider range of hardware and keep requirements low. GLES2 will stay supported in Version 4.

    Generally, renderers can be switched for a project but there are some caveats. For example you usually can switch most projects from GLES2 to GLES3. But GLES3 has some features which are not supported in GLES2 and won't work when you switch a project back from GLES3 to GLES2. An example are Particles. You'd have to use CPUParticles in GLES2 projects instead. CPUParticles also work in GLES3 but are less performant than "Particles".

    So basically Godot is just a Game Engine. And theoretically you wouldn't have to bother much about render Engines.

    Practically, it won't hurt to think about your game requirements before you start.

    What I'd say:

    GLES2: Not THAT high fidelity
    Wide (Casual) Audience (Notebooks, computers without separate graphics cards, slower CPUs)
    or HTML5 (Browser) targeted
    or (also) older mobile devices

    GLES3: best graphics fidelity, most possibilities
    Gamer Audience (Gaming Notebooks, PCs with - not too slow - graphics cards, newer MACs/Macbooks)
    not all mobile devices (Some android devices fail with GLES3, many apple iOS devices will work with GLES3 for now)

  • SIsilicon28SIsilicon28 Posts: 693Moderator
    edited November 2019

    The Vulkan rendering backend isn't ready until Godot 4.0. Right now the default backend is OpenGL ES 3.0. The type of rendering backend should matter to you as it's one of the factors that determine:

    A: How many people can play your game.
    B: How advanced your rendering features are.

    For example, let's say you stuck to the option GLES 3.0. Right now this allows features such as Subsurface scattering, tone mapping, GPU particles and the likes. These are very useful rendering features, but it also means a lot of mobile users can't play the game as there are still a lot of devices that are stuck at GLES 2.0. It's best to use said backend on web games anyway for the same reason.

    So with Vulkan, there will likely be more rendering features than what GLES 3.0 currently provides, but the number people that can play the game will be reduced as there are less computers that support Vulkan than there are GLES 3.0.

    So really it's a trade-off between features and accessibility. Your call.

Sign In or Register to comment.