Bayesian academy game: Some game mechanics

So far I have spoken about the possibility of edugames being good, sketched out the basic idea of an edugame built around Bayesian networks, and outlined some design constraints. Now it’s finally the time to get to the actual meat of the matter – the game mechanics.

Note that everything here is subject to change. I’m aiming to outline things to a sufficient level of detail that I have a reasonable clue of how to start implementing the first prototype. Then, when I do have an early prototype together, I’ll keep experimenting with it and throw away anything that doesn’t seem fun or useful. Still, this post should hopefully give some idea of what the final product will be like.

(This post might not be enough for anyone else to start implementing an actual prototype, since there are a lot of missing pieces still. But I think I have a lot of those missing pieces in my head, it just wouldn’t be useful to try to write all of it down.)

To make things concrete enough to start implementing the game, I need to define a concrete goal for (a part of) the game, some of the concrete ways of achieving that goal, as well as the choices involved in achieving the goal. And of course I need to tie all that together with the educational goals.

Goal. Let’s say that, in the first part of the game, you are trying to get yourself voted into the Student Council as the representative of the first-year students. This requires you to first gain the favor of at least three other first-year students, so that you will be nominated to the position. After that, you need to gain the favor of the majority of the most influential students, so that you will actually be the winning candidate.

From that will follow the second part of the game, where you need to also persuade others in the council to support your agenda (whatever your agenda is), either by persuading them or having them replaced with people who are more supportive of you. But for now I will just focus on the first part.

I’m actually starting to think that I should possibly make this into more of a sandbox game, with no set goals and letting you freely choose your own goals. But I’ll go with this for the first prototype.

How to achieve the goals. The game keeps track of your relationship to the different characters. You achieve the nomination if at least three others characters like you enough. To be voted to the council, a majority of the characters have to both like and trust you more than the other candidates.

This seems like a good time to talk more about relationships, which are a rather crucial element of any social drama. Relationships are one of the main types of resource in the game, the rest of which include your public image, personal skills, and time. I’ll cover the rest shortly.

Relationships. Most games that model your relationships with other characters do so by assigning it a single numerical score, with different actions giving bonuses or penalties to the score. So if you give someone a gift you might get +10 to the relationship and if you insult them you might get -20, and your total relationship is the sum of all these factors.

This is a little boring and feels rather game-ish, so I would like to make it feel a little more like you’re actually interacting with real people. To keep things simple, there will still be an overall “relationship meter” (or actually several, if I can make them distinct and interesting enough), but affecting its value shouldn’t feel like just a mechanical process of giving your friends gifts until they love you.

Borrowing from The Ferrett’s three relationship meters, the ones I’m initially considering are like, trust, and infatuation/love.

Like measures the general extent to which someone, well, considers you likeable, even if they don’t necessarily trust you. A relationship that’s high on like but low on trust is the one that you might have with a nice acquaintance with whom you have intellectual conversations online, or that co-worker who’s friendly enough but who you haven’t really done any major projects with or interacted outside work. A high like makes people more inclined to help you out in ways that don’t involve any risk to them.

Things that affect liking include:

  • Having a public image that includes personality traits that other people like. Some traits are almost universally liked or reviled. Other traits are neutral, but other people tend to like people who they feel are similar to them – or, with some traits, dissimilar.
  • Acting in the interests of others, or contrary to them.
  • People having a crush on you.
  • Other people that you’re friends with.
  • Various random events.

Trust measures the extent to which people are willing to rely on you, and the extent to which they think you’re not going to stab them in the back. A high trust may make it easier to repair damage to the other meters, since it makes people more inclined to give you another chance. It also makes people more inclined to help you out in ways that involve a risk to themselves, to vote for you, to confide in you, and to ask you for help.

Things that build up trust include:

  • Telling people information about yourself, indicating that you trust them. If you tell someone a secret you haven’t told anyone else, this will impress them more than if you tell them something that’s common knowledge. (Just don’t jump to revealing all your deepest secrets on the first meeting, or you’ll come across as a weirdo.)
  • Making and keeping promises.
  • Acting in the interests of others, or contrary to them.
  • People having a crush on you.
  • Other people that you’re friends with.
  • Various random events.

Different characters have different kinds of ideals that they are attracted to. If your public image happens to match their ideal, they may develop a crush on you and build up infatuation. The infatuation will grow in strength over time, assuming that your public image continues to match their ideal. If you then also build up their like and trust, the infatuation may turn into love.

The fact that infatuation also increases their like and trust towards you makes it easier to convert their feelings to love, but the feelings may also come crashing down very quickly if you demonstrate untrustworthiness. An infatuated character is more likely to ignore minor flaws, but anything that produces a major negative modifier to any relationship meter may cause them to become completely disillusioned and start wondering what they ever saw in you in the first place. (Love is more stable, and makes it easier to take advantage of your lovers without them leaving you. But you’d never stoop that low, would you?)

A sufficiently high love makes people willing to do almost anything for you.

Besides the things that were already mentioned, love may be affected by:

  • The amount of trust and like that the person has towards you.
  • You committing yourself to a romantic relationship with them.
  • Whether you have any other lovers (some characters are fine with sharing you, others are not).
  • You choosing to genuinely fall in love with them as well – they’ll sense this and receive a considerable boost to their love meter, but you will also end up permanently prevented from ever taking certain negative actions towards them.
  • Various random events.

Every modifier to any of the relationship meters is associated with some source, which you may try to influence. For example, suppose that you promise your friend to do something by a certain time, and then fail to do so. This will produce a negative modifier to their trust rating. You can then try to talk to them and apologize, and possibly offer some compensation for the misdeed. If you play your cards right, you may be able to erase the penalty, or even turn it into a bonus.

Your public image. I have already mentioned your public image a few times, when I mentioned that your perceived personality traits influence the extent to which others like you, as well as the chance of someone developing a crush on you.

Basically, there’s a set of different personality traits that any character may or may not have. Some, like being kind or being cruel, are mutually exclusive. In the beginning, you don’t know anyone’s personality traits, nor does anyone know yours. If you act kindly, you will develop an image as a kind person, and if you act in a cruel way you’ll develop a reputation as a cruel person. And of course, not everything depends directly on your actions – your rivals may try to spread negative rumors about you.

I haven’t yet determined how exactly knowledge about your actions spreads. I don’t want all of the player’s actions to magically become common knowledge the moment the action is made, but neither do I want to keep track of every separate piece of information. And I do want to offer the player the option to try to keep some of their doings secret. My current compromise would be to keep track of who knows what for as long as the amount of people who knew a particular piece of information remained under a certain number. So if the limit was 6, then the game would keep track of any piece of information that was known to at most six people: once the seventh person found out, it would be assumed to have become common knowledge.

People who like you are less inclined to pass on negative rumors about you, as well as more inclined to pass on positive ones. You can also try to spread negative rumors about your rivals, yourself – but this risks developing a reputation as a lying gossip.

Personal skills. The best way of acting in any particular situation depends on what you know of the people involved. If you cultivate a certain kind of image, who will end up liking you more as a result of it, and who will end up liking you less? Is the concession you are offering to your offended friend sufficient to make them forgive you? How much should you trust your new lover or friend? Who might be spreading those nasty rumors about you?

There are several ways by which you could find this out. First, empathy skills can be learned by study: if you have a high relevant empathy skill, you can make a good guess of what someone is like, or how they might react in some situation, just based on your skill. Learning the skills takes considerable time that could be spent on other things, however.

Also, many personality traits correlate with each other, and various actions correlate with different personality traits. It’s almost as if their connections formed a… wait for it… Bayesian network! But in the beginning of the game, you only have a very rough idea of what the structure of the network is like, or what the relevant conditional probabilities are. So you have to figure this out yourself.

Ideally – and I’m not yet sure of how well I’ll get this to work – the game will give you a tool which you can use to build up your own model of what the underlying network structure might be like: a Bayesian network that you can try to play around with. In the beginning, nearly all of the nodes in the model will be unconnected with each other, though some of the most obvious nodes start out connected. For instance, you’ll know that cruel people are more likely to insult others than kind people are, though your estimate of the exact conditional probability is likely to be off.

If you suspect that two nodes in the underlying graph might be linked, you can try joining them together in your model and test how well your model now fits your observations. You can adjust both the conditional probability tables and linkages in order to create a model that most closely represents what you have seen, with the game automatically offering suggestions for the probabilities based on your experiences so far. (Just be careful to avoid overfitting.)

In addition, you can study various knowledge skills. Knowing psychology, for instance, may reveal some of the links in the network and their associated probabilities to you with certainty, which will automatically update your model.

Time. Everything you do takes time, and you can only be in a single place at once. Your lovers and friends will expect you to hang out with them regularly, studying skills takes time, and your plans may be completely interrupted by the friend of yours who has a mental breakdown and needs you there to comfort them RIGHT NOW. (But if you have a sufficiently good reason why you can’t make it, maybe they’ll understand. Perhaps.)

What choices do you need to make? The above discussion should have suggested some choices that you might run across in the game, such as:

  • Who do you make friends with?
  • Do you try to build a small group of strong friendships, or a large group of weak friendships?
  • Who do you trust with information that could hurt you?
  • How much time do you spend on learning the various skills?
  • How much time do you spend on chasing down the source of various rumors?
  • Do you want to spread any nasty rumors yourself?
  • Do you get romantically involved with someone?
  • If so, who will it be? One lover or many?
  • Do you risk doing things that would damage your reputation if people found out?
  • Do you generally side with the people who are your closest allies, or the ones who have actually been wronged?

And others. As you might notice, the choice you’ll want to make in most of these depends on what you’ve figured out about others… which should help us fulfill our goal of making the player genuinely interested in how to figure these things out, via the formalisms that the game employs and attempts to teach.

Free feel to suggest more the comments!


  1. That looks more complex than what I was expecting … a lot of those choices you list, like “making and keeping promises”, sound like they could be full-fledged mechanics themselves.

    Though those kind of choices (around promises, public image, etc.) can work if they appear in a scripted context rather than being emergent, though that seems at odds with replayability.

    • Well, it is intended to be fun enough to be played even by people with no inherent interest for the topic, that requires some amount of complexity to make things interesting. :-) And some of those are indeed intended to be full-fledged mechanics themselves, though obv care needs to be taken to ensure that the Bayesian framework is constantly present there.

      Of course, the version that I actually end up implementing will probably end up considerably simpler than this. This post is a bit in the “if I had unlimited time and resources territory” – we’ll see how much of this actually ends up used.

  2. I think I would lean towards incorporating some sandboxish and randomly generated elements, to keep players from being able to simply learn what actions to take from other players and progress without developing an understanding of the game mechanics, but I think it’s better to keep some elements tightly scripted, because it’s hard to apply much dramatic weight to anything if the writers aren’t working according to any particular narrative.

    I think I would suggest that the game follow any of several possible storylines, which the player directs the main character onto via such choices as which elements of the school body they attempt to appeal to for support, what sort of ethical standards they cultivate in their behavior towards other students (I would suggest tracking variables in the main character’s behavior such as honesty, loyalty, and consideration) whether or not they become romantically attached, and so on. I’d probably try to avoid a more conventional “if you view these events and make these choices, you will end up on this route” system.

    • Everything you’ve said here sounds good. :-) Though of course implementing several different storylines and getting them all to work is going to take much more work than just having a single one.

  3. I’m probably biased by currently having an abundance of free time with which to do the writing which would be my own part of the work.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.