This page lists all sorts of resources I’ve found useful so far. Some of them are free, some requires a subscription. I’ve try to list free alternatives for everything, but some of the paid stuff is really good. The resources will be divided into categories, depending on their main focus, or how I used them. I haven’t looked at all of these thoroughly but I have used something from them.
The problem I have with many C++ tutorials and books is that they feel old and outdated. Even newer ones. Reading or watching some C++ tutorials today feels exactly like reading the books I used when learning C++ back in the late 90s. I never really got past the fundamentals back then, even though I did write a small game in DirectX and a few OpenGL demos with it. I don’t use C/C++ today, but if I start using it again, I’ll probably add some more advanced tutorials to this section.
C++ – TheChernoProject: If you want to get into C++ fast, I think this is a good tutorial. It’s still going on as of this writing, and I’ll prbably watch all of it myself if I ever need to write C++ again. I would say this is not for complete beginners. In fact, I don’t suggest learning C++ as your first language today. Learn another C-style language first if you want to get into C++. If you want to start with C++ for free, I think this is a good place to start.
C++ Language (Cplusplus.com): A general C++ tutorial. Not exactly game dev related, but it’s useful if you want to get into C++, especially if you don’t have much previous programming experience.
C# fundamentals for absolute beginners: There’s no game development in this tutorial, but this is by far the best free C# tutorial I’ve found. It slowly goes through the fundamentals if programming using C#.
Java is a widely used language for everything, and there’s a few good libraries you can use for game development in Java. Java is a good first place to start, espeically if you want to develop for Android. I don’t have any great java tutorials yet for absolute beginners yet, so all suggestions are welcome.
Game programming (TheChernoProject): If you already know some programming and want to write a simple game from the bottom up, without any libraries, this is a good tutorial to watch. It will help if you have previous experience. Even if you are not using Java, you can use some of this. It goes over everything from putting pixels on the screen to colliders, AI and serialization. You may not want to write your own complete game engine, but this gives a good understanding of how some of the things work, even though it’s all in 2D.
Python is a scripting language. used in a lot of applications. There are a few game libraries written for Python, and some useful application also uses Python as a scripting language. If you want to automate things in Blender for example, you’ll have to use Python. I don’t use python much, but know the fundamentals. The language is different from the other languages listed above, but you’ll probably be able to switch to another language if you know Python well. Python focuses on readability, and simple syntax. This makes it easy to get started with (no more forgotten semicolons).
An introduction to interactive programming in Python: This links to the first in a series of courses from Rice university. They run often on Coursera, so you’ll probably be able to take it if you want to. You’ll learn the fundamentals of python, and programming in general. You’ll even write a few simple games. The follow-up courses gets into algorithms and more advanced stuff and is useful if you want to learn some algorithms that you can use in other languages. I felt the later courses got quite dry and math heavy, but there is probably no way around this. I can at least suggest the first two courses while getting started, and if you want to dig deeper, keep going. If you don’t know your math well, expect to have to work on it before completing the later courses.
Unity tutorial – A practical intro to shaders: This links to part one, but you should be able to find part two as well. If you haven’t worked with shaders at all, this can be quite useful.
Makin’ stuff look good: Not pure shader programming, but still useful if you want to get into shader stuff. All is done using unity.
Behavior trees: How they work
If you need an introduction to behavior trees. This is a good article to start with.
Goal Oriented Action planning For A Smarter AI
Another interesting AI article with examples in Unity. There’s also a link in this article if you want to read up on FSMs.