I have created a visual shader add-on for Godot 4! DevBlog!

Hello everyone, welcome back.

Today's post is more like a DevBlog rather than a Tutorial.


Okay so after the unity fiasco, I have tried a lot of different engines and frameworksThen eventually I decided to go with Godot, and I thought about making tutorials for Godot as well because of it being a hot favourite.

I have also been asked to remake the tutorials for Godot. Now I have given it a thought and decided not to because it might be good for channel’s perspective in terms of more videos, more view.

But I truly believed that by remaking the tutorials I won’t be adding anything useful at all. I mean at the core the logic for the effects I have created will remain the same regardless of the platform.

Hence I decided to make Introduction shader video for Godot to get you guys up to the speed.

Also at this time I have noticed that there are a lot of nodes missing in visual shader editor for Godot that was available in Unity.

That time I also created meme post that I will do it myself. And I genuinely believed that if I pulled this off, it will be truly a quality of life improvement for the community.



So I have gone to the Godot git repo. Grabbed the code and started messing around. And in no time I was able to compile and build the Engine with the help of super nice documentation.

After that, I started to look at the code and quickly found out the files necessary to add new nodes for visual shader editor. After some head scratching and a revisit to C++ syntax I was up to speed.

Well I know C++ but still had to revisit some of my old works and documentation a lot. But in my defence I would say that I haven’t touched C++ in a long long time, probably 7 - 8 years.

Then I started adding various nodes and in my mind I thought that once I am done I would just open up a Pull request and then my changes will be in the core.

Then I remember a podcast of Ton Roosendal with Andrew Price, in which he said I wanted a software that if I click on it, it should instantly open up rather than waiting some time.

At this point, I investigated a bit. I wanted to know that whether the crusade that I have started is even the right one.

I have joined Godot contributors chat, to confirm my suspicions. And I have proven right, basically Godot needs to be as light weight as possible, only include that things which are absolutely required, remaining things should be add-ons.

Which kind of make sense as well because, thousands of people would come up with millions of ideas and if we add every single one of them in the core engine, it won’t be light weight.

And to be honest, I really like how light weight Godot is. I really don't want to it to be like Unity. Or even worse Unreal.

So what about my git repo? Does my effort gone to waste?

No, not really because I have gained knowledge of how the engine works and I have gained the knowledge to build the custom Godot engine myself.

It is like I have gained access to Pandora box. If I want to make something which is not possible currently, I could write my own logic and make my game with custom engine.

So my efforts have not gone to waste I have gained something, however my crusade for adding various nodes did. But I wanted to provide the quality of life improvement to the community and hence I have decided to make an add-on.

So I quickly created new repository, was able to create custom nodes easily. Again with the help of super nice documentation. However, I have lost the option of C++ and written the add-on in GDscript so I was a bit restricted.

The most obvious difference can be seen in Rotate node.

In my custom engine build, I have created a UV node that rotate the UV based on rotation amount and I have put the control drop down to specify the rotation units, degrees and radians.



However, I was not able to replicate that in my add-on. Only options I had was to make two separate rotate nodes or, have only one node that works with radians, user need to use conversation node to make it work with degrees and I really don't like either of the solutions.

So I end up with extra input to specify the rotation units.



And I have added some 19 nodes that I thought was missing in visual shader. Then finally I have made a nice documentation. Now I have to admit that documenting things was really not my strong point but I tried my best. I have also put the release package which you can download from the git repo.

My submission has also been accepted for asset library so you can browse from Godot engine itself as well.



And with that I have provided the tools to replicate my old unity tutorials in Godot as well. I have some 17 tutorial for shader graph and I think it will be easier with this add-on to replicate them in Godot.

A quick heads up that the skybox series will be difficult because in Godot there is extra sky processor, so you need some tinkering, it won't be 1 to 1 replica with the logic.

Finally the add-on has MIT licence so you can do whatever you want to do with it, even commercially.

That being said, I will say all the best.

I also have DevVlog video for the same, check it out!



Thank you so much for reading!

Comments