23 November 2024

Course "Unity Shader Graph: Create Procedural Shaders & Dynamic FX" by GameDev.tv

From now until the end of the year, I’m taking as many courses as I can before fully dedicating myself to my new project. I’m currently focusing on the GameDev.tv courses included in a Humble Bundle pack I recently purchased. These courses are hosted on GameDev.tv’s original platform, although most of them are also available on Udemy. Since I recently finished a shader course in Unity by Penny de Byl, this one seemed like the natural progression.

Unlike Penny de Byl’s course, this one doesn’t implement shaders in code but instead uses Unity’s visual language for shaders, Shader Graph. Shader Graphs still feel confusing to me compared to code, but I have to admit that writing Godot’s shader code feels immensely simpler than Unity’s CG/HLSL. I suspect I’ll stick to code for shaders in Godot, but in Unity, I’ll likely rely on Shader Graphs (begrudgingly).

This course uses several examples to teach you how to work with Shader Graphs. These examples increase in complexity, starting with simple vertex displacement shaders and progressing to a more complex ocean wave effect, with others in between for simulating fire and snow. The fire, snow, and ocean shaders were the most valuable for me, though the snow example was explained in a rather confusing and rushed way, and it was the only one I couldn’t fully get to work.

Overall, the course achieves its goal of helping you overcome any fear of Shader Graphs. However, it suffers from the same issue as many other shader courses: focusing on how to implement specific shaders without explaining why they’re implemented that way. Too often, the course boils down to listing the nodes to deploy and how to connect them. While you can refer to Unity’s (excellent) documentation for each node, the documentation only explains the node’s inputs, outputs, and immediate functionality. It doesn’t provide the broader context or concepts behind them. In this sense, I think Penny de Byl’s course, which I mentioned in my previous review, makes a much greater effort to help you understand the concepts underpinning each shader implementation.

That said, I’ve progressed through the course, and generally, things have worked out. However, I feel like I’ve implemented many of these shaders more by intuition than by certainty. I’m not sure whether that intuition is thanks to the instructor or simply because I’ve taken several courses on the subject and, no matter how clumsy I remain in this discipline, some knowledge always sticks.

What I really liked about this course is its challenge-oriented structure, which I’ve seen in other GameDev.tv courses. It seems to be a hallmark of their teaching approach: explaining certain parts of an example and then, as a challenge, asking you to implement the next section on your own using what you just learned. After a pause, the instructor explains the solution so you can compare your work or see how it was done if you couldn’t figure it out. This dynamic makes the courses very engaging, keeps you interested, and forces you to apply the concepts immediately. It’s incredible how much you learn when you roll up your sleeves. I must admit I miss this approach when taking more traditional courses with a purely lecture-based format.

The course is in English, but the instructor has clear pronunciation, and you can understand him well. Subtitles (in English) are also available in case you need help with any words. Overall, it’s easy to follow.

Is it worth it? I wouldn’t buy it at full price. It seems overpriced to me. However, it might be worth it if you catch one of the frequent sales and get it for €10 or €12, or as part of a broader course bundle.