Archive: June, 2008

Some further thoughts on APIs for social systems

[Experiments,General,Research] (06.26.08, 10:23 pm)

It will help quite a bit to establish exactly what will be needed from the various systems involved. It is clear that a knowledge system will allow characters to have reflective models of the world, of themselves, and so on, but it is less clear exactly how this information will be accessed or modified. What are the entry and exit points? What are the procedures? What is the greatest, clearest layer of abstraction that can be drawn here?

Similar questions can be raised for the other components as well. There are lots of resources on how to write modular and robust APIs, but these presuppose understanding what they are going to be used for precisely. Answering this question seems like the next logical step.

Social Simulation Architecture

[Research] (06.24.08, 2:20 pm)

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.

  1. 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.
  2. 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?”
  3. 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.
  4. 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.
  5. 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.
  6. 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.


[Concerts,General] (06.17.08, 10:51 am)

I’ve been finding it hard to write about work related things, especially research related things, because over the past several weeks there has been very little time to devote to them. The primary reason for this is the move. Overall, the move has gone very well, and we are happy with the new apartment, but it is one of those things that is enormously taxing in terms of time and energy. We decided to hire professional movers, which, ultimately, I think was the correct decision. The process of moving our possessions (including no less than twenty boxes of books) into the truck took them a mere two hours, where in the past it has taken something on the order of six or eight. So, we’re all set, aside from needing to unpack, which will probably take another three months or so.

In other, more exciting news. We went to see Ladytron at the Variety Playhouse. It was extremely awesome. I shouted along to all of the songs I knew until at the end I could barely speak. They played a lot from their new CD, which is outstanding and ethereal, but, sadly, they did not play Blue Jeans. Woe is me.

More later when things settle down.

Adapting a fictional domain

[Research] (06.10.08, 6:20 pm)

Let’s look at the adaptation problem again in context of all of this modeling business. If our goal is to adapt a work from a narrative medium into a computational medium there are a number of implications. The first is that because in order to build a model of a narrative, one must first take an interpretive position on it. Forming the model is a creative act in the first place. However, this is not quite good enough. The model of the story, including its setting, logic, tropes, character types, characters, events, etcetera, still remains a descriptive model, not a generative one. A human author could take this model and say, write a in-setting continuation of the book’s events, but that model is not sufficient for a computer program to emulate it. What is required here is a second process, which is to build a procedural model from the descriptive model.

To make a procedural model from a descriptive one, information in the model must be formalized, the model’s rules must be converted to algorithms, and the fundamental ambiguity present in the model must be made concrete and unambiguous. This step has the greatest destructive capacity in any adaptation. But, is the most important in terms of making creative decisions. Many descriptive models simply cannot be made into generative ones, so this can lead to various problematic situations. In games, where these sorts of adaptations are abundant (at least for certain types of source narratives), there is an existing repertoire of procedural models that work well as games, so the underlying source model becomes destroyed or forced into this new shape. Successful adaptations necessarily do not have this failing, but identifying successful adaptations and their models is a difficult task (though it will be an important one).

However, some degree of conventions and tropes from the target domain will be necessary. It would be impossible for the resulting artifact to be recognized as a game if it lacked means of input. Regardless of the model underneath, there would be impositions from the source domain in terms of what the model is allowed to do.

Creating an adaptation will also require a representational model of the source text. How do elements appear and how are they described? If the adaptation is visual, then it requires some sort of visual representation of the characters, spaces, objects, etcetera. A visual design strategy and scheme must be chosen, and this would need to resemble the source text in some way. This process requires another set of decisions. Like adapting a written narrative to a film, there are many aesthetic choices available and necessary, and these must be consistent too with the descriptive model formed of the source in question.

Ultimately, what form will the adapted artifact have? If we are assuming it to be a game, it will necessarily be interactive, and would be a simulation of the procedural model built. That means that the resulting work could be played in many different ways, allowing a great deal of creativity and exploration of the model being simulated.

However, there is another degree of freedom introduced through this process. Because procedural rules are concrete and unambiguous, they may be disputed or challenged. It is possible but futile to challenge the motives or actions of a character in a narrative, but if an adaptation has been made, the user can challenge the interpretation made by the adaptor. Originals have a certain inherent authority, but adaptations can always be made and remade. Forming an adaptation means making decisions on a variety of levels, and the existence of an adaptation implicitly states that it is possible to make an adaptation in the first place. As a result, the existence of the adaptation, and the formalized nature of its rules makes it a target for criticism, analysis, and modification. A procedural adaptation of a narrative opens up the model of that narrative.