Welcome to Awesome-Millie!
This is a curated collection of useful links and resources, gathered over the course of various projects I've assigned to my students. You'll find a wide range of topics covered here, from advanced C++ concepts, game engine development, to shader programming and mathematics for game development.
I hope this collection will be as helpful to others as it has been for my students. Whether you're learning, teaching, or just exploring new topics, feel free to dive in and find something useful.
Enjoy, and happy coding! ๐
- ๐ป Advanced C++ Concepts
- ๐ฎ Game Engine Development
- ๐ผ๏ธ SFML Resources
- ๐จ Graphics Programming
- โ Maths
- CppReference on Templates โ In-depth reference on templates, one of the most powerful features in C++.
- Templates in C++ allow you to write generic functions and classes that can operate with any data type. They are particularly useful for creating reusable code components.
- enable_if โ Documentation on
enable_if
, used for SFINAE (Substitution Failure Is Not An Error).- SFINAE is a C++ feature used in template programming that allows the compiler to choose the correct function template overload by checking if a certain condition is true.
- Type traits โ A reference for type traits, essential tools in modern C++ template programming.
- SFINAE โ Detailed explanation of SFINAE in C++, used in advanced template programming.
- static_cast<> โ Documentation on
static_cast
, used for explicit type conversions in C++.
- Visual list of containers โ A visual guide to all standard containers in C++.
- std::vector tutorial โ A detailed tutorial on how to use
std::vector
, the most common container in C++. - std::vector cheat sheet โ A concise cheat sheet for using
std::vector
. - CppReference on std::vector โ Official reference documentation for
std::vector
.
- CppReference on Operators โ Reference on operator overloading in C++.
- Arithmetic Operators โ Explanation of how to overload arithmetic operators in C++.
- Pointer tutorial โ A visual guide to understanding pointers, an essential concept in C++ programming.
- Virtual Functions โ Learn about virtual functions in C++ and how they are used for polymorphism.
- Virtual functions allow you to override functions in derived classes and are a cornerstone of runtime polymorphism in C++.
- Abstract Classes โ Explanation of abstract classes, which cannot be instantiated and are meant to be used as base classes.
- Rule of 3/5/0 โ A guide to understanding constructors and destructors in C++.
- Creating Unit Test Projects โ A guide to setting up unit test projects in Visual Studio.
- Unit Test Cookbook โ A cookbook of useful examples for writing unit tests in C++.
- Iterator Library โ Official documentation on iterators, which allow you to traverse containers in C++.
- Vulkan tutorial โ A beginner-friendly guide to Vulkan, one of the most popular modern graphics APIs.
- DX12 tutorial โ Learn DirectX 12 through comprehensive tutorials.
- DX11 tutorial โ A set of tutorials for working with DirectX 11.
- OpenGL tutorial โ A structured guide to learning OpenGL for real-time rendering.
- Alternative OpenGL tutorial โ Another useful source to learn OpenGL from scratch.
- Decoder Ring (API object translation) โ A comparison of how objects and functions translate between Vulkan and other graphics APIs.
- IMGUI Debug GUI โ A powerful tool for building debug UIs in game engines, especially for rendering applications.
- Vulkan in 30 minutes โ A crash course on Vulkan, aimed at providing a high-level understanding of the API.
- Vulkan Reference Guide โ A detailed reference manual for Vulkan 1.1.
- Vulkan Documentation โ The official documentation of the Vulkan API.
- SIGGRAPH Presentation โ A presentation on Vulkan from the SIGGRAPH conference, which offers insights into its practical use.
- Microsoft DirectX 12 Documentation โ The official guide to getting started with DirectX 12.
- DirectX Toolkit โ A toolkit for DirectX 12 that simplifies common tasks like loading textures and drawing primitives.
- DirectX Maths library โ Documentation on DirectXMath, which provides math functions for game programming.
- GLFW Migration 2.X to 3.X โ A guide for developers who need to migrate from older versions of GLFW to version 3.x.
- SFML website โ Official SFML website.
- SFML Tutorials โ Tutorials to get started with SFML.
- SFML + Visual Studio Tutorial โ A tutorial on setting up SFML with Visual Studio.
- SFML Documentation โ Official documentation for SFML 2.6.
- Rectangle Collisions โ Learn about handling rectangle collisions in SFML, which can be useful for detecting mouse clicks on UI elements.
- Forward Declarations Explanation โ A Stack Overflow post explaining what forward declarations are and why they are useful in C++.
- CppReference on Forward Declarations โ Official documentation for forward declarations in C++.
- A forward declaration allows you to declare the existence of a class or function before you define it. This is useful in reducing compile-time dependencies in C++.
- Unity Shaders Documentation โ A complete guide to understanding and writing shaders in Unity.
- Writing Shaders in Unity โ A tutorial on creating custom shaders using Unity's ShaderLab.
- ShaderLab Reference โ The reference documentation for Unity's ShaderLab language.
- HLSL / CG Documentation โ Learn about High-Level Shader Language (HLSL) and Cg in Unity.
- GLSL Documentation โ Guide on using GLSL shaders in Unity.
- UE5 Shaders / Graphics Pipeline โ The official guide to working with shaders and the graphics pipeline in Unreal Engine 5.
- ShaderGraph Documentation โ Learn to create shaders visually using Unityโs ShaderGraph.
- Nvidia CG Documentation โ Comprehensive documentation for CG, Nvidiaโs shading language.
- HLSL Documentation โ Learn to write HLSL shaders, used across DirectX.
- Matrix Multiplication Visual Tool โ A great tool to visually understand how matrix multiplication works.
- Math Snippets โ A collection of useful math snippets for programming, covering various topics from basic operations to more complex formulas.
- Freya Holmรฉr's YouTube Channel โ A series of videos that explain mathematical concepts visually, with game programming examples, often with Unity examples.
- Gimbal Lock Explanation โ A detailed explanation of Gimbal Lock, a problem that arises in 3D rotations.