Post

Is there anyone reading this who either has experience with, or knows of someone who has experience with, writing your own renderer for godot? The project creation dialogue lets you choose between three renderers, implying I could create a fourth.

32 reposts216 likes

Uhh, I guess probably between a week and a month? Depending on how good the code documentation and separation of concerns in the Godot engine are, how complex I choose to make the renderer, and how much I am able to focus (eg how much the external world and my health allow me to)

A minimal renderer with no shading, but sure, why not. Once you've made a few game engines the fourth or fifth just starts to seem rote? The hard part is integrating with other systems.

Realistically I was planning on doing this slowly over the next year working on and off a couple days at a time. And realistically it's likely a couple days in it will turn out to be Categorically Impossible due to some sort of limitation in Godot which is minor to Godot but major to my use case.

All the engines I've worked on had that linking static, but there's really no reason it can't be dynamic. DX12/GNM/Vulkan are a typical pack I've had to work with, and each would typically have effectively its own renderer around it. With much shared code, sure, but still linked as a library.

1. "In principle, you can replace the graphics component in an OSS game engine", is a different question from "has godot architected their graphics to support 3rd parties doing this in easily?" 2. I agree this is often the case. However, I'm asking for people with specific knowledge of Godot

Imagine I am comfortable with forking Godot/the Godot editor. Assuming I am creating my custom renderer *within a Godot checkout*, does creating a fourth renderer as an alternative to Forward+/Mobile/Compatibility sound viable to you, or are there people who have tried this?

I've seen one or two people say they were going to try it, but they never presented a project/how to/list of issues they had, you know, the useful stuff. It's probably *possible* to extend RenderServer without heavy updates to the Editor, but I'm not sure what minimum feature set is.

I guess if GDExtensions aren't an option, then the question is "is the codebase known to have an adequate separation of concerns that I can alter 'just the renderer part' instead of having to maintain editor-wide patches"?

modularity is p good here; the "rd" low-level render abstr will let you build on top of the vulkan/d3d12 to do what you need, as long as you're comfortable writing shaders for each. probably easier to build 1 level higher, either as custom SceneTree Nodes or custom main loop, w/ RenderingServer

i’ve been having a nice time with bevy in rust, though it has no editor like godot, but getting your own render passes in seems easier

I believe there is an editor in the early stages of development that you can download and build from source… …but I’ve also heard some people have managed to setup and use Godot as a Bevy editor too. Never gave this a shot myself but apparently it’s possible.