Original Post
Decided it's time I properly get acquainted with C#. Plan on finding another job outside of games, and C# seems to be a popular choice to program with. Thus, I've decided to have a go at making a small game with XNA to get my C# up to scratch. For my framework, I'm mostly gonna copy my C++ engine's ideas - cutting out the lower level parts due to XNA being higher level. My main problem is access to core systems in my C++ engine looks like this:
CsArchive* pArchive = CsCore::pImpl()->requestArchive( "whatever.arc" );
OsInputDevice* pKeybord = OsCore::pImpl()->getInputDevice( osID_KEYBOARD, 0 );
Basically, CsCore, RsCore, SsCore, OsCore, and GsCore are all similar to singletons - but could have a different version of them dropped in even at run time. I am happy to drop that part of them for my XNA framework, but what would you guys recommend I use? Static class? Singleton? Have 1 place to get access to all of these subsystems? Something different? Cheers ahead of time!