I've been skimming through Jeff Plummer's master thesis, kindly provided in a post by Agony to another poster's question. In his thesis Plummer describes a data focused approach that helps with keeping all game components nicely compartimentalised and decoupled, something I really want with my system as I experiment with different plug-in libraries. Ideally I want to be able to chop and change with third party libraries to deal with all the dirty work for me, but not have to put too much effort into rewriting code if I need to make a change.
My present strategy is to store all the game related data in structures that are totally independent of the hardware and third-party code, and use an interface between these and the extra library modules to run the game. At the moment though I have not thought of the best way I can store this data and more importantly access it in a fashion that is friendly to all the extra systems I want to throw at it. I like message passing systems and plan to implement one for things like the user interface, control and audio systems, but I don't know if such a level of indirection will be efficient enough for more data hungry systems such as graphics and AI.
I've tried searching around on the forums, but I think I'm not using the right terminology. Every time I try searching for anything it seems my own journal fills up half of the top ten results, which irritates me to no end.
I'm going to thrash out this problem a bit more until the end of the week with the help of a few on-line and off-line resources, and then see if I can pose an intelligent question to the forums. I'm sure there's a bunch of software engineering examples out there if I just knew what to look for.