Part 1 of a series to learn game programming