~/imallett (Ian Mallett)

This page presents some tutorials that you might find helpful. I'm a terribly busy person, so I tend to add onto these sparingly.

You'll notice that many tutorials are "planned". This means I intend to write them eventually—but, like as not, not necessarily soon. If there's something here that catches your eye, let me know that you actually want it! If you have a new tutorial idea, as my time allows, I may decide to write a new tutorial on that topic just for you! That said, do realize that I cannot make everything that everyone asks for.

Let me know if something was helpful or problematic here. Give me other feedback too!

If you're completely new to programming, my recommendation is to start with the Python 101 tutorial, which assumes no prior knowledge of programming

A tutorial's being "in-development" usually means that it has been essentially completed, but is not yet stable.

Programmer Fu and Holy Wars

So you want to be a hacker
I have this game idea . . .
The goto Statement
Java is not Faster than C
Java is Bad for You
C# is Worse
Shared Libraries are Bad for You
Write Games, Not Engines (Mirror)
Don't Write Test Cases
Test-Driven Development is Stupid
TABs vs. Spaces

Graphics Tips

How to Pronounce ".gif"
Gravity is not "\(9.8 \frac{m}{s^2}\)"!
The \(\vec{z}\)-axis is Not "Up"
Summary and Hierarchy of Acceleration Datastructures

Language Tutorials

Python 101 A gentle introduction to basic programming using Python 2.7
Python 102 (planned)
C 101 (planned)
C 102 (planned)

PyGame Tutorials

Intro. to PyGame (planned)
Basic Drawing (planned)

Graphics and Graphics Math Tutorials

Introduction to OpenGL with C++ and SDL 1
Introduction to OpenGL with Python, PyGame, and PyOpenGL
Basic Texturing with OpenGL with SDL
Graphics Pipeline (in-development)
The Idiots' Guide to Radiometry and Colorimetry
Clearer, Simpler Explanation of the Rendering Equation (in-development)
Monte Carlo Integration (in-development)
Monte Carlo BRDFs (explicit formulation) (in-development)
Monte Carlo BRDFs (implicit formulation) (in-development)
Energy-Conserving Blinn-Phong Specular (in-development)
OpenGL Texture Terminology
Optimized SIMD Cross-Product
Fast Square Roots


Crash Course in Basic Logic
Introduction to Basic Calculus


Python PyGame Base Code
Python PyOpenGL Base Code

Setting Up

Qt 5.0 (x86 and x86-64 with Visual Studio 2010)
wx (x86 and x86-64 with Visual Studio 2010)

Ian Mallett - Contact -
- 2021 - Creative Commons License