/gedg/ Free (as in Gratis) Online Resources and Books
Knowledge is power, and free knowledge is great.
Programming and Architecture
- ECS FAQ: A nice resource to learn about ECS (Entity Component System).
- javidx9's A* Video: Video about the A* path finding algorithm.
- The Unity Tutorial For Complete Beginners:
Tutorial to get your feet wet with Unity.OH NO NO NOOOOO - Wojciech Muła's website: SIMD techniques and tons of technical notes.
Git
- Git Tutorial For Dummies: Solid first video on using git. Less than 20 minutes in length.
- Self-hosting: How to self-host git on your very own server. Here is a list of web interfaces you can try out.
C
- C Builds and Libraries for the Inexperienced: Tutorial made for /agdg/, /chad/, and /gedg/.
- Ginger Bill's Articles on Memory Allocation: Contains C implementations of different kinds of allocators.
- learn-c: Collection of simple and interactive tutorials for the C programming language.
- Untangling Lifetimes: The Arena Allocator: A nice article on linear allocation in C.
Lua
- javidx9's Embedding Lua in C++ video: Video about the Lua C API in a C++ environment. C users can also obviously learn from it. He has a follow-up video here where the topic is coroutines.
- Programming in Lua: Official online book to learn Lua. Lua is great for embedding into software.
Lisp
/g/ has dedicated threads, see (λ) - Lisp General.
Linear Algebra and Spatial Transformations
- 3Blue1Brown's linear algebra series: Babby's first matrix, some nice visualizations of linear algebra concepts.
- 3Blue1Brown's quaternion visualization video: Nice video for visualizing quaternions and 3D rotations.
- Andy Sloane's donut.c: Spinning ASCII donut written in delicious byte sized code.
- Quaternion explanation by Nathan Vegdahl and The Blender Foundation: Segment in the Blender Open Movie Workshop series.
Graphics Programming: Rendering APIs, Shaders, and the GPU
- Acerola's youtube channel
- GPU Gems: Nvidia's free online book containing a large variety of topics such as N-body and fluid simulation, volumetric light scattering, and AES encryption.
- Hash Functions for GPU Rendering: Short article by Nathan Reed.
- Inigo Quilez's Shadertoy page: Includes raymarching, Mike Wazowski, and more.
- Jendrik Illner's website: Website of a 3D programmer. Try subscribing to his "Graphics Programming weekly" to get news in the world of graphics programming.
- The Book of Shaders: Fragment shader guide.
OpenGL API
OpenGL is a great starter API. It is cross-platform unlike Metal and Direct3D, but less work to learn compared to Vulkan. Start with learnopengl; it is the most popular site for this purpose. Unfortunately, this source doesn't cover the niceties offered by the most recent versions of OpenGL. For documentation, refer to the wiki.
There are many game frameworks that abstract over OpenGL. So even if you want to use a framework instead, it is valuable to know OpenGL so you can make tweaks or write your own shaders in GLSL.
- lighthouse3d: Some old but gold OpenGL.
- OpenGL Direct State Access: Many tutorials you'll find, like learnopengl, use what was once considered modern OpenGL. But years have passed and OpenGL 4.5 introduced Direct State Access.
- Song Ho Ahn's website: Well-written notes covering OpenGL and relevant mathematics. Useful for other graphics APIs if you understand the math.
Vulkan API
Start here; it covers the basics of using the API. Know that it is useful, but by no means exhaustive. For documentation, refer to the Khronos Vulkan Registry. The Vulkan specification can be found here (or you can just throw API functions into the search engine of your choice and it will pop up).
- GetIntoGameDev's Vulkan playlist: Video series in C++ that explains the concepts.
- Vulkan Debug Extension: Many tutorials cover the Vulkan debug extension to some extent (writing callbacks), but not entirely. You can also use it to label regions of command or queue API calls, or to name specific Vulkan objects. These features are extremely useful when paired with RenderDoc. Here is an example article that specifically uses command labeling to create "debug scopes".
- Mike Bailey's Vulkan webpage: This webpage has plenty of useful Vulkan notes and resources.
- Sascha Willems' Vulkan examples: A great variety of examples to study which go beyond what you learn in the popular vulkan tutorials online.
Noise
- Improved Perlin Noise: 2002 algorithm by Ken Perlin used for terrain generation. Here is a Java implementation of the algorithm.
- Noise-Based RNG : 2017 GDC Math for Game Programmers talk where Squirrel Eiserloh discusses how RNGs can replace noise functions. An update of the code by Squirrel was later created.
Fluid Simulation
- How to write an Eulerian fluid simulator with 200 lines of code : Concise and effective fluid simulation video by Ten Minute Physics.
- Jamie Wong's WebGL fluid simulation: Fluid simulation explained nicely with good visuals.
General Math and Physics
The things here either don't fit in the other sections or they so largely encapsulate more than one section that putting them there wouldn't do the material justice.
- 3Blue1Brown's differential equation series: Rudimentary look at vector fields, ODEs, and PDEs.
- 3D Math Primer for Graphics and Game Development: Free online book for game math.
- Improved Collision detection and Response by Kasper Faubery: Includes C++ code.
- Inigo Quilez's website : Website by a professional software engineer and graphics programmer.
- Physically based modeling Pixar lecture notes: Lecture notes by Andrew Witkin and David Baraff. Some of the topics include rigid body dynamics, cloth and fur simulation, and differential equations.