AIGameDev.com already beat me to punch, downloadable slides to boot.
Blogging about AI while sounding I is hard.
... do you want...
... that free phone?
- Rather than build an enterprise website from scratch, we bought content management middleware. That decision still haunts me.
- Burrito was further than expected, arrived late to this session.
- Panel looked smart. Could feel the smartness.
Steve Gargolinksi - (left) thoughtful. succesfully using middleware
Borut Pfeifer - smart. possibly using middleware
Chris Jurney - reflective. abandoned middleware mid-game, replaced with custom
Brett Laming - (right) no-nonsense. doesn't use middleware, no intention of starting
John Funge - host. know nothing about him
|Steve||Do your own integration, but keep middleware guys involved. Ask them how to extend their engine so you don't run into traps. Company should provide solid support, stable tools, and a large example game (small demoes lead you down the wrong path). It's not the runtime that gets me excited, somuchas the tools.
|Borut||Middleware should provide the data pipeline and lower level stuff. Don't bother with flashy stuff you can easily write yourself. Source code a must.
|Chris||"[AI middleware] integration isn't free, time spent on integration is time you could spend building your own engine". Can't have middleware people do integration for you, you need that knowledge in-house. Have game team integrate (and learn) middleware upfront, when problems are easily solved. Give us source code.
|Brett||Middleware should give me run time components and tools i.e. build my nav mesh and annotate. Give me the data, then i'll take care of it. "using data is easy... easy-ish."|
Apparently, AI Middleware companies are starting to patent their stuff.
John asked panel for thoughts about this.
Responses were gracious and thoughtful.
Chris - "distasteful - but I'm not a business person"
Steve - "i don't think software should be patented, but I'm not a business person"
(Must find this business person... and kill him)
How much is something worth to me? Compare all the potential actions that we have at this moment to each other, use the utility percentage for each action to decide.
Example (changed to reflect personal issues):
Action: Do I buy pants?
Distance - Gap far away, so no.
Warmth - Cold outside, so yes.
Job - Men wear pants, so good chance.
Normalize for point context (otherwise known as percentages)
Utility Value? Distance (0.1) + Warmth (0.9) + Job (1.0) = 2.0
2.0 means nothing by itself.
Action: Do I buy skirt?
Distance - Suzy Shier close, so yes. 1.0 - thank s-curve
Warmth - Cold outside, so no. 0.2 - logit shoutout
Job - Unlikely to land one. 0.5 - linear props
Utility Value? Distance (1.0) + Warmth (0.2) + Job (0.5) = 1.7
Heart says Skirt, Utility A.I. proves pants.
2.0 pants utility percentage trumps 1.7 skirt utility percentage.
In a just system, each value will have different weights.
i.e. I value convenience, which doubles distance weight. Skirt wins! (2.7 skirt > 2.1 pants)
Bonus: If you just bought a skirt, marginal Utilty can handle it
(Distance x 2.0 Convenience + Warmth + Job) x (HowManyDaysAgo/365)
Bonus: Can combine multiple Utility calculations together.
Bonus: Can finally answer "Do I buy slacks?"
Referred to page with line drawn down center as "T-Graph".
Can group/distill wants/needs. i.e. If you're buying an apartment, there are many needs. With some key insights, can group them into 4 categories / considerations (cost, distance, aesthetics, soundproofing). Design considerations to be reusable throughout this project, and hopefully the next.
For different NPCs, these considerations get weighted differently. i.e. Family man doesn't mind long commutes and doesn't care about how dull apartment looks. i.e. Teenage kid doesn't care about soundproofing and wants a cool looking pad. Pros become cons, and cons become pros. Amateurs not mentioned.
- Reasoner has a list of possible choices
- Each choice has a list of considerations
- Considerations generate appraisals
"Add utility to what you're doing so you stick to your decision."
Otherwise, NPCs will constantly switch between sniper rifle and pistol while pacing.
Spent 10 minutes talking about how to appraise.
i.e. Having no ammo means veto ALL shooting considerations.
(Notes stop here)
most beyond my ability to understand, let alone blog
|Q:||This is predicated on a deterministic universe. For example, winning the lottery has great utility, playing the lottery has low utility.|
|A:||Utility can be used if you consider things like the probability of success... same problem with a behavior tree, you've got to do your best guess.|
|Q:||... or you could apply learning.|
|A:||good luck with that.|
|Q:||Did someone seriously ask the above question?|
Starstruck, i forgot to take photos. Luckily, I was able to find substitutes.
Bringing Interactive Storytelling to Industry
Found Daniel's presentation confusing. Hence notes confusing.
"Hecker says interactive storytelling isn't for us..." (he's wrong?)
Interactive storytelling is about managing experiences.
Interactive storytelling is searching.
Can do this search at design time, or run time (A.I.)
Games can be divided into 3 Genres:
Rollercoaster - Half Life, Metal Gear
Experiment - Civilization, Mario, Far Cry 2, NetHack
Challenge - Street Fighter 2, Defender, Left4Dead
Experiment games fall between Rollercoaster and Challenge.
They have the most choices and options.
8 Cases where Storytelling A.I. could be used for stuff (beyond animation):
1. Act 2. Bark 3. Hint 4. Guide 5. Calibrate 6. Pace 7. Surprise 8. Storytelling
Left4Dead proves most can be applied to the challenge genre (much to Daniel's surprise).
I'm afraid Daniel needs to take it from here.
Can't help but wish that story progression was more rich and dynamic (based on history, events, etc.). There are off-the-shelf drama management techniques we can use today, it's not pie in the sky. View interactive story as an action selection problem "pick the next story out as a function of the history".
Policies can apply chess-like look ahead search to drama management. Looks at history, projects possible story futures, then picks the best story "move" (beats/missions) that maximizes future expected goodness.
Drama management makes story graph links virtual.
Story generation makes story nodes virtual.
In the academic world, there's a long history of story generation.
World and Character Simulation
Unleash characters in a world, whatever they do is the story.
Older text based story generators (Cavazza and Mead, Talespin) showed how.
Presented a behavior tree about Ross getting Rachel to go out with him.
With a single diagram, Michael produced 10 seasons of Friends.
Limits: Boring stories. No rising action.
Mateas has yet to see a character based system that results in interesting stories.
Obviously, Mateas has seen Friends.
Author goals and plans (for the universe) that make no sense to the characters.
Author is trying to ensure characters are unhappy.
Characters are unaware of this, and don't want this.
i.e. A pig that wants to be a sheepdog while society wants to eat him.
Create a ton of story fragments with prerequisites.
Pick pieces that meet current pre-reqs, which leads to more fragments.
Since hand authoring these pieces is impossible (you're basically building a behavior tree),
use Wide Ruled - a text-based interactive story authoring and generation tool.
And who could forget Scott Turner's Minstrel which not only generates stories,
but riffs on the stories it generates.
Expressive Processing is a book worth reading.
"Much of the work that has to happen is knowledge representation and modelling (design),
rather than algorithmic work (technical)."
"I love games, but I hate shooting things.
This is not because I'm a nice person, it's that I'm no good at it."
My Ideal Conversation
- characterizes the protaganist and NPCs
- allows significant choices, but doesn't overwhelm the player
- feels like a well-formed scene
- doesn't make the NPC feel like a machine
(essentially a conversation I've never had in real life)
"Dialogue Trees Suck" (applause heard)
They encourage mowing the lawn (not missing any spots while mowing).
Mowing the lawn not very enjoyable and doesn't feel like a conversation.
(Strongly recommend downloading Emily's slides.
She has some great diagrams that are beyond blogging justice... as you'll soon read)
Quip - an actual line of spoken dialogue i.e. "it's sure hot out today"
Subject - what is the dialogue about i.e. Weather
Scene - what are we trying to accomplish
Sample Game: Glass - a fractured fairy tale
Player is a parrot, can squak subjects that influence the conversation.
Allows player to shape the action of the Cinderella NPCs.
|Subject-Structured||Subjects connected with other subjects
i.e. hoedown related to marriage related to heirs
|Goal-Seeking||NPCs have an agenda of moving the conversation from one subject to another. NPCs pathfind between subjects... do I sense an AISummit theme?|
|Quips as Connectors|| i.e. Parrot squaks marriage, NPC segways from hoedown to marriage
"Do you think Theodora's grotesque dancing will attract a suitor?"
Sample Game: Alabaster - also a fractured fairy tale
The Queen wants Snow White's heart. Snow White might deserve worse.
Gameplay is about getting info out of the characters.
Quip-Structured - quips are related to other quips (closer to a dialogue tree).
i.e. "Where are my keys?" leads to "Where is my car?"
When quip structure gets exhausted, NPC pushes story forward by changing subject.
Showed diagram of Alabaster quip structure... ouch.
1 Quip is related to many subjects
i.e. Quip "Where are my Uncle's pants?" can lead to quips related to uncle or pant subjects, regardless of quip tree hierarchy. Choose next quip based on history of subjects introduced, and you've got dynamic conversation more flexible than dialogue trees allow.
(I really think dialogue should be spelled dialog)
(While unable to stay for this session, I like to think it was civil)
hallowed halls, teeming masses, no free phones