computer systems: a programmer's perspective
custom game engines: a small study
how to make your own game engine and why
make your own game engine
making your own engine: a survey of the landscape
algorithms for modern hardware
solving the right problems
designing and evaluating reusable components
the codepath combinatoric explosion (please excuse the ancap subcontent there)
data structures and invariants
on abstraction - zach tellman
vurtun series of api design posts
Library writing.txt
API Design:Coroutine-APIs.md
api.md
API Design:Builder-APIs.md
minimalist container library in c part 1
minimalist container library in c part 2
untangling lifetimes: the arena allocator (please excuse the ancap subcontent there)
memory subsystem optimizations
anatomy of a task scheduler
doom 3 bfg: multi-threading
bitsquid: task management practical guide
anki: multithreading: threadpool
graphitemaster on fibers
github.com/colrdavidson/workpool
a lock-free, concurrent, generic queue in 32 bits
lockless single producer single consumer bounded queue
a lock-free... linear search?
the world's simplest lock-free hash table
proficient parallel programming
advanced topics in programming languages: a lock-free hash table
task-centric development
think parallel
atomics_for_humans.md
my go-to c++ code for asynchronous work processing on a separate thread
job system 2.0: lock-free work stealing
part 1: basics
part 2: a specialized allocator
part 3: going lock-free
part 4: parallel_for
part 5: dependencies
resource efficient thread pools
post
zig thread pool implementation
intrusive mpsc node-based queue
radix sort
myers diff algorithm
regular expression matching: the virtual machine approach
include binary file with gcc/clang
the quick and practical "msi" hash table
what is the strict aliasing rule and why do we care?
bit twiddling hacks
glob matching can be simple and fast too
onboarding floating-point
engine tech: concurrent world editing
the beauty of bresenham's algorithm
asan manual poisoning
an implementation of david eberly's mesh clipping algorithm
everything you never wanted to know about linker script
a simple hash table
a simple undo system
making video games in 2025 (without an engine)
how to print integers really fast
serialization
how little big planet does serialization
a simple serialization system
simd-friendly algorithms for substring searching
simd for c++ developers
fast csv processing with simd
a translator from intel sse intrinsics to arm/aarch64 neon implementation
deltatime is a frame behind
fixing time.deltatime in unity 2020.2 for smoother gameplay: what did it take?
cryptgenrandom function (wincrypt.h)
building a fast, simd/gpu-friendly random number generator for fun and profit
chebyshev approximation calculator
row major vs column major, row vectors vs. column vectors
row-major vs. column-major and gles
critically damped spring smoothing
geometric algebra
world, view and projection matrices
chunky64 hash function
writing your own linear algebra matrix library
notes on ffts: for users
notes on ffts: for implementers
n-dimensional rigid body dynamics in pga
3d math primer for graphics and game development
interpolation tricks
revisiting a known normal transformation in computer graphics
computing tangent space basis vectors for an arbitrary mesh
the cs 6120 course blog: the cult of posits
why does integer addition approximate float multiplication?
axis-normalized ray-box intersection
sphere projection
gpu optimization for gamedev
why you should never use deferred shading
forward vs deferred vs forward+ rendering with d3d11
forward+ renderer
forward plus rendering using vulkan
mjp blog
wicked engine blog
alex tardif blog
introduction to computer graphics (video series - fall 2020)
hybrid rendering engine references
bobby anguelov's tech blog
stateless layered multi threaded rendering - part 1
computer graphics from scratch
crash course in brdf implementation
low complexity, high fidelity: the rendering of INSIDE
anki: anatomy of a frame in engine
o3de - why bindless
revisiting vector graphics on the gpu
cryengine rendering pipeline
a fast and precise triangle rasterizer
line rendering
dynamic resolution scaling (drs) implementation best practice
a primer on efficient rendering algorithms & clustered shading
recreating nanite
3d game shaders for beginners
beyond white noise for real-time rendering
life and death of a graphics programmer
a better point light attenuation function
virtual geometry in bevy 0.14
reverse z (and why it's so awesome)
advances in real-time rendering in games (sigraph 2017)
myths and misconceptions of frame pacing
reservoir sampling
upsampling via multisampling
multisampling primer
the current technology is not ready for proper blending
gamedev
game art tricks
the sane rendering manifesto
how to write a renderer for modern graphics apis
hypehype mobile rendering architecture
transitioning hypehype to physically based rendering
halcyon architecture "director's cut"
musings on cross-platform graphics engine architectures – part 1
musings on cross-platform graphics engine architectures – part 2
arm mali gpu training series
gpu architecture types explained
framegraph rendering architecture in frostbite
modern mobile rendering @ hypehype
high-performance ue5 mobile rendering
surviving without gl_DrawID
gpu-driven rendering pipelines
gpu driven rendering with mesh shaders in alan wake 2
vulkan guide: gpu driven rendering
https://ruby0x1.github.io/machinery_blog_archive/
a modern rendering architecture
high-level rendering using render graphs
simple parallel rendering
bindless architecture
a series about understanding unity's default rendering pipeline
investigate how unity renders shadows
investigate how unity reflection probes work
to early-z, or not to early-z
hiz occlusion culling twitter thread
hierarchical z-buffer occlusion culling
hierarchical depth buffers
i'm using this one-liner for frustum culling
physically based rendering - intro
physically based rendering - cook–torrance
physically based rendering - book
physical units for lights
an implementation of physically based shading & image based lighting in d3d11, d3d12, vulkan, and opengl 4
demystifying multiple importance sampling
physically based shading on mobile
eon: a practical energy-preserving rough diffuse brdf
crash course in brdf implementation
improving texture atlas allocation in webrender
followup: normal mapping without precomputed tangents
surface gradient–based bump mapping framework
gm shaders mini: fractal texturing
texture repetition
texture compression
texture compression in 2020
gpu texture compression everywhere
writing to compressed textures
virtual textures
virtual textures (aka megatextures) talk (2008)
mipmaps
mipmap selection in too much detail
how to generate mipmaps in a compute shader
fidelityfx-spd csdownsampler.hlsl
understanding the math behind restir di
how ray tracing (modern cgi) works and how to do it 600x faster
embark kajiya gi overview
GI-1.0: a fast scalable two-level radiance caching scheme for real-time global illumination
irradiance caching
image-based lighting approaches and parallax-corrected cubemap
spatiotemporal variance-guided filtering (svgf): real-time reconstruction for path-traced global illumination
engine work: global illumination with irradiance probes
shipping dynamic global illumination in frostbite
real-time markov chain path guiding for global illumination and single scattering
local lights in hypehype
shaders/zenteon_turbogi.fx
radiance cascades
radiance cascades
gm shaders guest: radiance cascades
building real-time global illumination (radiance cascades)
radiance cascades (from exilecon 2023)
fundamentals of radiance cascades
single-header sh support library for hlsl 2021
spherical harmonic lighting:
the gritty details
animation programming basics
animation networking
cryengine animation system
skeletal animation in gltf
giving personality to procedural animations using math
my liner notes for spore
hlsl constant buffer layout visualizer
shader system part 1
shader system part 2
shader system part 3
small, easy-to-integrate shader compiler written in c99. compiles hlsl to spir-v
hash functions for gpu rendering
hash functions for gpu rendering
shader printf in hlsl and dx12
two methods for antialiased wireframe drawing with hidden line removal
a simple shader for point lights in fog
anti-aliased alpha test: the esoteric alpha to coverage
the art of packing data
voronoi, hashing and osl
mesh shader
mesh shaders on rdna graphics cards
meshlets and mesh shaders
work graphs
a quick introduction to workgraphs
compute
compute shader wave intrinsics tricks
case study of a series of optimizations to improve the effective bandwidth of a 3x3x3 blur
async compute all the things
sdf
inigo quilez 2d distance functions
inigo quilez 3d distance functions
sdf domain repetition
fast rounded rectangle shadows
raymarching the gunk
sdf anti-aliasing
perfecting anti-aliasing on signed distance functions
classic 3d videogame shadow techniques
cascaded shadow maps
common techniques to improve shadow depth maps
the witness - shadow mapping summary – part 1
a sampling of shadow techniques
shadow mapping resources
shadow techniques from final fantasy xvi
easy transparent shadow maps
saying "goodbye" to shadow acne
notes on the normal offset materials
sparse virtual shadow maps
screen space shadows
multiresolution ambient occlusion
screen space indirect lighting with visibility bitmask
screen space indirect lighting with visibility bitmask: improvement to gtao/ssao real-time ambient occlusion algorithm (glsl shader implementation)
an implementation of [jimenez et al., 2016] ground truth ambient occlusion
cheap sky occlusion approximation
assassin’s creed 4: black flag lighting, weather and atmospheric effects
space marine did it first!
ssao, "close enough" since 2007 | a brief history
shaders/zenteon_ssao_history.fx
adaptive exposure from luminance histograms
automatic exposure using a luminance histogram
a cool-headed display transform (tone mapping)
custom bloom post-process in unreal engine
how video games use luts and how you can too
stackblur and quadratic stackblur
aaa - analytical anti-aliasing
temporal aa and the quest for the holy trail
fxaa.glsl
implementing fxaa
fxaa shadertoy example
surface-stable fractal dithering
dither3d
https://blog.selfshadow.com/publications/practical-visibility/
https://github.com/4th-dimention/examps/tree/master/win32-direct-write
writing a truetype font renderer
graphics studies compilation
doom (2016)
doom eternal
control
final fantasy xiii
plague tale requiem
death stranding
diablo iv
hypehype render passes
the making of "shadow of the colossus"
webgpu sponza demo — frame rendering analysis
tiny renderer or how opengl works: software rendering in 500 lines of code
direct3d 11.3 functional specification
setting up and using d3d11 in c
beginner direct3d11
learnd3d11
sokol_gfx.h backend tour: d3d11
gpu profiling in dx11 with queries
sample code for discussion about sdl accurate frame pacing
minimal d3d11 sample
pt1
pt2
pt3
minimal fullscreen triangle
a gentle introduction to d3d12
directx specs
directx samples
directx12 programming guide
directx12 quickstart
learning directx12
direct3d12/vulkan implementation guide
the care and feeding of modern swapchains
gpu work graphs mesh nodes in microsoft directx 12
guide to modern opengl functions
ppenGL 4.2 api reference card
learnopengl.com
common mistakes
starting with opengl 4.5
OpenGL Renderer Design
uniforms/attributes/outputs in more efficient way
ogldev modern opengl tutorials
shader include parser and crawler for rust
vulkan renderer from scratch video playlist
vulkan.org learn resources
vulkan specs
vulkan in 30 minutes
vulkan-tutorial.com
vkguide.dev
github.com/David-DiGioia/vulkan-diagrams
ourmachinery - vulkan command buffer management
ourmachinery - vulkan pipelines and render states
ourmachinery - vulkan moving to bindless
writing an efficient vulkan renderer
render graphs and vulkan - a deep dive
github.com/SaschaWillems/Vulkan
vulkan synchronization examples
tim gfrerer's blog
descriptors are hard
we've got a vulkan memory allocator at home
developer.nvidia
vulkan memory management
vulkan shader resource binding
a minimal webgpu example written in c, compiled to webassembly (wasm)
system headers for interfacing webgpu from c programs compiled via emscripten to webassembly
learn webgpu
webgpu best practices
gpu profiling for webgpu workloads on windows with chrome
profiling webgpu with xcode's metal debugger
understanding the metal 4 core api
writing about a metal renderer in swift playgrounds
MTLCaptureManager
https://mastodon.gamedev.place/@porglezomp@mastodon.social/114146068369130058
If you have control over the application you want to capture, it’s nice to explicitly instrument it with MTLCaptureManager with a
file output so you can capture traces during normal execution and open the capture files afterwards.
I set up one of my graphics apps so when you launch it in debug mode, it adds a menu item “capture frame” which will save a
frame capture to the downloads folder so I don’t have to fiddle with attaching a debugger.
a review of shader languages
what is gooch shading?
a minimal atmospheric scattering implementation for unity
improved alpha-tested magnification for vector textures and special effects
the best darn grid shader (yet)
the quest for very wide outlines
depth buffer raymarching for contact shadows, ssgi, ssr, etc
7guis
a rule-based styling system for immediate-mode uis
nakst's let's write a toy ui library series
rectcut for dead simple ui layouts
the problem of ui
coding an ad-hoc ui
how to draw styled rectangles using the gpu and metal
how not to design a ui library
ryanfleury posts on ui
part 1: the interaction medium
part 2: build it every frame immediate
part 3: the widget building language
part 4: the widget is a lie node
part 5: visual content
part 6: rendering
part 7: where imgui ends
part 8: state mutation, jank and hotkeys
part 9: keyboard and gamepad navigation
vurtun posts on ui
vurtun/gui.md
vurtun/(im)gui.md
ourmachinery posts on ui
ui rendering using primitive buffers
one draw call ui
dpi-aware imgui
keyboard focus and event trickling in immediate mode guis
rxi posts on ui
microui v2: an implementation overview
textbox behaviour
rendering bidirectional text with multiple fonts and styles in an immediate mode gui
sdf font texture adventures
text rendering on the gpu
16xAA font rendering using coverage masks - part 1
adventures in text rendering
https://blog.hypersect.com/improving-the-font-pipeline/
https://github.com/astiopin/webgl_fonts
state of text rendering 2024
discord thread: [dwrite & d2d] advancing, font fallback, glyph shaping, unicode text rendering & segmentation
an example for font fallback and text shaping with directwrite
rendering crispy text on the gpu
direct write
tutorial: getting started with directwrite
small example in c for using direct3d11, direct2d and directwrite all together
directwrite for imgui
real-time texture-mapped vector glyphs
paper
slides
rigid body dynamics
vurtun/_GJK.md
game physics series
solver2d: a platform for testing, comparing, and developing physics solvers
spring-it-on: the game developer's spring-roll-call
devlog #4 - fast collisions for large editable vehicles
fixed timestep update loops for everything!
sort, sweep, and prune: part 2
swept capsule vs triangle test
ten minute physics
serious engine networking analysis
crafting interpreters
explaining my fast 6502 code generator
ansi c grammar, lex specification
writing a c compiler (unreleased book)
a self-hosting and educational c optimizing compiler
writing a debugger from scratch
part 1 - attaching to a process
part 2 - register state and stepping
part 3 - reading memory
part 4 - exports and private symbols
part 5 - breakpoints
part 6 - stacks
dspguru
topics on audio programming
c++ audio mixing library design
dsp technical papers
a channel dedicated to audio technology, production and programming
freeverb signal processing
game ai basics
neural networks: zero to hero
intel intrinsics guide
x86 and amd64 instruction reference
making your game go fast by asking windows nicely
attach assets to exe
CreateWaitableTimerExW function
the perfect Sleep() function
properly handling keyboard input
things you really should know about windows input, but would rather not - raw mouse edition
how sdl solves the "resizing window hijacks the window message queue"
setting up and using modern opengl 4.5 core context on windows + windowproc on thread
do event processing during window resize/move
setting up and using modern opengl 4.5 core context on windows + windowproc on thread
moving CreateWindow/DestroyWindow onto a separate thread
glfw pull request
build mac osx apps using command line tools
macos tips for programmers: threading
xlib guide
tutorial xlib
learn wayland by writing a gui from scratch
raspberry pi 3 bare metal
circle: bare metal lib
raspberry pi zero pwm audio interface
https://github.com/mmozeiko/android-native-example
build android apk from command line without gradle
instant code reload in android
ios app in a single .c file with metal
develop with cocoa for apple devices without using objective-c
tailor your apps for apple gpus and tile-based deferred rendering
porting sbcl to the nintendo switch
playstation 3 architecture
playstation-gnmx-sce-3dgame
awesome game boy advance development
ust-tutorials.github.io/learn-gba
draggable objects
so you want to compile your c# game engine to the web with wasm
blender export scripting guide
bare metal programming series
github.com/nothings/stb
github.com/gingerBill/gb
github.com/floooh/sokol
github.com/rxi/microui
github.com/Immediate-Mode-UI/Nuklear
https://github.com/DiligentGraphics/DiligentEngine
https://github.com/bkaradzic/bgfx
https://github.com/ConfettiFX/The-Forge
https://github.com/rasmusbarr/nudge
https://codeberg.org/drummyfish/tinyphysicsengine
https://github.com/jrouwe/JoltPhysics
https://github.com/RandyGaul/qu3e
https://github.com/jkuhlmann/cgltf
https://github.com/ufbx/ufbx
gltfparser.cpp
https://github.com/rxi/sandbird/
assetcooker
msdfgen
meshoptimizer
meshoptimizer
how to properly handle skinned meshes?
ogmo editor 3
ldtk
tiled
tilekit