Something To Say!


Knowledge about the state of the world and what the player is doing on that world are very important requirements for any NPC to function properly. By enabling NPCs to share knowledge between themselves about the state of the world, over time they will change their perception about the world around them. One of the ways in which the behavior of NPCs can change is in role playing games (RPGs).

In RPGs, for example, NPCs that are able to give quests to the player require some type of knowledge about the world or the player in order to know if they should give the player the quest they hold. Traditional role playing games (RPGs) have always used some sort of quest based system to tell their story. As the player explores the world, he interacts with different NPCs with the ability to give the player the quests he needs in order to advance in the game.

There are multiple ways by which NPCs can access information about the world. Through global databases that store data about the world and the player or multiple smaller databases that store data in different categories. Sometimes an NPC only needs to keep track of a specific action and check if that action has already happened or not in order for him to function properly. Some games try to make "smarter" NPCs by improving their behavior and the way they interact with the world and the player.

Some games like Middle-earth: Shadow of Mordor go as far as procedurally generating NPCs with unique personalities in a system known as "Nemesis System", which allows the artificial intelligence of non-playable characters to remember the deaths of the game protagonist and react accordingly. Before we get to the problem, we first need to define what we mean by "believable communication"

Believable Communication

In a simulated world environment we can change and adapt rules as we please that would not be possible to apply on a real world situation. I can, for example, decide that the world I am creating is void of gravity, and that trees grow from top to bottom and not the other way around.

In games of the genre role-playing, we are playing a role. And as we play that role we usually abide by the rules of that world. When those rules are different from the rules people are used to follow, the player has to learn those new rules. By making communication work more like what happens in reality, the way NPCs communicate with each other becomes easier for the player to understand.

There is a good reason some RPG games try to use reality as a model for mapping the behavior of the game world. The theme of the game changes, and the events can take place in the past, present or future, but most of the rules present in the game have some type of truthfulness that comes from reality.

What makes the game "believable" is the ability of the player to recognize something in the game that is present in reality. The less believable a game is, the more a player is forced to learn the world rules, because when he perform an action he does not know what the outcome might be. When trying to make a game more believable we are trying to model the world in a way that most players would agree with intuitively, without the need to understand first how the world they are in behaves.


Communication between NPCs in RPG games is scarce and usually exists to make the world seem more alive to the player by making the player watch how NPCs interact with each other. The participants in the conversation are not actually changing the state of the world and the fact that they are talking to each other is used to convey to the player the idea that they are related in some way like friends, family or even enemies talking before a fight.

Communication can also happen between NPCs as a way to tell a story to the player, and can happen as a video cut scene or a real time event where the player sees the NPCs reaching one another and talking about something that is relevant not to them but to the player.

Communication between NPCs is a tool that is useful for the player and not for the NPCs themselves. When NPCs talk to each other, the end goal is usually to help the player progress in the story or to make the world more realistic.

One thing traditional RPGs do very well is to keep the story they are trying to tell consistent. The player is free to explore the world and to change it to a lesser degree. Some events can be procedurally generated and a story can have different endings based on the choices a player makes.

The problem arises when the player changes the state of the world. Some NPCs require the player to perform certain actions in order to complete a quest and other NPCs might only give certain quests to the player if he has all the requirements for that quest. The common thing among NPCs is that they must have some knowledge about the state of the world in order for them to do the things they are supposed to do, being those things related to the interaction they have with the player, or more simple behaviors like changing their movement pattern and daily routine.

What we see happening in current RPGs is that since the game changes when the player does some action on the environment, and every NPC has access to the state of the world, he knows about the actions performed by the player the moment that action takes place, no matter who the NPC is or where he is located in the world. In games like World of Warcraft, when the player completes a quest in \textit{Location A}, no matter the distance, another NPC in \textit{Location B} can change his behavior and possibly unlock a new quest for the player to accept.

Usually in RPGs, When the player changes the state of the world (being that because he chopped down a tree or saved someone from drowning) the update on the game world is felt by all the NPCs that depend on those actions for their behavior, and it usually happens instantly. The fact that a change in the world is known instantly across all the NPCs for whom that world change is relevant presents a problem when it comes down to believability. In a believable world, When people perform certain actions it takes time for more people to know that those actions took place.

The fact that information generated by the world is globally available to all NPCs that inhabit that world constitutes a problem in a world where a more believable communication is desirable.


The solution we are proposing is a way for NPCs to share information generated by the player (or the world) between themselves, and as such being able to react and adapt over time to the changes happening in the world.

The sharing of information must not be instantly know to all NPCs that require it and, like in the real world, take time to reach another NPC. In this work we consider how information that is being generated in a simulated world can be shared among NPCs and how this NPCs can propagate information about the world over time.

By allowing the player to observe in real time how his actions are influencing the world around him, we hope to understand what benefits can be drawn from using a system where information does not reach NPCs instantly but is propagated over time.

We will propose a system based on social networks, along with a model of how information can be processed and distributed between agents in a simulated world environment. I will further use this system on a game scenario to test the validity of this model.


There are 4 main contributions With this dissertation:

  1. The research done on current games that improve how NPCs communicate and behave using different AI techniques.

  2. The definition and validation of a model for how NPCs communicate with each other.

  3. The implementation of a working model in a game scenario.

  4. The elaboration of tests with human players, where they were asked to play two different versions of the game, one using our model and the other using a standard approach to how information is shared in current video games.