C# and Shader Tutorials
for the Unity Engine
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.
Become My Patron
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 layout. Other tutorials are newer, but were made with Unity 5. I'm working my way through upgrading them. The newer tutorials mention what version they have been made with.
Basics
These tutorials provide an introduction to working with C# in Unity.
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.
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.
- Creating a Hexagonal Grid
- Blending Cell Colors
- Elevation and Terraces
- Irregularity
- Larger Maps
- Rivers
- Roads
- Water
- Terrain Features
- Walls
- More Features
- Saving and Loading
- Managing Maps
- Terrain Textures
- Distances
- Pathfinding
- Limited Movement
- Units
- Animating Movement
- Fog of War
- Exploration
- Advanced Vision
- Generating Land
- Regions and Erosion
- Water Cycle
- Biomes and Rivers
- Wrapping
Noise
Procedural noise is useful for lots of things. This series shows how to make your own value, Perlin, and simplex noise, including their derivatives.
Marching Squares
A 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.
Games
Tutorials that can be considered small games.
Older Tutorials
These tutorials are very old. They work for Unity 4 but haven't been updated for later versions. They might still have value, but you'll have to make adjustments yourself. The exception is Curves and Splines. I will upgrade that tutorial after I finish upgrading the Basics series.
Questions & Answers
Have a question? Here are a few common ones. Click or touch the questions to see the answers. You can also contact me in various ways.