Resources
These are some of my favorite resources for learning about various topics. Most topics are technical and/or game-related. I try to only include the ones I find particularly useful, so topics that I haven’t found great reference for might not be included.
This list is in progress, somewhat disorganized, and too rarely updated… I try to group related resources together, but they might also be separate. If looking for a specific topic, Ctrl+F is your friend.
See also: Influences list
general getting into stuff
games writing roundups (mostly criticism, analysis, and interpretation): Critical Distance
animation clips database: Sakugabooru
art stuff: Hyperallergic, e-flux
lots of stuff, just follow people in whatever area: twitter
a couple games blogs i like: my friend pokey (thecatamites/Stephen Murphy), Radiator Blog (Robert Yang), Electron Dance (Joel Goodwin), Tevis Thompson, Brendan Keogh
graphics
physically based rendering: Filament: Physically-based rendering engine - Google Filament team
physically based rendering: SIGGRAPH 2015 Course: Physically Based Shading in Theory and Practice - various
modern opengl: Modern OpenGL - Philip Rideout
opengl: Raw OpenGL - Alain Galvan
pronunciation: Computational Graphics Pronunciation Guide - Morgan McGuire
gamma: What every coder should know about gamma - John Novak
modern real-time rendering techniques (assorted): Advances in Real-Time Rendering in 3D Graphics and Games - various authors
various tech art techniques: Game Art Tricks - Simon Schreibt
some general intro graphics (good illustrations): Making WebGL Dance - Steven Wittens
bezier curves: A Primer on Bezier Curves - Pomax
perlin/gradient noise: Perlin Noise - Eevee
walkthroughs/explanations of rendering systems in various AAA games:
Deus Ex: Human Revolution - Graphics Study - Adrian Courreges
Doom (2016) - Graphics Study - Adrian Courreges
GTA V - Graphics Study - Adrian Courreges
GPU voronoi and distance maps: Voronoi Diagrams on the GPU - Ryan Kaplan
dithering algorithms: Image Dithering: Eleven Algorithms and Source Code - Tanner Helland
z-buffer precision: Maximizing Depth Buffer Range and Precision - Brano Kemen
poisson disk sampling:
Poisson Disk Sampling - Herman Tulleken
Poisson Disc II - Mike Bostock
parallax mapping: A Closer Look At Parallax Occlusion Mapping - Jason Zink
fxaa: Implementing FXAA - Simon Rodriguez
anime-style 3D rendering: GuiltyGearXrd’s Art Style: The X Factor Between 2D and 3D
math + number-y algorithms (see also physics, computational geometry)
spring dynamics (getting accurate+consistent behavior; intuitive parametrization): Spring dynamics for production - Huw Bowles
spring dynamics (alternative intuitive parametrization): Game Math: Precise Control over Numeric Springing - Allen Chou
Frame Rate Independent Damping Using Lerp - Rory Driscoll
weighted random number generation / data structure for loaded dice: Darts, Dice, and Coins: Sampling from a Discrete Distribution - Keith Schwarz
linear algebra (textbook): Linear Algebra Done Right - Sheldon Axler
fourier transform: The Fourier Transform, explained in one sentence - David Smith
game/graphics math (textbooks): Mathematics for 3D Game Programming and Computer Graphics - Eric Lengyel
Foundations of Game Engine Development, Volume 1: Mathematics - Eric Lengyel
geometric distance queries, with source: Geometric Tools: Mathematics: Distance 3D - David Eberly
computational math (various, with source): Geometric Tools - David Eberly
physics simulation (see also math section)
collision detection (textbook): Real-Time Collision Detection - Christer Ericson
gjk collision algorithm: Implementing GJK - Casey Muratori
computational geometry
computational geometry (textbook): Computational Geometry: Algorithms and Applications - Mark de Berg et al
misc/general programming stuff
kalman filters: How a Kalman filter works, with pictures - Tim Babb
c++ vector/matrix implementation with zero-cost swizzling, row/column extraction, transpose: Linear Algebra Upgraded - Eric Lengyel
bitmask operations on C++ enum classes: Type-safe Bitmasks in C++ -
fast-paced online multiplayer implementation:
Client-Server Architecture - Gabriel Gambetta
Client-Side Prediction and Server Reconciliation - Gabriel Gambetta
Entity Interpolation - Gabriel Gambetta
Lag Compensation - Gabriel Gambetta
Sample Code and Live Demo - Gabriel Gambetta
overview of game engine components, with useful details: Game Engine Architecture - Jason Gregory
radix sort on floats: Radix Sort Revisited - Pierre Terdiman
ai steering / context maps: AI Steering - Rory Driscoll
using llvm with haskell; basic compiler programming: Writing a JIT Compiler with Haskell and LLVM - Stephen Diehl
unreal engine
great engine structure and systems overview: Unreal Engine - Jorge Israel Peña
rendering: How Unreal Renders a Frame - Kostas Anagnostou
software engineering
overview of data-oriented design (and memory performance, by necessity): Data-Oriented Design and C++ - Mike Acton
lua codebase (a good read even if not using lua):
Programming in Lua – The Lua Implementation - Fabio Mascarenhas
The Implementation of Lua 5.0 - Ierusalimschy et al
Lua 5.1.4 Annotated Source - Steve Donovan
Recommended reading order for Lua codebase - Mike Pall
assorted game engine code reviews:
Doom 3 Source Code Review - Fabien Sanglard
Doom 3 BFG Source Code Review - Fabien Sanglard
Quake 2 Source Code Review - Fabien Sanglard
Quake Source Code Review - Fabien Sanglard
Doom Source Code Review - Fabien Sanglard
Jurassic Park: Trespasser CG Source Code Review - Fabien Sanglard
latency numbers: Latency Numbers Every Programmer Should Know - Colin Scott
hybrid/small data structures (for cache performance):
Efficiency with Algorithms, Performance with Data Structures - Chandler Carruth
High Performance Code 201: Hybrid Data Structures - Chandler Carruth
writing code for better compiler optimization: Optimizing the Emergent Structures of C++ - Chandler Carruth
specific programming languages
lua: Lua 5.1 Reference Manual - Roberto Ierusalimschy et al
lua performance: Lua Performance Tips - Roberto Ierusalimschy
haskell: What I Wish I Knew When Learning Haskell - Stephen Diehl
practical/misc game development
juice (the game feel concept): Juice It or Lose It - Martin Jonasson and Petri Purho
game feel: An Incomplete Game Feel Reader - Brendan Keogh
action game juice: The Art of Screenshake - Jan Willem Nijman
practical scope-aware code architecture: Free-falling through the Goldilocks Zone - Andy Hull
reuse and recombination of simple visual tech: Technical Art Culture of ‘Uncharted 4’ - Andrew Maximov
buddy AI design/development: Ellie: Buddy AI in The Last of Us - Max Dyckhoff
completing a complex, multi-faceted tech art challenge: Huddle Up! Making the Spoiler of INSIDE - Mikkel Bogeskov Svendsen et al
building basic environments in Unity: How to make cool stuff in Unity - Bronson Zgeb
action game stuff: Embracing Push Forward Combat in ‘DOOM’ - Kurt Loudy and Jake Campbell
structure: The Nature of Order in Game Narrative - Jesse Schell
game design broadly considered; ways play and relate to games
orthogames (textbook): Characteristics of Games - George Skaff Elias, Richard Garfield, and K. Robert Gutschera
speed running (general and specific games), impact of deep game knowledge: Games Done Quick Archives
high-level competitive play: Playing Out Loud - curated by Zach Gage
high-level ssb: melee: Melee introduction - Cosmo
good intro-level framework for thinking about games (textbook): Rules of Play - Katie Salen and Eric Zimmerman
explore some really good world layout: Dark Souls Map Viewer - FROM Software, vlad001 et al
(note: can also import map data into unity, blender, etc)
usability (basic book, good examples): The Design of Everyday Things - Don Norman
types of players in versus multiplayer games: Timmy, Johnny, and Spike Revisited - Mark Rosewater
designing for different player types: Design Language - Mark Rosewater
special dynamics of 2-player games: 2-player games - Michael Brough
technical game design:
Imbroglio notes (1-6) - Michael Brough
inventory management
blood and mana
monsters
when this
imbroglio friends
meditation
game balance (competitive game focused):
Balancing Multiplayer Games - David Sirlin
definitions
viable options
fairness
intuition
game balance and yomi
solvability (why balance is important): Solvability - David Sirlin
card bans as the last defense against game solvability: Skullclamp, We Hardly Knew Ye - Aaron Forsythe
communicating game experiences: Pitching Feelings - Rami Ismail
accessibility and challenges of tabletop game paraphernalia: Let’s Get Physical - lessons from the real world - Zach Gage
(in)stability in game systems and level design: Dark Past (part 4): The Useful Post (?) or Randy Smith’s “valence theory” of level design - Robert Yang
preserving a sense of discovery in the age of spoilers: Preserving a Sense of Discovery in the Age of Spoilers - Jim Crawford
design/implementation of specific aspects of games
movement grid alignment in original Zelda: Movement Mechanics (Deconstructing Zelda) - Troy Gilbert
SotC: various efficient lighting and blur techniques; colossus collisions; fur rendering; LOD; etc: The Making of Shadow of the Colossus
CRT simulation and retro shaders (many articles): Filthy Pants Blog - Hunter K
CRT simulation: CRT Simulation in Super Win the Game - Kyle Pittman
narrative in games and in general
basic game rhetoric (in Passage): What I was trying to do with Passage - Jason Rohrer
lore building:
Dark Souls Lore - Artorias of the Abyss - EpicNameBro
The Legend of Artorias the Abysswalker - VaatiVidya
world building: Dark Souls Design Works
non-western narrative structures: On Narrative Structure: Kishōtenketsu and Obokuri-Eeumi T.E. Waters
issues with monolithic plot structure: Save the Movie
screenwriting; narrative and storytelling: Screenwriting 101 - Film Crit Hulk
formation of meaning in games, art, etc; ideas about games as a medium
meaning in games as built on abstraction: The Immersive Fallacy - Frank Lantz
formation of meaning: Of Grammatology - Jaques Derrida
complexity and contradiction in design: Complexity and Contradiction in Architecture - Robert Venturi
individual agency of works and objects: “Context Stinks!” - Rita Felski
games are not reducible to code + art: A Tale of Two Jousts: Multimedia, Game Feel, and Imagination - Douglas Wilson
importance of aesthetic coherence: Basic Animation Aesthetics - David OReilly
isolating “style”: Exercises on Style - Raymond Queneau
choice and (non)linearity in games: Stop Crying About Choice - Joel Goodwin
“A novel is a medicine bundle, holding things in a particular, powerful relation to one another and to us”: the novel as un-heroic; sci-fi as fundamentally tragic: The Carrier Bag Theory of Fiction - Ursula Le Guin
intent as what distinguishes good games: The Center Of All Things - Rami Ismail
major dialogs game studies: Game Studies, Year Fifteen - Ian Bogost
when the idea of a thing comes before the thing itself: Double Futures - Frank Lantz
the sign that points only to other signs; the hyperreal: Simulacra and Simulation - Jean Baudrillard
creative communities; “z-games”; games as weird objects; pushing back against popular critical conception of play: dump.txt - thecatamites
make games u wish 2 see on the dreamcast: Arcane Kids Manife$to - Arcane Kids
games as rational and irrational: Hearts and Minds - Frank Lantz
(see also “A Tale of Two Jousts”)
rules systems as truth; pursuit of same: Truth in Game Design - Jonathan Blow
games as mirrors for thought: Life and Death and Middle Pair - Frank Lantz
implications of systems and modeling in games: Sims, BattleBots, Cellular Automata God and Go - Celia Pearce in conversation with Will Wright
game formalism: Parley - Frank Lantz
games as music: Music Object, Substance, Organism - David Kanaga
games as forces and rules: Intro to Ludic Ecologonomy (Pt. 1) - David Kanaga
game design as communication of rules: The Door Problem - Liz England
more on rules/systems/truth in games: Designing to Reveal the Nature of the Universe - Jonathan Blow and Marc Ten Bosch
games should be humanist: Realtime Art Manifesto - Auriea Harvey and Michaël Samyn
“it’s more important to witness a game than to play it”: Not a manifesto; on game development as cultural work - Robert Yang
creative/artistic practive
artistic practice; art/artist relationship: Sentences on Conceptual Art - Sol LeWitt
making/finishing a game: Hello World - Brendon Chung
process-based methods for making original work within constraints: DOOM: Behind the Music - Mick Gordon
misc
recognizing creative goals when evaluating games: How I analyze a game - Raph Koster
against violence in games: Violence Considered Harmful - Pippin Barr
stop worrying about games being art: The Great Art Upgrade Or: How the Game Community’s Desperate Quest for Art Cred Makes All of Us Look Pathetic and Ignorant - Paolo Pedercini
technical work towards general goals; live programming and fast iteration tools: Inventing on Principle - Bret Victor
monetization and free-to-play
free-to-play games - strategies and ethics: Chasing the Whale: Examining the ethics of free-to-play games - Mike Rose
against free-to-play (as it’s typically used): Game design: the medium is the message - Jonathan Blow
positive implementations of free-to-play: Microtransactions Aren’t Evil - Why Viridi is Free-to-play - Kevin Maxon
good game crits of specific games
(section is short right now due to lack of attention; there is a lot of great stuff out there)
crit: The Witness: The Unbearable Now: An Interpretation of The Witness - Joel Goodwin
crit: Vanquish: Vanquish - A Retrospective - Adam Saltsman
the origin of “ludonarrative dissonance”: Ludonarrative Dissonance in Bioshock - Clint Hocking
other good collections, syllabi, and reading lists
experimental games and weird internet stuff (syllabi): Courses - Paolo Pedercini
z-buffer precision: Reading list on Z-buffer precision - Julien Guertault
many topics: No Excuse List - various
undergrad computer graphics: Graphics courses - compiled by Ivan Malopinsky
undergrad computer science:
A Bachelor’s Level Computer Science Program Curriculum - Madmin
An Intensive Bachelor’s Level Computer Science Program Curriculum - Madmin
mixed bag of basic rendering stuff: CIS 565: GPU Programming and Architecture - Patrick Cozzi
numerous math topics (generally cs-related): Primers - Jeremy Kun