Social Simulation Architecture
So, creating a general platform for adapting works into games requires some underlying foundation. It needs to be abstract enough to accomodate all of its targets for adaptation, but also robust enough to serve some value. The idea behind this idea is to make a platform for social simulation, of managing characters within some sort of specific domain. The general idea of “social simulation” is quite vague, but is meant to take on a fairly precise goal. The fictional works targeted by this research for adaptation are about characters and relationships. The characters in the stories work within a system of social rules, and it is these rules that I aim to simulate. Games tend to look at adaptations from the perspective of action and progress, Interactive Drama tends to look at the construction of an experience, my goal here is to capture characters and relationships.
This whole work will need to be broken down into several subsystems.
- Character. Management of individual characters, their properties, their behaviors, relationships, etcetera. This system would also need to keep track of moods, emotions, needs, wants, all at conscious and unconscious levels.
- Action/Event/Behavior. How characters interact with the world around them, will need a database and a means for organizing, fetching, as well as loading them from files. The behavior system needs a way to determine what characters do at any point in time. Its goal is to answer the questions for a character “What should I do?” and “How should I do it?”
- Space/World. Defines spaces, locations, what the environments are, what the affordances and properties of them are. Includes code that would manage path planning and other potential operations.
- Animation/Rendering. How the world is displayed. Ideally this could be pluggable, and depending on the type of logic used elsewhere, how space works within the domain, etcetera, different rendering engines could be attached (2d/3d/text). The feasibility of this depends on how the space system is structured.
- Text/Dialogue/Conversation. How characters communicate with each other. Much of the intended communication is symbolic, but that needs to get expressed somehow. Furthermore, this system needs to be connectable to user input of some kind.
- Fact/Knowledge. Information about characters and the world need to be managed somehow. This is a fundamental, underlying level and involves a great deal of inter-reflection. Characters might know facts about themselves, about others, and might have incorrect information. This system deals with models of models. It may be necessary to turn to outside knowledge engines for this sort of work.