Hacker News new | past | comments | ask | show | jobs | submit login
Godot Shaders: View and Share Shaders for Godot (godotshaders.com)
222 points by bananaoomarang on Feb 4, 2021 | hide | past | favorite | 41 comments



I'm posting blind, I haven't visited the site (yet), but can I say that I'm super pleased with more Godot coverage? I am. Godot is so underrated. It needs more content coverage, more tutorials, more guides - like Unity has - because it's awesome, easy, relatively simple and is just pleasant to work with.

Godot + Blender + Krita = win people


Godot is a great engine, no doubt about it. I've played around with it extensively in the past. I think it's relative obscurity is due to the fact that it mainly caters to hobbyists and doesn't invest as much into tooling for people actually trying to ship games (especially the 3D workflows). I think in time it will get there because the godot "everything is a scene" workflow is the most pleasurable way I've ever built a game. It's such a powerful and ergonomic workflow that I was extremely productive and actually enjoyed building the game. However for now it doesn't compete with unreal/unity due to death by a thousand papercuts. I also question the decisions to try to compete with them on a graphic fidelity level but it's probably a decent move for the long term. Im hopeful for the future of godot but if I want to ship a 3d game today I would not use godot.


The more serious my Godot projects became, the more I became aware of the limitations. Even something as simple as an outline shader for a 3D object can only be implemented in a relatively hacky way.

Nonetheless, I love using it. I'm a huge fan of Godot and donate to them every year. The fact the entire engine is a 30mb download is truely amazing. The editor is snappy and is a breath of fresh air in the world of bloated electron apps



This was a shockingly good read. Thank you very much :)


I completely agree. The limitations though are something you’ll hit in Unity or Unreal as well, just at a different spot.

Each engine has limitations to what they provide. It’s up to you to extend. Godot being open source you can easily extend. Unity/Unreal you’ll be writing some code as scripts to attach to overcome those limitations you encounter.

No game engine is limitless.


Unreal engine has shared source and accepts PRs, so you could potentially edit the source code to fix issues as well.


Hopefully they give you a discount on the royalties if you improve their engine for them!


very true. If your fix is something that would be useful to others, PR away!


Every engine I've used has some really good stuff and some surprising limitations.

For Frostbite... If you've worked with it you know. Probably my least favourite.

In UE4 I love the environment but can't get over how cumbersome some aspects of graphics programming are. Especially how difficult it is to work with compute shaders.

For Unity I really like how smooth the workflow is, especially for shader programming. Having used it for a little more than a year now I'm really surprised how nice it is to work with. I barely even mind it being primarily C#.


From what I've seen on computer graphics, most of the algorithms are tricks and hacks... I think that in the end a good engine should acknowledge that it is hard to support everything, so just having a hackable interface is good enough.


This. Same sentiment here. Although one of the greatest strengths in the engine is the fact that it's open source, and extremely easy to build.

Any limitation I've come across I've been able to modify or extend with relative ease.


I'm a graphics programmer who's been happily surprised by how easy shaders are to write in Unity.

Could you elaborate a bit on the problem with writing such simple effects in Godot?


Firstly, the Visual Shader GUI in Godot has pretty series issues on my Macbook. Secondly, it's impossible to do any effects with a stencil shader [1].

Most of the useful post-processing effects (bloom, depth-of-field etc) are implemented out of the box, so this also means that there isn't a way (AFAIK) to implement post-processing effects yourself.

Godot also only has simplex noise implemented out of the box, so you need to jump through some hoops to get anything else included (which is super useful in shaders).

[1] also has some images of the way to implement outline shaders in Godot, which is to move the faces of object out by a scaling factor and then render them as unshaded, which leaves some gnarly artifacts at the corners.

[1] https://github.com/godotengine/godot/issues/23721


The more serious my Godot projects became, the more I became aware of the limitations.

How fundamental would you say the limitations are? Is it just a matter of progress? and maturity?


I gave up on Godot three years ago because I couldn't do something very simple: set the origin correctly on 2D sprites so that they correctly show above things behind them. There is a setting for it (mentioned in the docs, at them time, for the exact thing I wanted) and it did indeed fix it, but it also made my sprite be drawn offset from where the editor showed it, which was immensely annoying.

I hit a few annoyances like that.

But! Godot has not been standing still and is constantly improving. I haven't had a chance to try it out again since, but I wouldn't be surprised if the issue I hit have been fixed. Its just important to note that it doesn't have the same manpower behind it that Unreal or Unity have and to temper your expectations accordingly. It is a great engine, though, and getting better all the time.

I'm also still very proud of the fact that there's a tiny bit of code I contributed in godot-cpp :)


Maybe it's biased from my personal experience but I feel people overestimate the importance of the engine features for big games. When you do big games, you often write everything yourself

My friend works at a studio who's doing an open world game in Unity and they did : their own terrain system (with their custom tessellation, collision system, etc.), their own LOD system, their own pathfinding algo, their own crowd sim, their own multiplayer sync, etc.

Similarly, this person :

https://www.youtube.com/channel/UCs1njLLfUBCTAfSZ3Q7gq2Q

Did not had to wait for Godot (pun intended) 4.0 to make a very cool terrain, particle and water system.

The part that does really matter is the core rendering engine, and this should improve drastically in Godot 4.0


I gave up and am waiting for 4.0 release when I couldn't reasonably implement foreground transparency around the mouse.


I found a lot of annoying GUI bugs for Mac, last I tried ~1 year ago. Seems like most of the developers use Linux.


> Even something as simple as an outline shader for a 3D object can only be implemented in a relatively hacky way.

Have you tried to do it in Unity? It's also pretty hacky there.


> I also question the decisions to try to compete with them on a graphic fidelity level but it's probably a decent move for the long term.

I always understood this as Linietsky having some very interesting ideas about 3d engines that weren't seen in other ways, and the whole 3d thing being just his curiosity exploring those ideas. And it certainly looks impressive.

I used Godot 2.0 a few years back and madea few toy games. It was very fun to use, but since game dev is not my thing, I left it at the side. Nice to see they've been improving so many things and how it has changed in so many (better) ways!


There was a pleasant news today about Krita and Blender: https://twitter.com/Blender_Cloud/status/1356968817071636482


It really is a match made in heaven. Krita is awesome and amazing software. Blender is, of course, awesome too. I absolutely love the fact that I can sprite something in krita, bring it into blender, add weights and bones and animate it. I can model a thing in blender, uv unwrap it and bring it into Krita, paint a diffuse texture and bring that back into Blender’s shader graph.

Now if only we could get a large library of OSS megascans textures for PBR based workflows I’d be a happy camper.


Godot + Blender + Krita really is a great trio of OSS projects and you are right that Godot seems to slip under the radar a bit. I think the project has made leaps and bounds in the past couple of years and the upcoming 4.0 release also looks to be pretty spectacular, so here's hoping for the future!


The only part Godot is currently lacking in is 3D, but I'm sure it'll come to AAA level in the next few years.


Absolutely. Really it’s only limitation is where the devs spend their time. What would give current godot projects more support while introducing new features.

The hardest part of 3D is the shading pipeline and making that configurable, scriptable, both? in a way that allows artistic freedom and expression.

My core gripe with Unity when it first launched is that you can tell a game was made with it (you can still kinda tell today) as all the games published felt the same in how they ran, played, etc.

Those that make it look unique and give it that polish were the better sellers for sure.

Godot will get there. I spent a long chunk of my career doing a 3D game engine side-project so I get it.

Good news is that with PBR it’s becoming a bit more standardized with how a rendering pipeline works.


Is Godot still using its own Shader language? When I tried it it was a little annoying to use coming from elsewhere.

Tangential - I may just be lucky as I've effectively come the long way round, but I find many if not all of the graphical programming (Like Unreal Materials) systems in this area extremely jarring and an unnecessary context switch away from using my hands to type (and having such joys as version control...).

With Unreal Engine specifically it's a little annoying that I see all these features that I want to use in the engine, but I'm funnelled through these blueprint-first APIs to use them - Just document the C++: I don't like C++ but I've spent a lot of time honing my skills in it, let me use them easily.


Godot shading language is GLSL with some syntax sugar. The nice thing about the Godot visual shader editor is that you can start from nodes, and then open the generated code panel, copy it and continue from there in a code shader.

I think that although Godot doesn't have as much nodes, I like it over unity's or unreal's editor. It doesn't try to be as smart, so you get separate vertex and fragment stages, and you may find issues like getting local coordinates in vertex stage and normalized device coordinates in the fragment stage, instead of world coordinates (like ue4 does). Which may bite you at first, but it is actually nearer to what happens under the hood.


Don't most game engines use their own shader language to some extent? I assume they're all GLSL or HLSL but with some extra syntax catered to game engine needs, though.


This is so cool! I wish I had the time to learn more about this stuff but it's such a huge mountain to climb. Alas I'm already way over subscribed with existing side-projects.

This looks like it has a potential to be a great resource for the Godot community. Nice work!


I'm in a similar boat, but you really can build a "real" game in Godot in an afternoon. I've done it twice, first via a tutorial and again building my own thing while refering to relevant docs and tutorials as I got stuck along the way (in fairness this was more like a day+)

Skip netflix for an evening and see what you can make!


>Skip netflix for an evening and see what you can make!

Hah! Were it that simple. I already have a backlog for my backlog. :D


If you are looking to add some Godot I did this youtube series last year and found it very satisfying + helpful in structuring/building my own stuff https://www.youtube.com/watch?v=mAbG8Oi-SvQ&list=PL9FzW-m48f...


Definitely. I am building a VR game and even trying to get it into the Oculus ecosystem at the moment (even though it's the unlistes App Lab listing and not the official store)


I'll also say I'm loving this, well it did seem a little weird epic games sponsors Godot ( absolutely an attempt to cut in a Unity's market share) , I'm happy they got some funding.

The more engines which exist the more you can find what works for you.


Epic wasn't taking a stab at unity. They believe in putting money behind great projects to push the industry forward.


You really think they did that out of the Goodwill of their hearts? 100% Godot competes with Unity , it doesn't compete with Unreal ( Unreal doesn't make a real attempt to do ,2d).

Unity competes with both.


This is a nice resource but it's starting to get a little crowded with the official asset library (which has a category for shaders) https://godotengine.org/asset-library/asset?category=3, godotmarketplace.com, godotshaders.com, and GDQuest's godot-shaders repo...

I wish people would stick to a single location, especially if it is already open-source and community-maintained.

This interface is nice but I wish it could have been added to the existing market place instead.


My experience using Godot for 2D games ~1.5 years ago was it was mostly enjoyable but there were annoying little bugs in Mac GUI that didn't give me a lot of confidence. The bad part was when it came to 3rd party library integration for mobile, e.g. for ads, tracking, etc. There's not a lot of support in the ecosystem for those, and writing your own wrappers is a big PITA.


It'd be neat to see the shaders running in the browser using Godot's wasm export. But sadly that limits you to OpenGL ES 2, and most shaders seem to need 3.


wanted to comment why not shadertoys but realized that's more demoscene instead of game-oriented effects, yeah i think we need this but kinda hope it uses a generic shader format instead of one tied to a specific engine, or provide translated native shader code by godot's shader engine if that's supported




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: