Hi! Remember me?
The
big secrets are pretty much done, so let's try taking a few steps back towards devlogging again. Can't promise the super regular daily updates of times past as secret stuff will still pop up, but I think this month will be a good spot to at least break the solid silence. So here goes!
Update 523The scavenger social memory, where they would track relationships to the player and remember them across cycles, has now been extended to the lizards.
This was in part approached as a difficulty tuning tool - by making the lizard
default aggressiveness lower we can reel back the difficulty a bit (much needed) while still having the hardcore experience in there for those who seek it out. Basically it works like this:
Lizards have a unique social memory, where they can track memories of your behavior towards them. So if I throw a spear at a lizard or generally harass it, that will go into the lizard's social memory. The social memory consists of 5 parameters, "like", "fear", "temp like", "temp fear" and "know". At the moment lizards don't use the "fear" parameters (only scavengers do) so let's simplify by leaving those out for now.
So suppose you throw a spear at a lizard and miss - that's considered a negative "social event" where you are the subject and the lizard is the object of the action. All critters in the room that are aware of the subject and object and have the social event module in their AI are notified of this event and allowed to react to it. Most notably in this case the lizard itself, which is also the object of the action. In simpler terms, the lizard is allowed to understand that "the player did a bad thing to me".
This affects the social memory of that lizard. The "like" value is decreased, and the "temp like" value is increased even more (at a factor of 150% atm). So we get, say a "like" of -20% and a "temp like" of -30%. When deciding its actions, the lizard AI asks for the "temp like" parameter. The "temp like" parameter slowly moves towards the "like" parameter over the course of several seconds. In effect - the lizard will start disliking you quite a lot momentarily, but that will go away after a little while. However there is also a lasting memory which will persist for as long as that lizard is alive.
The "know" parameter is a modifier to changes in the relationship. It goes up every time the relationship changes, and the higher it is, the less effect the relationship change has (though it always has some small effect). This basically means that your first impressions are most important - if you start out by throwing 4 spears at a creature, it will be way more hesitant to befriend you at a later point, and if you're good friends with a creature it's more prone to give you the benefit of the doubt if a stray spear brushes close by it.
Not complicated enough? Don't worry!
Apart from the individual creature relationships, there is a system keeping track of your general reputation among different communities of creatures.
So in our "player throws spear at lizard" scenario, apart from affecting the social memory of that lizard there is also a small negative effect on the lizard communal opinion of you.
The reputation matrix is 2D - in the screenshot you can see the regions horizontally and the different communities vertically (there are probably more to come).
Throwing a spear at a lizard will have a pretty big effect on the lizard community in that specific region (the -5.3 in the image). But it will also "bleed", with a lower effect, into the
global lizard community, and into the
general community of creatures. Top left you can see the global/general reputation (yellow), which basically reflects how well perceived you are by the wildlife in Rain World in general. This one moves very slowly, but if you are a notoriously bad egg towards every living thing you come across, you'll be able to slowly wear it down, or vice versa!
Simplified, a creature encountering you will decide on its opinion of you according to the following priority:
Personal opinion
The opinion of its specific community in this specific region
The global opinion of its specific community
The regional opinion of the global community
The global general opinion
This means that if a critter has its own opinion of you, that will trump over any communal reputations. If it doesn't however (encountering you the first time) it will look to its regional community, and then go upwards towards the more general opinions.
Theoretically this should mean that you'll be able to develop specific relationships with any specific sub-group of creatures, but also your general opinion among creatures is kept track of sort of like a general good/evil parameter.
An interesting part of this is that being good to one creature basically always mean being bad to another - saving a scavenger's life by throwing a spear at a vulture, or killing a lantern mice to give to a lizard in order to make friends. How actions like those will affect the global opinion I don't quite know yet, we'll have to see!
At the moment most of the interactions you can take part in are negative - violence of different kinds. There is however the action of saving one creature from being eaten by attacking its predator, which is sort of a negative and positive. Really can't wait to see how this all plays out! Later we'll add the social interaction of gifting a creature and item or food, which will also be a positive interaction.
As positive interactions are generally also negative but there exist plenty of wholly negative actions, I have it set up so that negative reputations are slowly move back towards zero over the cycles, whereas positive reputations remain, to compensate. How this works and exactly how it will be tuned will have to be concluded through testing though.
All of this came about as a solution to a difficulty tuning problem - the game was just too tough on a new player. The idea here is that there'll be some adaptive difficulty because of this, the game being soft on the softies and hard on the tough ones. So if you're a fighter brawling your way through Rain World, Rain World will respond in kind, whereas if you're a pacifist the game will also chill accordingly.
Now to testing, testing, testing!