dmitchell / ggj-dinner-faux-pas

From the global game jam 2016

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Dinner faux pas Shakesperian.

You are a guest at a dinner of Shakesperian characters. You do not know the characters, but the game is designed around them. For example, you may be eating dinner with Hamlet, Claudius, Gertrude, and Ophelia. Your actions may exacerbate or ameliorate their animosities and suicidal ideation.

You actions are toasting, speaking (with emoticons), getting food and drink, using utensils, eating and drinking.

The NPC's interact with each other and you. Their actions are the same as yours; however, they have individual biases. For example, Hamlet will direct angry statements to Claudius if he's not completely happy. Successful angry barbs make him angrier.

Basic engineering design

Each NPC is a separate object. Each NPC has 2 scales: anger-happiness, and confusion-clarity. As they get to the extremes of the anger-happiness scale, their interactions increase. At the happiest level, they interact with everyone or with those they like. At the angriest level, they interact with the one they hate (or shut up completely).

The external environment also has events such as the courses coming out.

Your behavior affects each NPC as well as yourself. Faux pas increase NPC confusion or defuse NPC. Interventions can exacerbate or ameliorate anger.

Representation:

```javascript
{npc: 
 {hamlet: 
   {happy: .4, // starting value scale 0..1
    clarity: .5,
    operations: 
      {drinks: [
       {happy: [.2, .6], // if happiness between these
        clarity: [.4, 1.0],
        p: 0.1,
        target: claudius, // or all or player
        action: dagger_emote,
        effect: {claudius: [.04, 0], hamlet: [.05, 0], gertrude: [.02, 0]}, // this model has the weakness
	     // that claudius's and gertrude's responses should be a function of 
             // their current state: if confused, then they may ignore the interaction.
             // if they are happy, then they should get confused not angry
             // if they are angry, it should amplify
       },
       ...
     ],
    {anytime: // things which can happen anytime
       }
  appearance: [
  {
    happy: [0, .1],
    image: foo.jpg
  }
  ]
 }..
 },
{course:
   {drinks:
     {start: 0, end: 45, // 0..45 seconds
      image: drink.jpg,
      x: ..., y: ...
     }
   },
}
     
```

About

From the global game jam 2016

License:MIT License


Languages

Language:JavaScript 98.8%Language:CSS 0.8%Language:HTML 0.4%