Game development
- File size
- 6.8KB
- Lines of code
- 132
Game development
Or at least, how Randy thinks you should go about learning it.

The abbreviated guide
- Learn C
- Avoid modern C++ and figure out low-level C workarounds for C++ equivalents as far as possible (eg. fixed length strings, flat arrays, etc.)
- Ignore OOP and prize functional programming
- Focus on coding fundamentals
- Run from engine brain, it WILL waste your time and prevent you from making a game
- Ask lots of questions, whether that's other people, google or LLMs
- Write fast and break things
- Chase the fun
Useful things to learn
Memory management
- Memory Allocation Strategies - Part 1 by gingerBill
- Memory Allocation Strategies - Part 2 by gingerBill
- Untangling Lifetimes: The Arena Allocator by Digital Grove
Graphics
- Don't learn graphics too early and for no reason, just use sokol and sokol-gp
- If you're sure you need to learn graphics, then learn these
- OpenGL
- A Trip through the Graphics Pipeline
- DirectXTutorial
- LearnD3D11
- Minimal D3D11 Github gist
- DirectXTK Github repository
- HLSL reference documentation
Audio
- Don't learn audio, just use FMOD, its the most accesible option for just starting out
- If you want to learn audio anyway, look at these
- Lessons learnt from a decade of audio programming GDC 2015 talk
- Introduction to Sound Mixing as part of Handmade Hero
- Simple Lowpass Filter
Networking
- First read the high-level overview of game network programming
- Then refer to Steamworks API instead of fighting NAT for no reason
- Read Beej's Guide to Network Programming if you're feeling nerdy
- Read Beej's Guide to Networking Concepts if you're feeling courageous
Multithreading
- Handmade Hero Day 122 - Introduction to Multithreading
- Handmade Hero Day 123 - Interlocked Operations
- Handmade Hero Day 124 - Memory barriers and Semaphores
Random
- Why an ECS is complete bullshit 90% of the time for smaller games by Randy
- Easing functions cheatsheet
- Gaffer on Games
- Sokol Github repository
- Game Engine Programming playlist by Jonathan Blow
- John Carmack on Functional Programming in C++
- A better point light attenuation function by lisyarus blog
- Confronting Combinatorics
by Ryan Fleury - UI Series by Ryan Fleury
More on
- Handmade Hero's introduction to C by Molly Rocket
- /RES by randy.gg
- The Way to Jai Github repository