Tuesday, April 9, 2013

Early Blog Post! Steps Forward

The Beta Review was yesterday, and I think it (hopefully) went pretty well. Aline said that all that really needs doing from this point forward is polishing. Norm, though, said that I was about "halfway done either way" - not having a real (fun, objective oriented) game or a fully illustrative demo with character emotions and histories visible onscreen.

With what I now know about Unity, the demo mode should be easy. I've already begun working on character histories, which I feel is the missing link between my original objective (teach computers to tell stories) and what I have now (dynamically generated, non tree based character behaviors that you can build a story out of). Once I implement character histories, I can show how easily the framework I've built can be distilled into coherent, always different stories.

The real reason for this post, though, is that I've thought of an easy way to extend my code into something simple yet playable. A murder mystery like we've been discussing, with only minimal changes to the framework I built. The main problem with the murder mystery is that because everything now needs to be extendable based on input from txt files, I can't have any actions get too specific in their behaviors - then I'm essentially just hard coding actions/emotions like before, instead of leaving that to the "writer". The plan was to create two or three different "game worlds" with different tones to show off how you could create new, shifting experiences for players within a multitude of different kinds of games, and I still plan on doing something similar to this (after all, it shouldn't be that complicated - just creating new action/emotion/config text files). But here is what I would have to do to make a simple playable murder mystery that takes full advantage of my work so far:

  • Start that simulation. Give all characters but the main character a "murder" action that removes one character from the game. The first time a character has been murdered, remove the "murder" action from existence (no serial killers or multiple murderers) and display the message: "Help! Someone's been killed!" Along with a message of who was killed and an alert telling the player to get to the bottom of it.
  • Add an "accuse" action. Every character (player, non player) can accuse other people of murder, but it only ends the game if the player accuses someone. For someone else, it just enrages the person they've accused. Potentially, I could have it so that someone who accuses the murderer is then also murdered.
  • End the game when the player accuses a character. If they are correct, they win. If they are not, the wrong person is incarcerated and they lose.
  • Add just one more "player only" action - "Question". Have each character store their emotional states and whether or not they ever interacted with the victim at the time of the victim's death. "Question" yields "I never knew him" or the emotional state at the time of murder "I was in love." "I was so angry." "I was bored." Thus, we can easily get simple motivations.
  • Modify the "get history" action (assuming I've already implemented it at this point for the data version) so that murderers skip over the line in their history where they've murdered someone, replacing it with another interactions ending moment (so there isn't a conspicuous gap between them talking with the victim and their next action, where the murder obviously went).
  • If I end up making it so that the murderer kills anyone that accuses them that isn't the player, I could have a secondary lose state where you lose if the murderer kills everyone but you.
Hopefully I have time to implement this. I think it's a great example of how a story can be generated dynamically with minimal guidance from the "writer". Simple as the system is, it gives us not only a full murder mystery but motives for the murder, which is what I would say separates it from simpler murder games like "clue" and makes it richer than something like "the Sims."

No comments:

Post a Comment