I have a utilities unit which contains the main Game class. The game class is used for storing common objects that all games would contain;
log file (Class)
quit flag
title
framerate timer (Class)
pause flag
The Utils unit also houses some commonly used functions. All subsequent units have access to the Utils unit.
The Graphics unit houses the Screen class and the Sprite and SpriteManager classes. This is the only place where direct OpenGL calls should be made.
The Input unit is used for interfacing with the mouse and keyboard. I am using SDL for input but all SDL calls are contained here and there is no reason to directly call SDL outside of this unit.
Here's a screenshot of a very simple program written to test the framework. It is approx 200 lines of code in the main program since most of the work is done behind the scenes in the framework or encoded into the sprites using my sprite editor.
(Oh yeah, I borrowed the sprites from the Internets)
Download it here.
Use arrow keys to move one of the guys and be sure to click and hold for flames galore.