Relationship Interactions Part 1

Introduction

It has been a couple of weeks since my last post. In this time, I have been working on the relationship interaction system, which was first being implemented 2 weeks ago.

Preface: Interactions

Relationship interactions are the decisions a player can make involving other peeps. These are things like sharing gossip, insulting and making jokes.

As mentioned in the previous post, these are implemented through a query system, which filters out relevant options to be shown.

At the moment, most relationship interactions have now been implemented. Here is a typical list of interactions:

Primary & Secondary Relationships

During development, I came across a problem. The problem was that each peep stored only 1 relationship with the player (ex. mother, father, friend etc.). The problem is, a peep could have multiple relationships with the player, such as being the player's friend and co-worker.

The solution I came up with, was to have what I call "primary" and "secondary" relationships. A primary relationship is one that is contingent on the player. Whereas, a secondary relationship relies not directly on the player, but one of the player's attributes.

For example, a co-worker is a secondary relationship, as this relationship is entirely dependent on the fact that the player is working in a specific place. The moment they leave, the peep is no longer a co-worker, hence not being dependent on the player, but the player's work.

A family member or friend, such as the player's mother is dependent on the player, immutable, and therefore a primary relationship.

I made the decision to store only the primary relationships as an attribute and the secondary relationships can be decided on the go. This is perhaps not the best solution, as a tag based system may have worked better (similar to that of the Sims), however, it was too late to retroactively go back and change prior code.

Instead, when a peep is selected, the primary and if necessary, the secondary relationship is shown. For example, this peep is the player's sister (primary relationship) and classmate (secondary relationship).

More Information

You may have noticed the question mark next to the peep's name. This is for more information about the peep, it looks something like this (at the moment):

(Note that I'm on a Mac at the time of writing this, and the formatting in the screenshot is different to how it should look)

Relationship Natural Shift

Another feature I worked on over the past 2 weeks, was the natural shift a relationship will have. That is to say, the change in a relationship over time without player interaction. I implemented this to add realism and to prevent the player from having to micromanage each relationship (but can make this optional at a later date).

Here is a video of that effect (relationships are connoted by the green or red bars below the portrait):

Favors & Promises

An important part of Pocket Life is the secrets, promises and favors system. This adds depth and realism to the town. A peep can "owe" the player a favor or promise and vice versa. These can be gotten through events or interactions (ex. blackmail). A favor can then be used to make asks to the peep, whereas a promise can be used to make demands. Here are some examples below:

These are dependent on relationships as well. For example, you can ask for a promotion from your boss.

Secrets

The player keeps a log of secrets that you know throughout your life. These can be used to pressure peeps into giving you things, or just to spread gossip around town causing chaos.

This system is not fully implemented yet.

Inventory

Another system that will be included is the player's inventory. This will store the player's artefacts, which can then be used to gift peep's, sell, pass on as an heirloom etc.

This feature has not been implemented yet.

Prison

Misconduct can lead to a prison sentence, which will restrict relationship interactions.

This feature has not been implemented yet.

Misc.

Some QoL features were added, such as better scrolling on the map, as well as the interaction menus.

New Website, Twitter, Updated Domain Name

This blog is now called "pocketlifeblog.com", rather than "pocketlifegame.com", which has become the main website for this game (which at the moment mainly just links back to the blog).

I aim to be more active on Twitter, such as posting updates separately there.

Conclusion

The next few weeks will be spent finishing of this system. At the moment, I need to prioritise more of my time to uni work and maybe slow down development, to ensure I don't get behind.

Comments

Popular Posts