a framework for game programming