These tutorials teach you about C# and shader programming for Unity. They build on one another, introducing new programming concepts, math, algorithms, and Unity features. They're useful to both novice and experienced developers.

Your support makes these tutorials possible! If you like them and want to see more, please become my patron, via Patreon . You can also make a one-time donation .

Tutorials

There are multiple tutorial sections. You don't need to work through these sequentially, but some do build on each others. The Basics section lays the foundation for working with Unity and C# programming. The Rendering section covers the fundamentals of shader programming, followed by the Advanced Rendering tutorials.

Some tutorials are quite old. You will recognize them, because they have an obviously older page layout. Most tutorial are also created with Unity versions older than 2019 LTS, so the screenshots show an older editor UI, but they still work fine.

Basics These tutorials provide an introduction to working with Unity.

Movement A series about controlling the movement of a character.

Object Management A series of tutorials that deal with creating, keeping track of, saving, and loading objects.

Tower Defense A series about creating a simple grid-based tower defense game.

Flow A collection of tutorials that cover the creation of flow effects, like water surfaces.

Mesh Basics An introduction to procedural meshes. From a simple grid to deformable balls.

Scriptable Render Pipeline A collection of tutorials that cover the scriptable render pipeline. For Unity 2018.

Rendering A series about understanding Unity's default rendering pipeline. How a mesh turns into pixels that look like real objects.

Advanced Rendering These are tutorials covering more complex or specialized rendering techniques, going beyond Unity's standard shaders. They build on the work done in the Rendering series.

Hex Map A series about hexagon maps. Lots of strategy games use them.

Pseudorandom Noise And old series about generating and using pseudorandom noise.

Marching Squares An old series about drawing and reconstructing shapes using a 2D grid. Why not Marching Cubes? Because the concepts are the same for both 2D and 3D, and dealing with two dimensions is already complex enough.