TUXDB - LINUX GAMING AGGREGATE
 NEWS TOP_PLAYED GAMES ITCH.IO CALENDAR CHAT WINE SteamDeck
 STREAMERS CREATORS CROWDFUNDING DEALS WEBSITES ABOUT
 PODCASTS REDDIT 

 

SUPPORT TUXDB ON KO-FI

MENU

ON SALE

New Twitch streamer aggregation implemented (#FuckTwitch) due to Twitch's API issues (more info on my Discord )


Name

 MicroTown 

 

Developer

 Snowy Ash Games 

 

Publisher

 Snowy Ash Games 

 

Tags

 Strategy 

 

Singleplayer 

 

 Early Access 

Release

 2019-08-30 

 

Steam

 € £ $ / % 

 

News

 28 

 

Controls

 Keyboard 

 

 Mouse 

 

Players online

 n/a 

 

Steam Rating

 Very Positive 

Steam store

 https://store.steampowered.com/app/931270 

 
Public Linux depots

 MicroTown Linux [82.11 M] 




LINUX STREAMERS (0)




EA Update #18 - Villager Needs

In this update villager needs and residence reserves have been fundamentally reworked. Although most of the changes are internal and organizational, this still results in a fundamental gameplay presentation change. I say "presentation" because the actual gameplay doesn't really change if you consider the main player actions - supply houses with goods. It is however presented (and hopefully perceived) differently, more in line with the way I originally intended.

[h2]Ex-happiness[/h2]

I removed happiness from the game. The main reason is that it was a big simplification of how villagers "feel". It was the first version that worked decently and games have done a number-based happiness value before, but it's all very abstract and very simplistic, and I simply don't like it. A single total happiness number does not really represent villager happiness. For example, 20 happy villagers making +20 total happiness just doesn't make much sense when this number isn't capped to anything. And even if I average the happiness numbers, it still does not represent anything - 10 happy and 10 unhappy villagers does not really make 0 "neutral" village happiness in the same way as 20 content villagers would.

Then there's the question of what is "happiness" itself. Philosophy aside, what does a happiness "number" represent? Is a villager with a good diet but bad health really feeling "neutral"? In other words, how much information does representing villager's happiness only as a single number lose and is such simplification useful and fun to achieve? So, again, I just don't like doing it that way. I am simulating so many things for each house and villager, but then I just sum it up to a single number. This just feels like too many "lost" details.

[h2]Needs[/h2]

So the big change is that I added several discrete "needs" - Diet, Housing, Health, Comfort and Socialization. This lets me separate villager "feelings" into independent categories. Each need is based on different factors that only apply to that need, so it's intuitively clearer what cause and effect each would have. For example, when a player is providing medicine, they know this will affect health. I will discuss these factors a little bit later; for now I want to focus on the big picture first.

[h2]Sentiment[/h2]

Each need is separately assigned a "sentiment" value. I settled for 4 values as for now: Awesome, Good, Neutral and Bad. They get appropriate icons, colors and labels. And I only added just enough values to establish a sort of scale of opinions. I think keeping it simple is preferable to having a lot of values.

[h2]Sentiment totals[/h2]

So now I can think about expressing the total sentiment, for example, how do all villagers feel about their health? Of course, this leads back to the same problem as happiness - what is an average anyway, when opinions can vary so much? So I have to be careful trying to naively conclude the mathematical "average". Instead I need to consider sentiment level percentages of the population and how common each value is while also keeping it understandable for the player. Let's just say, this is a difficult design problem.

The system I came up with tries its best to determine the dominant sentiment, but falls back to various descriptive alternatives. These variants are:

One sentiment is totally dominant, e.g. Good
One sentiment is mostly dominant, but there is a significant portion of "neighbouring" sentiment, e.g. Good, leaning Awesome
One sentiment is prominent, and there are significant portions of "neighbouring" sentiments, e.g. Good, but disparate (i.e. "Good, but spread towards both Awesome and Neutral")
No sentiment can be said to be dominant, i.e. Mixed

This lets me fairly accurately describe the majority's opinion. And while there are a lot of ways that sentiments can arrange, in practice the whole village usually runs a certain way. For example, if there is food shortage, then it's unlikely that there are many villagers thinking Diet is "Awesome" and it is much more likely everyone shares a similar sentiment.

In fact, the above summary was my requirement for the feature. The player must be able to read the description in a sentence or less. A lot of details could or couldn't be implemented to support this result. From there, I can add all the UIs and explanations and breakdowns, but there must be this one high-level at-a-glance summary.

(A question you might ask: couldn't I summarize my sentiment totals into a single happiness value for the whole village the same way? The answer is: yes, I could. But this would actually be summarizing the wrong values in a subtle way. What I would want to first determine is the happiness for each villager and then summarize those happiness values for a total. But this creates another "meta-need" that runs parallel to the existing needs. In other words, I now have Diet, Housing, etc., and Happiness. And this just doesn't feel right to me. If happiness is the summary of needs, then why do I even need to list the other needs anymore? And this just returns back to the very start of having just one total value.)

[h2]Need factors[/h2]

Each sentiment is based on the fulfillment of its need. What this means in practice is that each need has a list of factors that increase or decrease the "score" of that need resulting in a higher or lower sentiment. For example, not having a house would decrease the Housing sentiment while having Medicine reserves would increase the Health sentiment.

Now, I admit that this gets complicated fast when I start explaining the details, even though it's relatively easy to summarize. For example, it's simple to state what a need is for:



But the actual logic to determine the score needs a very rigorous and methodical explanation:



And only then the "real" sentiment value can be concluded:



This is complicated, for sure. But I technically was doing very similar logic before with happiness, I just never really explained it. Thinking about how to explain this to the player forces me to both simplify things and also keep them well-defined.

[h2]Sentiment UI[/h2]

The major challenge is to actually show all the needs and sentiment in-game. For presentation and gameplay purposes, I am still keeping needs and their sentiments primarily as part of houses:



This does mean that all residents in the same house have the same sentiment.

Meanwhile the top HUD overview icons now show all the summary sentiments:



A tooltip breaks them down and explains them in more detail:



In addition, a new window is available that expand a little bit more about the sentiments.



So if I need to add additional UI explanation to needs and their factors, this will likely be the place.

Overall, I think the UI is doing a decent job of summarizing and explaining things. It's definitely much more intuitive than I could ever explain in text.

[h2]Reserves[/h2]

Happiness was previously based on house reserves. In short, more reserves = better happiness. I had a lot more hidden rules here, but that's the essence of it. As I mentioned at the start, these changes don't really affect the core gameplay - houses still want all the reserves from shops. Except now each reserve contributes to different sentiments in different ways that I can define and control precisely.

So the big change is that now I can add more items as house reserves easily, i.e. without disrupting anything. At its simplest, adding a new reserve simply won't change anything. But I can then integrate it in one of several ways. As an example, I added Cooked Fish as a new item and reserve for houses. It now functions like other (prepared) foods.



I definitely want to add more reserves and more items and production chains. Half the reason for reworking the reserve system was to allow more and varied items.

[h2]No hidden numbers[/h2]

I previously had something like 30 parameters used for happiness calculations. In-game, I explained may be 5 of those. Let me just say that this is definitely not how I personally would want to play any game. Hidden numbers suck. The more you play, the more they suck. So my design philosophy is to avoid hidden numbers. Of course, I cannot explain everything, so there will always be endless hidden numbers and values. But I will try to explain anything that significantly impacts gameplay and could also vary significantly.

There are two locations where most explanation would take place. Any current values would appear in tooltips. And any potential rules would be in Micropedia. Now, this isn't exactly revolutionary - I have already been doing this since the start.

(Going on a slight tangent, I know this sounds a bit silly, but this is technically gameplay. Reading tooltips and reading Micropedia is technically playing the game even though you wouldn't immediately describe it that way. In fact, most players would say that they prefer to "play the game" and not "read the wiki". But, as a player reading a tooltip, you are acquiring information and making decisions based on it. And that's the same thing as looking at the map and placing a building. This is a matter of presentation. When you think about it this way, it's easier to see why some games may feel bad when they have a bad UI, poor explanations or hidden numbers. Even though it's not actually "real" gameplay, it makes "real" gameplay worse.)

[h2]Efficiency removal[/h2]

There are two big feature sets I removed: tools and happiness productivity bonus.

I removed both for the same primary reason: hidden numbers that modify values too much and are hard to explain in UI. I just don't like the direction these are taking.

Happiness productivity also has the problem of cascading into failure. In short, losing happiness reduces productivity, which lowers produced item amounts, which lowers house reserve supply, which in turn reduces happiness again. So it turns into a viscious circle. This is exacerbated by seasonal changes and harvest timing.

Tools suffer from delivery and logistics issues. It's not too bad, but there isn't any nice way to distribute tools with export/import stations. So anyone trying to maximize tool bonus will inevitably be at the mercy of logistics and item delivery priorities. Internally, tool delivery is another "layer" of deliveries that causes additional issues. I thought the feature is cool and I still do, but I don't think my current implementation is good enough without a large rework (such as, dedicated tool stations or repair workshops).

I am also removing the difficulty option for now, which was basically whether not having items in houses results in negative happiness. This was always a temporary solution to the game being too hard when happiness goes negative and efficiency drops a lot, causing everything to spiral out of control. There are no longer any efficiency penalties, so the "difficulty" like I had it doesn't affect anything. I will revisit "difficulty" options later in some form.

[h2]Residences[/h2]

MicroTown at its core currently is mostly about production chains and supplying the houses, which are--simply put--just a place to dump the final goods. And that's the core problem here. Houses don't really feel like a residential area. They are fine from a pure gameplay loop perspective, but not in their presentation.

So, as part of house redesign, I converted houses into 7-tile buildings so I have a lot more "space" to work with:



Houses now intentionally take up a lot more space. I have always wanted the residential sector to feel larger and more prominent. Logically, villagers should want a living space that isn't the size of a workshop. In this sense, having to settle the villagers is an "obstacle" for the player to overcome. So a larger house size is one of the steps in the direction of a more involved residential area.

Secondly, I added a bunch of visual variation to houses:



As much as I primarily focus on the functional aspects of features, there are certain features that benefit greatly from visuals. And I think houses are one of those. Visual variation makes them feel more organic as opposed to strictly functional work buildings.

Now, I only wanted to expand houses as far as villager housing needs are concerned, mostly to do with nearby infrastructure. Notably, I needed them to be the "final design size" of 7 tiles so that I can adjust and balance all the related distances. But once I started changing things, a lot more problems cropped up. For one, they looked all the same and so extremely boring. So I had to add visuals at the minimum. And so on. There are a lot of ideas I still have for houses, but they are all so interconnected that it would require a whole lot more changes, which this update wasn't really about. I will work on stuff like civic amenities at some point.

The one significant factor is that this drastically reduces how many "villager per tile" can be "produced" by houses. So I increased the house resident total number from 8 to 16 and also doubled the storable reserve amount:



Previously-constructed houses will remain as 1-tile shacks with the same number of residents, but with only 2 reserve items and no new reserve items (currently, cooked fish). They will also never fulfill the housing need. These will likely get removed at some point.

[h2]Various changes[/h2]

As always, there are a lot of tiny miscellaneous changes I won't cover in detail.

Although one new UI window worth a mention is the achievement progress panel:



Since I intend some of the achievements to be more like challenges and goals, then this will track the current progress. Everything is very simple here for now, but it does let you see the progress even if Steam has already unlocked these.

[h2]Future plans[/h2]

The good part is that I can extend the need logic. I can add more needs, more factors, more evaluations, even more sentiment values. I do have to be careful though. For example, I could break down needs even further, but then I would reach the other end of the complexity spectrum - too many values that become just noise, impossible to follow and generally unfun to care about. At the end of the day, as a player, I just want to know if I'm doing good and is the number is green. So I am breaking this up into something that could generally be seen as a "single high-level need".)

I apologize for this update taking so long. Long story short, I had to take care of some real-life things. Not to say I didn't make this update way too big again by mixing a lot of different features.

I think I will focus on some smaller updates for now. I have to rework plank production and use, especially for the start of the game balance. I also want to look into mining resource changes and long-term endgame production. I can now add new house resource items, so I will think about various options there. I also have a long list of bugs and tweaks to do and I will probably look into some of the more needed ones.

[h2]Full changelog[/h2]

Changes

Replaced Happiness with Sentiment
Market squares and Stalls are now fully removed
Houses are now 7-tile buildings
Removed Happiness efficiency bonus
Removed Tools use in production buildings
Carpenter now requires Nails
Old "House" is now Shack and can only be deconstructed
Add House as a 7-tile residential building
Residential buildings are now all part of Residences logic
Reserves in Residences are now "real" items and are kept track of and shown in the inspection UI similar to other building items
Residences reserve item usage is now a timer before the next item is consumed, also shown in the inspection UI
Shack accepts up to 2 reserve items as before, but does not accept any new or future items
House accepts 4 reserve items
Firewood now lasts longer in Summer and less time in Winter
Medicine now lasts less time in Autumn
Wool Clothing now lasts less time in Winter
Add villager needs - Diet, Housing, Health, Comfort and Socialization
Remove Happiness and replace with Sentiment separate for each Need
Each villager's Sentiment is now based on the fulfillment of their Needs (rather than directly from reserves in Residences)
Villager Needs are now evaluated based on various factors specific to each need
Add information about Need and its Sentiment-affecting factors in the tooltip for building inspection
Food in Residences forms a "Food" reserve group and consumption is reduced for multiple food items
Linen Clothing and Wool Clothing form an "Apparel" reserve group and consumption is reduced when both are available
Residences total Sentiment is now an approximation of all the individual Sentiments in that Residence
Village total Sentiment is now an approximation of all the individual Sentiments of all the villagers
Total Sentiment represents the dominant Sentiment (e.g. "Good"), can shift towards a different sentiment (e.g. "Good, leaning Awesome"), can vary either way (e.g. "Good, but disparate"), or can remain "Mixed" if the opinions vary greatly and no single sentiment applies
Add Needs list to Micropedia where each is explained, including the factors that change the Sentiment
Add Reserves list to Micropedia where their use, duration and bonuses are explained
Additional information in Reserves tooltip for building inspection
Homeless villagers to only have Sentiment about Diet and Housing needs
Villagers to not have any Sentiment at the very start of the game until Residences are built and first population increase
HUD top overview now shows the summary of the 5 Sentiments instead of a single happiness value and the tooltip explains the breakdown
Add Sentiment report window with a full breakdown of Sentiments for each Need
Remove global productivity bonus (since there is no longer a single global happiness value)
Monument no longer provides happiness
Tools are no longer used as "Supplies" by work buildings and do not provide productivity bonuses to buildings
Remove villager needs difficulty option
Remove difficulty setting UI for now since the only option it had is no longer applicable
Add achievement progress panel that shows all the per-village achievements and a simple checklist of the necessary steps to complete them
Add Nails item made at the Smith from Iron Ingot
Forge now has to select if it is crafting Tools or Nails
Furniture now also requires Nails
Carpentry now requires Smelting (and Logging instead of Forestry)
Add Cooked Fish item smoked from Raw Fish at the Smokehouse (instead of Roast)
Meat Shop now sells Cooked Fish
Houses now accepts Cooked Fish as a Reserve of Food
Add various concepts like Need and Sentiment
Add many new icons, like Needs and their Sentiments
Micropedia now shows what Technology unlocks each entity, as well as what entities are unlocked by each Technology; also add to some tooltips
Add "back" and "forward" buttons to Micropedia for quick navigation between visited entries
A lot of description and label changes to reflect the new and changed features
Adjust tutorial explanation text and steps slightly to reflect the new changes
Unpausing returns the game to previous speed
Ranch auxiliary building order to match related item order
Buildings with adjustable operation location will now draw a max range tile border
Selected buildings and potential construction buildings will highlight in- and out- of range tile overlays for their compatible auxiliaries and parents as well as other buildings of the same type
Constructing Scholar will show production building knowledge icons

Fixes

Fix some building spawn/delivery positions
Adjust construction sprites for some buildings
Adjust item pickup/drop-off location for shops
Fix Monument construction Glass delivery location
Clicking fast speed UI button when paused would return the game to regular speed instead of fast
Fix tile validation overlay not changing when switching between construction of entities that have different placement rules (e.g. Stone road vs Boardwalk)
Fix tile validation overlay not updating when constructing multiple buildings/roads
Fix incorrect farm animal harvest duration and subsequent item pickup duration
Stop workers from most self-deliveries when there is work available
Fix various descriptions/tooltips with outdated or incorrect information

Optimizations

Various formatted text rendering is slightly faster

Rudy
Snowy Ash Games


[ 2022-06-05 19:18:33 CET ] [ Original post ]