, 28 tweets, 19 min read Read on Twitter
The Game Programming Resources thread!

2017 marks my 20th anniversary of game programming, so I’ve decided to start a curated thread with some of my favourite game programming articles, videos, and resources! I'll keep adding more over time, and feel free to send me suggestions!
Linear Algebra is BY FAR the most important subject in Mathematics that game programmers should know. It covers vectors, matrices and transformations. This video series will teach all of those in a very accessible way!
On the subject of geometry, the Separating Axis Theorem is fundamental to understanding collision detection, and it's very simple! This interactive article is a great primer: metanetsoftware.com/technique/tuto…
This is an article I wrote in 2012, about how to implement 2d platformer games. Of course I'm biased, but a lot of people seemed to have enjoyed this article, so I'll add it here! higherorderfun.com/blog/2012/05/2…
"Juice it or Lose it", an excellent presentation on how to make games feel "juicy", by @grapefrukt and @PetriPurho:
Game networking is a difficult subject with relatively few resources covering it. @gafferongames 's articles are probably the best primers on the subject:
gafferongames.com/categories/gam…
and
gafferongames.com/categories/net…
The other major multiplayer programming resource that I really like is @NoBugsHare 's extremely comprehensive "Development and Deployment of Multiplayer Online Games". It's WIP, but covers a lot of really important subjects. ithare.com/contents-of-de…
Pathfinding is a very common problem, so A* and Dijkstra's Algorithm are one of the most important algorithms for game programmers! This excellent tutorial provides a very visual explanation of them. redblobgames.com/pathfinding/a-…
OpenGL (+OpenGL ES) is one of the world's most popular graphics APIs, supported by Windows, Mac, Linux, Android and iOS (and, to some limited degree, some consoles). This is, IMO, the best tutorial for learning modern OpenGL: learnopengl.com
Audio programming is really fun, but it's hard to find accessible resources for it! This AMAZING series of articles will walk you through the basics of digital sampling and make you understand the Discrete Fourier Transform! jackschaedler.github.io/circles-sines-…
Speaking of audio programming, the Introduction chapter of the OpenAL Effects Extension Guide provides some really good introductory knowledge to how to implement more sophisticated game audio. kcat.strangesoft.net/misc-downloads…
Entity Component Systems are a really powerful way to engineer game code, and provide an alternative to object oriented programming, for some tasks. Here's three good articles on it:
1. t-machine.org/index.php/2007…
2. richardlord.net/blog/ecs/what-…
3. gamedev.net/articles/progr…
From the GDC Vault, "I Shot You First! Gameplay Networking in Halo: Reach" is one of my favourite postmortem examinations of how a game implements networking, covering subjects such as lag compensation, and diagnostics tooling. gdcvault.com/play/1014345/I…
This couldn't be a game programming resources thread without some @ID_AA_Carmack! Here's him talking about the Principles of Lighting and Rendering, a great, information-packed overview of illumination for 3D graphics.
Wave Function Collapse is a relatively recent procedural generation algorithm by @ExUtumno that can create amazing results following patterns provided by the user. github.com/mxgmn/WaveFunc…
Remember that making good tools is also part of a game programmer's job. This GDC Vault talk by @chrismcentee explains how the UbiArt Framework is used to easily create content for the Rayman games, and it's very inspirational! gdcvault.com/play/1020398/R…
Let's do some AI! Boids are a really simple, but surprisingly effective technique for modelling swarms of birds or fishes. It comes in handy pretty often! red3d.com/cwr/boids/
Bézier curves are very useful, both for drawing vector graphics, but also for determining smooth paths for AI entities or cameras. This article is a great introduction to how they work. javascript.info/bezier-curve
Here's some incredibly interesting postmortem analyses of one of my favourite games of all time, and also one of the most technically impressive games I've ever seen, Shadow of the Colossus:
1. froyok.fr/blog/2012-10-b…
2. froyok.fr/documents/maki…
3.
Game Programming Patterns by @munificentbob is a great compilation of software engineering techniques for game programming! The web version is free, but you can also buy a physical/ebook copy. gameprogrammingpatterns.com/contents.html
Quaternions are a VERY important concept for 3D programming, but they can be extremely confusing to understand! These two videos provide a great explanation of them:
1.
2.
(Thanks to @andrewcarvalho for the tip!)
Understanding retro game systems can be very insightful, with the clever techniques that needed to be employed! Here's several good videos:
1.
2.
3.
4.
5.
And now for a change from just having videos and articles on this thread: a podcast! @CppCast by @robwirving and @lefticus is an excellent way to keep up with modern C++, which should be highly relevant to many game programmers. cppcast.com/archives/
Another great visualisation of the Fourier Transform, this time by @3Blue1Brown!
Very nice analysis of different line of sight algorithms for roguelikes! adammil.net/blog/v125_Rogu…
The Sonic Physics Guide is a classic postmortem look at the implementation of one of the most sophisticated 16-bit era platformers! info.sonicretro.org/Sonic_Physics_…
Sometimes the best way to learn is by looking at how other people did it - @NoelFB open sourced the player controller for Celeste (an amazing platformer, btw), which might be a very useful reference if you're working on a game of that genre! github.com/NoelFB/Celeste…
Here's an interactive collab between @3blue1brown and @ben_eater on visualising and understanding Quaternions! eater.net/quaternions
Missing some Tweet in this thread?
You can try to force a refresh.

Like this thread? Get email updates or save it to PDF!

Subscribe to Rodrigo Monteiro 🔜 GDC
Profile picture

Get real-time email alerts when new unrolls are available from this author!

This content may be removed anytime!

Twitter may remove this content at anytime, convert it as a PDF, save and print for later use!

Try unrolling a thread yourself!

how to unroll video

1) Follow Thread Reader App on Twitter so you can easily mention us!

2) Go to a Twitter thread (series of Tweets by the same owner) and mention us with a keyword "unroll" @threadreaderapp unroll

You can practice here first or read more on our help page!

Follow Us on Twitter!

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just three indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3.00/month or $30.00/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!