Vector101 is a free 10-week course designed to help game developers increase their knowledge of one of the most important mathematical objects: vectors. Vectors permeate the mathematics of game development, perhaps most infamously in CFrames. We aim to explain the mathematics underpinning these objects while also guiding you through programming a practical linear algebra library for all your vector needs.

The first course of Vector101 ran from May–August 2023. Recordings for all 20 lectures are on YouTube. Source code for the coding lectures and homeworks are on GitHub. We are happy to still discuss course content with you on Discord.

  • When: Lectures are on Mondays and Thursdays from 6pm–6:50pm PT, starting the week of May 29. Office hours for getting help are on Saturdays at 1pm PT.
  • Where: Voice chat on our Discord server
  • Who: Lectures will be given by Aidan (DarkInfernoDrago), a math PhD student, and Ethan (AstroCode), a 5th-year math undergrad and veteran Roblox developer

Course Structure

The course will run for 10 weeks with two lectures per week. Each week will focus on one topic, starting with a mathematical introduction to the subject and then proceeding to a hands-on lesson in building a Roblox lua library to do the math for you. The first lecture each week will be taught by Aidan, who will focus on the mathematics, and the second will be taught by Ethan, who will focus on the code. Both lectures will cover the same topic but from different perspectives. That way, if you get behind, you should be able to catch up by attending the second lecture.

Exercises

Completing exercises is a crucial step in the process of learning mathematics. As such, math and coding exercises will be assigned each week, which you are strongly encouraged to complete. The coding exercises will extend the content from the weekly coding lecture, and by the end of the course, you will have your very own linear algebra library.

Course Topics and Schedule

The following is the planned course schedule:

Week Topic Code
1 Vectors, products, and norms Vector object
2 Vector geometry Projection, angles, Gram-Schmidt
3 Matrices as linear transformations Matrix object
4 Matrices and linear systems Gaussian elimination
5 Fundamental spaces Null space computation
6 Eigenvectors and eigenvalues I Power method
7 Eigenvectors and eigenvalues II Matrix inverse
8 Affine geometry Triangle object
9 Affine transformations CFrame object
10 3D rotation Build a demo?

Prerequisites

  • High school algebra 1, to the level of unit 8 in Khan Academy’s algebra 1 series.
  • Some familiarity with programming, preferably on Roblox. Experience working with the Vector3 and CFrame objects (or their equivalents in another game engine) will be helpful.