The code will all be in Python mainly using the pyglet framework. I'll assume a very low level of Python proficiency, so don't worry if your Python- or general-programming comfort is minimal. The course will cover:
- The basic framework of game code (game loops, timing issues, input handling)
- Basic 2D graphics concepts and algorithms (e.g. line drawing and polygon filling)
- Basic 3D graphics concepts and algorithms (e.g. perspective projection)
- OpenGL (old style, < 3.0)
- Full walkthroughs of code for classic games, e.g. Tetris, Pacman, Asteroids, and a side-scrolling platformer.
- And time permitting, an original game in the vein of Gravitar and Solar Jetman.
Watch the first two installments here:
If this first project is successful, I'll likely continue in a follow-up project covering:
- OpenGL (new style, >=4.0)
- Multiplayer networking
- Artificial Intelligence (e.g. pathfinding)
- Physical simulation
- Essentials of linear algebra for 3D rendering
A further follow-up project might cover game development using C++ or C#/XNA and DirectX.
As with my other materials on codeschool.org, my primary focus is always on the clear and concise presentation of the most important concepts, but unlike the earlier materials, these topics are an opportunity to get in-depth examples of real (if generally short) programs. All code will be available on bitbucket.org.
Like all other codeschool.org materials, the materials of this project will be released under open licenses. The money simply helps me set aside time away from my usual contract work for this project, so by backing, you'll help me get this project done considerably sooner than I otherwise could. In return, you'll get early access and weekly updates.
If you aren't much interested in game programming but enjoyed the previous codeschool.org videos, consider this an opportunity to make a small donation.
Risks and challenges
The topics will likely take 3 or 4 months to cover. OpenGL, in particular, is a quite expansive topic, and to be clear, something I'm still very much learning myself. It has typically taken me about >20 hours of work for every hour of video, but I imagine 3D rendering and OpenGL material will take me quite a bit longer.
The Gravitar-style game that I have planned, like all software projects, may take much longer than the hoped for time frame. This very much depends on how ambitious it gets in scope.Learn about accountability on Kickstarter
Transcripts of every video will be available.
I intend to release updates every week on Thursday or Friday.
Support this project
- (30 days)