Story-Driven Game Framework: an Enterprise Approach
I've been talking with a couple of guys here at work about game development. We're all avid gamers across all different types of games (i.e. electronic, board, pen-and-paper), and we are all fairly successful enterprise software developers. So, I'm trying to take the results of our discussions and formulate them into a general software design for character driven games, as distinctive from sports games or puzzle games, etc.
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.
b. Document Conventions
c. Intended Audience
d. Suggested Reading
iv. Business Case
b. Operational Concept
c. Known Risks
b. Game Network
c. Story Telling
d. Physical Representation
4) Game Server System Design
b. Server Environment
h. Artificial Intelligence
5) Game Client System Design
b. Expected User System Requirements
d. User Input
7) Appendix A: Glossary
8) 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.