It’s been a while since my last update, mainly since I’ve been chucking so much time at two contracts, this project, and a newborn daughter, that every time I think of writing a blog post, my eyes turn to marbles. There’s a limit to what my brain’s been able to deal with over the past few weeks. However, with more sleep becoming available, and more progress being made on the (Windows) editor for Interrogative, I thought it was finally time for a blog post.
As a matter of fact, I have some screenshots to show off. A few shots of the Interrogative Editor, that allows you to access and edit the data that is used by the Personality-based AI, as well as the semantic knowledge that makes up the NPC knowledge for conversations. And live-game data, if you want- it works better when the NPCs have an inkling about the live game world they’re in. Interrogative doesn’t wall that off.
The last two blogs have focused quite heavily on my implementation of Dialog Templates, and for good reason: We’re working with live data and need fast, relatively easy ways to put that data into a format that fits conversations with players. Generally speaking, a lot of what we say can be broken down into templates. The majority of conversation tends to consist of agreements: “Okay.”, “Yeah”, “uh huh”, head-nodding, etc. The rest breaks down into a finite number of categories, which then break down into a finite number of ways you can get that information across to the other person. Granted, that finite number is incredibly large, but sentences aren’t just a permutation of words. Grammar, and the need to address certain topics, limits what you say in any given sentence dramatically, and being creatures of habit, people tend to talk in a certain “way”, and that “way” is just the format of words that they use. In short, Dialog Templates are built partially on how people use words.
I was hoping to be able to blog a bit about Opinion objects and such today, but I didn’t get around to it last week. In fact, I did work on the dialog templates that went beyond what I talked about in the last blog.
Localization and customization is a big deal…
Of all of the feedback I’ve received during GDC when talking about Interrogative, one of the most received was that of being able to localize the dialog generated. That’s a valid concern: Games these days launch in multiple countries at once, or with localized versions following very closely behind the primary-language version. The amount of effort for such a task is actually pretty big, unless you’re working on an online game with massive amounts of text that needs to be converted, in which case the task is absolutely monumental. I could forgive people for looking at tech that generated dialog with localizing near the top of their list of features they would need to assure them that this tech was for them.
Fortunately, Interrogative has a solution. And it goes hand in hand with being able to do a ton of other cool things with dialog…
I’m Fried from GDC…
GDC is always a good time, and it never fails to absolutely liquefy the wrinkly organ between my ears for at least a couple of days afterwards as my neurons rearrange themselves to integrate everything I’ve absorbed. Having Daylight Savings Time occur a day after I get back and before I’ve dealt with the jet-lag is not helping me with that task. Suffice it to say that GDC and the AI Summit were great, as were the sessions I attending for things like morality and characters in the Narrative Summit (because Personality-based AI makes morality topical!), and procedural content generation talks such as that given by Esri for their CityEngine tech. That, and seeing all the guys and girls I usually only get to see once a year at GDC and trade brain cells with, which is always a hoot.
Also, I gave a few demos of Interrogative…
Adding Grit to the equation…
It’s not that I didn’t think there were enough personality traits to work with already. I mean, there’s sixteen of them! However, the traits did not seem to adequately cover characters that can simply hang in there while going through hell, despite what you’d think of their personalities otherwise. It’s the same in the real world as well as in Hollywood: Some people are more easily discouraged than others to keep on keeping on. You can hear of people getting stuck in mountain passes for weeks on end, who hung on to a thin thread of life just long enough to be rescued, and those who unfortunately did not make it. Some of that is due to a trait that is partly genetic, and partly imparted through childhood. And that trait is Grit.
In the previous blog, I discussed the progress I had made with Interrogative 3, and realized that up to now, I had not discussed something that is core to how NPCs communicate with players (or, eventually, each other): Knowledge Levels. It’s important to understand what this is to see that Interrogative is not just some run-of-the-mill dialog tree implementation, and a lot deeper than just a collection of semantic data that can be used to sling facts at players.
Whew! Just closed out the 0.8 milestone for Interrogative 3 this weekend, and I only had one task carry over into the next milestone. There’s a really good reason for that happening, too, but first, a few tidbits on what got added during this milestone, since the last week or two have been quiet…
They, who are not what they seem…
This week, I’m talking about personalities that are not what they seem, and Jekyll and Hyde is one of the best examples. A mild-mannered man (Dr Jekyll) drinks a potion that turns him into a sociopath known as Mr Hyde (read the plot here), and though they are one and the same person, their personalities are completely different. Another example, from the real world this time, would be serial killers who manage to live double lives. Some were even pillars of the community, caught only when they got sloppy, and shocking everyone around them.
Nothing much to report this week, except that a combination of the holidays and a cold means that I spent way more time on the couch than I should have. That, and I’ll be roaming the halls of GDC 2015 this year.
It’s been a while since I’ve been to a good game development conference, and GDC is definitely the best of them- if you haven’t gone, it’s highly recommended. I’ll be attending most of the talks of the AI Summit, and hoping to learn a lot and apply that to Interrogative 3, as well as to game development in general. Also- since when does San Francisco have so many crappy hotels with shared bathrooms? Did they just give up on offering nice accommodations unless it was over a hundred bucks a night? I found a “normal” hotel for a non-horrible price, but damn, I had to look a lot harder to find one.
Also, for those getting here via the DigitalFlux.com domain, that will be going away in the next few months in favor of the new BablBrain.com domain (which already points here, so you can bookmark that, if you are so inclined). Having had DigitalFlux for so long, it’s going to a take a while to change everything I use over to the new email domain, so there’s very little rush in that. Seems a bit odd to be letting the old name go and starting over from scratch, after so much time, but sometimes you have to start over to make progress, even if the starting-over is more symbolic.
Okay, time to get back to work…