I’m making good progress on fleshing out the object model that I designed earlier, it, along with the start of the c++ code is available in the CVS server on sourceforge. The project page has a reference to the CVS location.
I have decided to go with a model where each object in the game system has an optional “Renderer” peer object. The Renderer is specific to the graphics engine that is being used. This will allow me to separate the graphics from the game engine and allow possible cool renderers such as text, 3d, 2d or some cgi-gateway. I think it was the right decision.
It does mean, tho, that the object model being programmed is a bit different from the object model designed. I knew they would diverage, the point of the design was to make sure I thought through as many scenarios as I could. The divergance will start to become irrelevant as I add doxygen documentation and start posting automagically generated docs to the website. As you look at my code and design you’ll see that I like things very simple. Hopefully the project will be able to stay that way.