StoryBricks is a fascinating project that aims to democratize traditional role-playing games, helping users easily specify behavior for living entities in the world, then share their creations with other players. As you may suspect, the AI challenges to pull this off are incredible — on the scale of a mainstream title like THE SIMS 3 with the risk of innovative indie games like FAÇADE.
It has taken an audacious team to even attempt a project of this caliber, and this weekend we'll be interviewing the Lead Designer Stéphane Bura about the underlying technology (see the live broadcast page for details). To succeed the team will need to figure out how to do it without the budget of Electronic Arts! If you'd like to help, even if you don't have millions in the bank, go and visit their Kickstarter page.
I asked Stéphane some questions about the project by email, which you'll find in the remainder of this article. But since he had so much to say and was so passionate about the topic, we scheduled a live broadcast with him too for this Sunday!
Utility & Traits
Q: At GDC you presented a concept for a utility-based AI system combining large vectors of traits, that presumably underlies Storybricks. What's the benefit of this approach?
Stephane Bura: In most games, players and content designers don’t care about how the AI represents the game concepts it manipulates. Storybricks is different because, as a RPG storytelling platform, it allows players to directly manipulate concepts that have a deep meaning for the AI, like anger or courage. So the challenge was to come up with a representation of these concepts that would make sense both for the player and for the AI, and furthermore was easy to use.
Storybricks uses these large vectors of components to describe the qualities of any concept or behavior. Each dimension describes one such quality, like how the concept relates to “caution” (low for anger, very low for courage) or “emotionality” (very high for anger, neutral for courage). These vectors are used to qualify all the concepts used by the platform, from emotions, drives and psychological traits, to behaviors, relationships and traits that can describe items or locations. When you have such a common “language”, anything can be compared to anything else. A simple scalar product of two of these vectors yields a number, comparable to a utility value if one of the vectors qualifies a behavior, which is a good indicator of how compatible these two concepts are. For instance, (anger.friendship) yields a low score while (anger.berate) yields a high one.
The second big design constraint of Storybricks is that we have to be able to easily add content to the platform: new traits, emotions, behaviors, etc. So, we couldn’t have behaviors test a “if angry” clause or behavior tree node, because we would have had to rewrite all our behaviors each time we added a trait. The nice thing about this approach is that new traits, since they are expressed in the same formalism, are incorporated seamlessly into existing characters or objects.
Q: How has this approach evolved with time and experience? Is it as easy as letting the designers paint those traits in the world and letting the decisions emerge?
This idea worked surprisingly well with a small number of traits and behaviors. But, as their number increased, it became a bit fiddly and this made it difficult to track the influence of a given trait on a given character’s behavior. This wouldn’t have been too much of a problem in a more simulation-oriented game but Storybricks aims to provide high-level tools with which players can easily manipulate the emotions of the characters in the world. If you make a character afraid, you don’t want the “afraid” trait to be just one of many, you want the character to become jumpy and to react in a scared manner to violent interactions. This led us to add a new layer of abstraction. Instead of dealing with traits, players can assign roles to characters. Roles are themselves defined with standard traits and come with their own behaviors. You can think of them as states but the nice thing is that you can assign several roles at the same time to a character (like “corrupt” and “upper class”) and, if you don’t overdo it, their respective influences on its behavior remain clear.
We’re not at the stage yet where designers can place traits in the environment themselves, so that a tavern triggers more joyful behaviors or a temple more solemn ones, but we’re getting there. I suspect that we’ll also associate roles to such places, instead of just traits, so that behaviors and mores can be added to locations, making them more modular.
Q: What's the big challenge in using such a system to create believable characters on the scale of a RPG?
Storybricks’ goal is to offer a headache-free platform for role-playing. And by that I mean the tabletop kind of role-playing. The main challenge is not so much a technical one, but involves defining and refining what this entails.
If we want to create a virtual game master or an environment in which you can be the game master of a virtual world, we have to decide the amount of control you’ll have over the world versus the amount of autonomy AI-controlled characters have. We knew from the start that we wanted to move away from the existing tools that require their users to define every detail of every behavior. So, instead of having to plot the movements and actions of a guard, we provide you with high-level “patrol” and “guard” behaviors that you don’t have to configure (just drop a guard somewhere) and that can be interrupted by other behaviors depending on the roles you have given to the guard – a lazy guard might fall asleep, a curious one investigate suspicious-looking characters. But is it the right level of control for telling a story or for describing an interesting and believable world? Do these behaviors provide enough hooks for interaction and drama?
We’re experimenting, learning the answers and the process is as fascinating as it is elating.
Q: Why is such an approach interesting for players and designers who'd like to create their own games, or role-playing servers?
A lot of creative people have no knowledge of programming, 3D or animation. They’re incapable of using professional development environments. Yet, when they’re provided with easy-to-use creation tools, they’re able to produce astounding works, as The Sims and Minecraft among others have proven. No such tool exists today that focuses on the creation interactive stories or complex living worlds. We believe that there is a need that we can satisfy.
Q: How can you imagine Storybricks helping future designers create their own immersive simulations like DayZ?
It’s our ambition. We’re still deciding how open the architecture will be to modders but, even in its non-modded version, Storybricks will allow creators to rewrite behaviors on a large scale. For instance, you could say things like “Everyone is sick” and “Everyone who is sick is untrusting” and create a country of plagued paranoids. If you put some effort into it, there’s no limit to the richness of the world and rules you can create. As an aside and to address DayZ, the first role we developed was “zombie”. It was a very convincing way of showing how a single brick could radically transform the behavior of a character and add interesting story possibilities.
At its heart, Storybricks is about leveraging the creative power of the role-playing community. That’s also why we chose to crowdfund the project (see this Kickstarter page), because role-players, game masters and storytellers are the ones who truly understand our goal. We build Storybricks so that players can surprise us with what they do with it.