The basic idea is that the resulting game framework should be suitable for developing open-ended worlds with story-centric interactions. The emphasis is really on story telling, then game play (which may include multiplayer). Only after these aspects have been fulfilled will graphical quality be considered.
As what we really care about is the gaming system itself, not the means in which the user interacts with it, the Game Client portion of the design will be relative thin compared to the Game Server portion. In this case, "client" and "server" are relative terms. If possible, sinking the server into the client and removing the network stack should be sufficient to make a single-player game. So, such considerations as graphics and sound will be of little interest. Arguments over "DirectX vs OpenGL" are unnecessary, because in all reality, the first client will probably be text-based. UI considerations will only be "that which is enough to demonstrate the capabilities of the framework."
I have a ton of notes on paper, and still a ton of research to do, but I have been able to build a basic outline thus-far. Much of the project will be filling in the blanks from here.
1) Introduction a. Purpose b. Document Conventions c. Intended Audience d. Suggested Reading2) Scope a. Define i. Need ii. Goal iii. Objectives iv. Business Case v. Assumptions vi. Constraints b. Operational Concept c. Known Risks3) Requirements a. Overview b. Game Network i. Topography ii. Encryption iii. Data iv. Performance c. Story Telling d. Physical Representation e. Game-Play f. Server g. Client4) Game Server System Design a. Overview b. Server Environment c. Game-Play d. Story e. Mapping f. Physics g. Scripting h. Artificial Intelligence i. Networking j. Database5) Game Client System Design a. Overview b. Expected User System Requirements c. Networking d. User Input e. Graphics f. Sound6) References7) Appendix A: Glossary8) Appendix B: Areas for Further Research
I don't really need to complete these sections in a linear fashion. In fact, a linear progression would probably be stifling to the process. Continuous refinement and parallel implementation will be necessary to fully account for all features and pitfalls.
I realize that what I'm undertaking is pretty much the software development equivalent of putting a man on the moon... with tools from my garage. However, I think the goals of the project and the milestone goals (unpublished as of now) will set me up for having some sort of useful results even if they don't make it into one system.
Incidentally, my journal writeup here serves as a pretty good start for the intro bullet.