/gedg/ Free (as in Gratis) Online Resources and Books

Knowledge is power, and free knowledge is great.

who needs sleep?



Programming and Architecture

Git

C

Lua

Lisp

/g/ has dedicated threads, see (λ) - Lisp General.

Linear Algebra and Spatial Transformations

Graphics Programming: Rendering APIs, Shaders, and the GPU

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

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.

Edit
Pub: 02 Apr 2023 16:40 UTC
Edit: 14 Oct 2024 15:01 UTC
Views: 3152