Some Programming Practice
Once your base engine is done, you still have to create pathing, collision detection and behavior routines so that your first game can have some life breathed into it. This page offers some links to discussions that suggest some practice exercises to get you started.
Before working on these exercises, you may want to set yourself up with at least some way of rendering graphics and interpreting keyboard controls. If you have developed the components I mentioned in my discussion on game engines, all the better. Your practice development will hopefully be more robust, and you'll be able to see how the pieces fit together in an actual engine.
These practice pages may give you an idea of what kind of preparation you will need to solve these kinds of problems, but don't plan to make them a default part of any engine you develop. Leave them aside as available tools. It is likely you will have to re-develop them in a different form to handle any specific game you would develop.
I'm only presenting these discussions as my own way of pursuing a deeper understanding of the subjects at hand. So, by all means, if you have your own way of practicing programming in these areas, more power to you! I'm sure these exercises are beginner's play for experienced game programmers. My goal, as I imagine yours should be, is to acquire a quick sense as to how certain problems should be handled given the limitations and circumstances of the game being developed. Since most game companies develop on a very fast track, the more fluent you are in solving the many various problems, the greater utility you will be for the team.
3D models - no challenges here yet, just a discussion on the kinds of things you may expect to do with them.
The Ultimate World Object - what really needs to be stored at the object level?
OpenGL Viewpoint and Object Transformations - setting up for rendering a 3D world in OpenGL
Skeletal Models - Rendering a complex model made of rigid 3D objects
Optimizing - Some examples of speeding up code
Collision Studies - Simple 2D collision studies, and algorithms for frame-based collision handling
3D model basics - Discussion of 3D model structures, normals, textures, hardpoints, glare points and flame