All courses

"You can think of each course as a comprehensive self-contained book on a particular topic. But more than just a book... here we get to sit together, understand every formula, savour every line of code, and implement a full project to really consolidate your knowledge on that topic."

- Gustavo Pezzi -

PS1 Programming with MIPS Assembly & C

25 hours
  • Learn how to develop games for the original PlayStation using MIPS Assembly and C.
credit card paypal
nes nintendo programming

NES Programming with 6502 Assembly

22 hours
  • Learn 6502 Assembly programming games for the Nintendo Entertainment System.
credit card paypal
atari 2600 programming

Atari VCS Programming with 6502 Assembly

18 hours
  • Learn 6502 Assembly programming and create games for the Atari 2600 console.
credit card paypal

3D Computer Graphics Programming

37 hours
  • Learn to create a 3D software renderer from scratch using the C language.
credit card paypal

Game Physics Engine Programming

35 hours
  • Learn how to create a 2D rigid-body physics engine from scratch with C++.
credit card paypal

C++ 2D Game Engine Development

30 hours
  • Learn to code a simple 2D game engine using modern C++, SDL, ECS, and Lua.
credit card paypal
raycasting texture c

Raycasting Engine Programming with C

18 hours
  • Write a raycasting engine with textures and sprites using the C programming language.
credit card paypal

Learn the Lua Scripting Language

13 hours
  • Master the Lua programming language and learn to embed Lua with C & C++.
credit card paypal
linux terminal bash scripting

Master the Linux Terminal & Bash Shell

8 hours
  • A complete introduction to the UNIX command-line and Bash shell scripting.
credit card paypal

All paid courses include

Lifetime access

Enroll and get lifetime access to the course content

Access to discussion forum

Engage with other students using the discussion board

Certificate of completion

You'll get a certificate of completion at the end of the course

Money back guarantee

We offer a 14-day money back guarantee for all our courses

Back to the basics

All courses aim to cover important aspects of the standard computer science curriculum.

Linear algebra

From computer graphics to AI, a good understanding of vectors, matrices, and other linear algebra concepts will underpin many of the projects we'll implement together.

Algorithm complexity & data structures

We must understand how algorithms perform while keeping an eye for optimal representation in memory. Well-picked data structures usually mean less headache and faster access.

Discrete mathematics & numerical analysis

Most computer problems live between discrete and continuous mathematics. Often times we need to find numerical algorithms to find approximations to our mathematical solutions.


Triangles are always hidden in plain sight when we work with graphics & game development. Coding is a great sandbox to develop some intuition around basic trigonometry.


Several ideas from calculus, such as derivatives and integrals, will appear when working with computer graphics or coding a physics engine.

Compilers & formal languages

Often times we need to parse and interpret some sort of formal language, or simply expose scripting power to our games or apps.

Operating systems & machine architecture

Some projects require us to take a deeper look into how our application communicates with the operating system and, ultimately, the hardware that is in front of us.

Low-level programming

Ultimately, the goal of all courses is a low-level understanding of how and why things work, focusing on the timeless concepts that support computer science.