I've been checking, polishing and improving quest completetion code. There is quite a bunch of stuff that needs to happen when quests are completed. It's not only about rewards being handed over or spoken out loud, but also about reputation tweaks and in some cases permanent changes to NPC behaviour from there on. This all has lead to perfecting the reputation system ever further. The complex and versatile reputation system of UnReal World was first introduced with version 3.18b3 in 2013, and before getting into meat of this post a brief summary about it is in place here.
UnReal World reputation system, since 2013
Character's actions affect to his/her reputation with village. Word gets around quickly so all the inhabitants pretty much always share the general opinion about you, provided that you have earned your reputation within the social group in question. There are several reputation categories which all are tracked individually. And within each reputation category there are several grades of good and bad. NPCs will treat you and speak to you according to reputation category that fits the situation. For mixed reactions, or when your overall reputation matters, NPCs can draw a conclusion based on comparing and computing multiple reputation categories. UnReal World NPCs express their opinion about you both in action and in speech. Mischievous player character is being told off:
Here's a brief list of reputation categories currently in use:
- Trading reputation
Increases by trading frequently, effectively and reliably. It also matters how generous your offers are and how valuable deals you make. Reliability in trading means that you don't change your mind too often, and are always able to pay your debt. Decreases with inability to pay, hesitation, changing your mind too often or avoiding to pay in time.
- Violent reputation
Earned by attacking peaceful villages. Degree and repetitiveness of committed attacks matters.
- Offender reputation
Earned by doing mischievous or forbidden activities in a village. These would include setting traps, building fires etc.
- Theft reputation
Obviously earned by stealing, or trying to steal. People rarely want to trade at all with notorious thieves.
- Helpfulness reputation
Increased by helping and doing favours for villagers. In the current game the only way to help villagers is to give them goods by using deliver-chat option. The more valuable goods you deliver the higher you'll be ranked as a helpful soul.
A general factor which is increased by acting in a way that annoys villagers, or makes them suspicious. Dodgy characters will be kept on eye more closely. Thieves, violent ones and even really suspicious traders may earn a reputation of being dodgy.
Familiarity reputation classifies how well-known you are within a certain community. Familiarity is gained by overall interaction, visits and time spent with a certain community. You enter their village as a stranger and people slowly start to know you better and better.
Making NPC friends
So, in the current game we already have "helpfulness" reputation category. And now reputation boost from quest completion needed to be linked in there. As completing quests will be the ultimate way of "helpfulness" the overall reputation math also needed some adjustments. So, it's clear that completing quests will boost your reputation within the whole community, but what if you're helping out solitary NPCs? Or what if NPC has a personal problem, you help him/her out, and the problem wasn't really significant for the whole community? Then it's not about reputation anymore - then it's about friendship. Yep - we have now implemented a friendship factor and individual NPCs can become friends with the player character. At this point friendships are formed only by completing quests, but it's easy to imagine other ways of making NPC friends too. And it's just as easy to imagine numerous ways of how friendship affects to NPC interaction with the player character. For starters your NPC friends naturally address you differently, but they also may trade away goods at lower prices. In general, friendship is a cool new factor that will be surely utilized a lot in the future. Arriving a village in winter makes you even more warm when there's a friend to greet you:
New weather engine
While I've been working with quests, Erkka has been continuing to test and finalize the new weather engine. Getting the weather simulation right will still need a lot of debug runs, but we recently came into a conclusion that it's soon possible to start attaching the new weather engine into UnReal World. At first it won't add any big new weather elements, but will bring more detailed simulation of rain and temperature changes. Even though the new weather engine provides realistic generation of factors like snowfall, ice thickness, air pressure, wind speed and wind direction it takes time to have these factors properly manifested in the game. But all in all, we're now one big step closer to detailed and realistic weather overhaul. Erkka at development chambers. Real world weather statistics from recent days on the left. Code for modelling sunshine effect in UnReal World weather engine being worked on the right.
The main focus of UnReal World development is currently in implementing quests and will continue for unforeseeable period of time. We're not taking the easiest path to add them, but use verbose dialogue, procedural generation and randomization to maintain replayability and immersion. Stay tuned for more - and feel welcome to join at Official Unreal World forums for good talks and frequent tidbits about ongoing development.
This could be a good day to utilize your squirrel hides and
donate to support UnRel World development