▶






EA Update #11 - Hunting
I added several wild animals -- foxes, boars, wolves and deer.
These wander around, graze and generally hang out in the forests. I think they add some nice livelihood to otherwise extremely static forests.
I added a Hunting technology unlocked before the Herding technology. The Smokehouse will now also unlock with the Hunting tech.
I added a new building - Hunter's Lodge. You can adjust its operating range to cover the nearby animal location. You can also toggle which animals get hunted:
The workers will then run out to any wild animals, shoot them and then harvest them for meat. Meat can be taken to smokehouses same as from the butcher. Smokehouses will now require Firewood:
This makes early high-quality meat food production more balanced. I also renamed Pork to Meat and Ham to Roast since multiple animals now "drop" meat and it would be slightly confusing. I might eventually differentiate between the different types of meat, but I don't want to add more items to the market and houses at this time. This is also the reason why animals only drop meat for now and not other stuff like leather or pelts or something.
Something to consider is where I would spawn the wild animals. As simple as that sounds, it quickly becomes a rabbit hole (har har) of design questions and decisions. A naive approach would be to just spawn animals randomly in the forests. I would add some rules to not spawn too many or to not spawn "incompatible" animals together or to choose "nicer" less-populated locations to spawn. I can even simulate some rudimentary population growth. The player would just place hunters randomly around forests. But there is a major usability problem with all of this. How do I explain to the player how many animals there are in any particular place? And whether they are breeding or spawning or anything else? You can may be individually track them, but this is rather silly:
And secondly, if the player was to hunt out all animals, then there is no guarantee that more will ever spawn right there and the production rate would be inconsistent at best. As a player, I can see how I might completely avoid hunting, especially if I didn't know the rules of animal spawning. I can add further rules that prevent animals from disappearing and spawn animals for hunters. But now I'm 3 layers deep into spawning rules and this just doesn't feel right. It doesn't fit the sort of structured approach to resource management that I want to have. So I decided that animals will instead spawn in species-specific habitats, which will have an in-world indicator:
You can mouseover the indicator for all the info in the tooltip:
I think this makes it instantly clear that animals are a "resource" in this location and that it can be "harvested". This becomes a clear source of a renewable resource chain. This is something you can plan for from the start of a new game. There are some rules to the habitats (which are similar to what individual animals would have had without habitats). They will only spawn in forested areas on around grassy tiles. They won't spawn near buildings or roads. They will decay if the forest is cut down or things are built nearby. Animals will only spawn in habitats. These factor contribute to the habitat's "quality score". The tooltip also explains when things aren't "working", mainly when new animals won't spawn:
Going with habitat quality concept further, I also added Conservation tech and a Game Warden's Lodge building. The warden will tend a nearby animal habitat, improve its quality (and thus spawn rate) and prevent it from decaying even under poor conditions. This is reflected in the habitat's tooltip:
This isn't a big or important feature; I just think it's kind of cool and I haven't really seen it done in other games. It's relatively easy for me to add, yet provides an extra level of depth.
The habitat feature happens to need a lot of parameters and I think it's a good opportunity to provide some technical insight into these:
Since I am dealing with randomness and procedural generation, everything that can go wrong will go wrong. Every time I add a parameter, I am essentially trying to extract order from randomness and prevent things going wrong. (For example, I would not want to spawn a habitat right next to another one. But this is a perfectly valid random result unless I stop it. Hence, I need a parameter that says how many tiles must be between habitats. In other words, I reduce the number of garbage results from randomness.)
I can change these values on the fly as the game runs. I can also restart/regenerate the world quickly while running to preview changes. Most of the time I start with a few parameters that I expect I would need and gradually add more as I find various edge cases and "problems". For example, here's me debugging the validity of spawning a new habitat in different locations:
Some of these never get modified unless I make drastic changes. These values may as well have been written directly in code, but having them external makes initial testing much faster. Others I would tweak continuously and those parameters determine balance and gameplay. Of those, some are "public" and these are values you see in the game, in tooltips and such. Of course, it's not like every parameter belongs to an exact "group". It's more like a way of converting design into implementation. I know I want to show some values to the player. I know I will need other constants to determine high-level decision. I know I will need to cover edge cases. Etc. A final note is that every parameter adds maintenance. To be accurate, each parameter represents underlying code, which adds maintenance. Having parameters displayed like this together gives me a good estimate of complexity. When I see the parameter list growing, I know that I am increasing the feature's complexity and may be that's not always a good thing.
As before, I intend to be making smaller more frequent updates. I don't want to do heavy programming or involved design during the Holidays (especially after last patch's backend work), so I will probably work on some graphics and informational stuff. I think the in-game info codex is a likely addition.
Changes Add wild Animals - Deer, Boars, Foxes, and Wolves Wild animals will spawn in Animal Habitats up to a limit Animal Habitats spawn and despawn in the world based on surrounding forest "score" New worlds and worlds loaded from older saver will have up to the default number of Animal Habitats spawned Animal Habitats show an in-world indicator and the mouseover tooltip provides additional information Rename Pork to Meat and Ham to Roast Add Hunting technology available for research from the start Add Hunter's Lodge building unlocked with Hunting Wild animals can be hunted - the worker will approach, shoot and harvest the animal for Meat Recently deceased wild animals can be skinned - the worker will harvest the animal for Meat Hunter's Lodge can individually toggle which animals are hunted Wild animals that die leave corpses instead of despawning immediately; the corpses eventually decay Add Game Warden's Lodge who will tend nearby habitats Herding now requires Hunting instead of Farming Smokehouse and Drying Rack now unlock with Hunting instead of Herding Add more particle effects to Drying Rack Add Animal and Animal Habitat concepts Trees no longer grow during Winter Forester and Florist no longer plant during Winter Various text and sprite adjustments Add a privacy notice and some extra info to save upload window; make toggle for optional Steam ID submission Remove the Population count requirement to unlock the Technology Branches Add a goal for building Town Hall Fixes Fix wrong Drying Rack meat sprite layer Correct Unfired Pottery plural name typo Play the correct UI sound for road upgrading via the U shortcut Fix a very rare error where a task for livestock animal is assigned right as it is dying Fix animal inspection HUD box lingering after animal leaves the selected tile Farm, Gardener and Arborist planting and collecting their production entities on unfinished auxiliary buildings and on untilled tiles Transit toggle buttons blocking storage selection in storage building inspection HUD panel Fix Water Tower being treated like a Tavern and fulfilling Houses tavern resident sentiment Fix rare exception/stall bug when a worker switches a harvest task at the same as the target plant decays Fix rare exception bug when an animal regains its product at the same time as dying Fix Gardener and Arborist occasionally not tilling a tile just after planting in all other tiles Optimizations Buildings to not look for tasks for disabled worker slots Remove redundant task condition checks when first deciding on a task Add delay between buildings failing to assign potential tasks Remove expensive periodic task checks that can instead be aborted later Check building tasks according to priority to avoid unnecessary checks Faster tile border and indicator re-drawing and minimize the lagspike on swapping/relocating them Rudy Snowy Ash Games
[ 2020-12-22 16:26:55 CET ] [ Original post ]
This smaller update adds hunting and wild animals that can be hunted for meat.
Wildlife
I added several wild animals -- foxes, boars, wolves and deer.

These wander around, graze and generally hang out in the forests. I think they add some nice livelihood to otherwise extremely static forests.
Hunting
I added a Hunting technology unlocked before the Herding technology. The Smokehouse will now also unlock with the Hunting tech.

I added a new building - Hunter's Lodge. You can adjust its operating range to cover the nearby animal location. You can also toggle which animals get hunted:

The workers will then run out to any wild animals, shoot them and then harvest them for meat. Meat can be taken to smokehouses same as from the butcher. Smokehouses will now require Firewood:

This makes early high-quality meat food production more balanced. I also renamed Pork to Meat and Ham to Roast since multiple animals now "drop" meat and it would be slightly confusing. I might eventually differentiate between the different types of meat, but I don't want to add more items to the market and houses at this time. This is also the reason why animals only drop meat for now and not other stuff like leather or pelts or something.
Habitats
Something to consider is where I would spawn the wild animals. As simple as that sounds, it quickly becomes a rabbit hole (har har) of design questions and decisions. A naive approach would be to just spawn animals randomly in the forests. I would add some rules to not spawn too many or to not spawn "incompatible" animals together or to choose "nicer" less-populated locations to spawn. I can even simulate some rudimentary population growth. The player would just place hunters randomly around forests. But there is a major usability problem with all of this. How do I explain to the player how many animals there are in any particular place? And whether they are breeding or spawning or anything else? You can may be individually track them, but this is rather silly:

And secondly, if the player was to hunt out all animals, then there is no guarantee that more will ever spawn right there and the production rate would be inconsistent at best. As a player, I can see how I might completely avoid hunting, especially if I didn't know the rules of animal spawning. I can add further rules that prevent animals from disappearing and spawn animals for hunters. But now I'm 3 layers deep into spawning rules and this just doesn't feel right. It doesn't fit the sort of structured approach to resource management that I want to have. So I decided that animals will instead spawn in species-specific habitats, which will have an in-world indicator:

You can mouseover the indicator for all the info in the tooltip:

I think this makes it instantly clear that animals are a "resource" in this location and that it can be "harvested". This becomes a clear source of a renewable resource chain. This is something you can plan for from the start of a new game. There are some rules to the habitats (which are similar to what individual animals would have had without habitats). They will only spawn in forested areas on around grassy tiles. They won't spawn near buildings or roads. They will decay if the forest is cut down or things are built nearby. Animals will only spawn in habitats. These factor contribute to the habitat's "quality score". The tooltip also explains when things aren't "working", mainly when new animals won't spawn:

Game warden
Going with habitat quality concept further, I also added Conservation tech and a Game Warden's Lodge building. The warden will tend a nearby animal habitat, improve its quality (and thus spawn rate) and prevent it from decaying even under poor conditions. This is reflected in the habitat's tooltip:

This isn't a big or important feature; I just think it's kind of cool and I haven't really seen it done in other games. It's relatively easy for me to add, yet provides an extra level of depth.
Parameters galore
The habitat feature happens to need a lot of parameters and I think it's a good opportunity to provide some technical insight into these:

Since I am dealing with randomness and procedural generation, everything that can go wrong will go wrong. Every time I add a parameter, I am essentially trying to extract order from randomness and prevent things going wrong. (For example, I would not want to spawn a habitat right next to another one. But this is a perfectly valid random result unless I stop it. Hence, I need a parameter that says how many tiles must be between habitats. In other words, I reduce the number of garbage results from randomness.)

I can change these values on the fly as the game runs. I can also restart/regenerate the world quickly while running to preview changes. Most of the time I start with a few parameters that I expect I would need and gradually add more as I find various edge cases and "problems". For example, here's me debugging the validity of spawning a new habitat in different locations:

Some of these never get modified unless I make drastic changes. These values may as well have been written directly in code, but having them external makes initial testing much faster. Others I would tweak continuously and those parameters determine balance and gameplay. Of those, some are "public" and these are values you see in the game, in tooltips and such. Of course, it's not like every parameter belongs to an exact "group". It's more like a way of converting design into implementation. I know I want to show some values to the player. I know I will need other constants to determine high-level decision. I know I will need to cover edge cases. Etc. A final note is that every parameter adds maintenance. To be accurate, each parameter represents underlying code, which adds maintenance. Having parameters displayed like this together gives me a good estimate of complexity. When I see the parameter list growing, I know that I am increasing the feature's complexity and may be that's not always a good thing.
Future plans
As before, I intend to be making smaller more frequent updates. I don't want to do heavy programming or involved design during the Holidays (especially after last patch's backend work), so I will probably work on some graphics and informational stuff. I think the in-game info codex is a likely addition.
Full changelog
Changes Add wild Animals - Deer, Boars, Foxes, and Wolves Wild animals will spawn in Animal Habitats up to a limit Animal Habitats spawn and despawn in the world based on surrounding forest "score" New worlds and worlds loaded from older saver will have up to the default number of Animal Habitats spawned Animal Habitats show an in-world indicator and the mouseover tooltip provides additional information Rename Pork to Meat and Ham to Roast Add Hunting technology available for research from the start Add Hunter's Lodge building unlocked with Hunting Wild animals can be hunted - the worker will approach, shoot and harvest the animal for Meat Recently deceased wild animals can be skinned - the worker will harvest the animal for Meat Hunter's Lodge can individually toggle which animals are hunted Wild animals that die leave corpses instead of despawning immediately; the corpses eventually decay Add Game Warden's Lodge who will tend nearby habitats Herding now requires Hunting instead of Farming Smokehouse and Drying Rack now unlock with Hunting instead of Herding Add more particle effects to Drying Rack Add Animal and Animal Habitat concepts Trees no longer grow during Winter Forester and Florist no longer plant during Winter Various text and sprite adjustments Add a privacy notice and some extra info to save upload window; make toggle for optional Steam ID submission Remove the Population count requirement to unlock the Technology Branches Add a goal for building Town Hall Fixes Fix wrong Drying Rack meat sprite layer Correct Unfired Pottery plural name typo Play the correct UI sound for road upgrading via the U shortcut Fix a very rare error where a task for livestock animal is assigned right as it is dying Fix animal inspection HUD box lingering after animal leaves the selected tile Farm, Gardener and Arborist planting and collecting their production entities on unfinished auxiliary buildings and on untilled tiles Transit toggle buttons blocking storage selection in storage building inspection HUD panel Fix Water Tower being treated like a Tavern and fulfilling Houses tavern resident sentiment Fix rare exception/stall bug when a worker switches a harvest task at the same as the target plant decays Fix rare exception bug when an animal regains its product at the same time as dying Fix Gardener and Arborist occasionally not tilling a tile just after planting in all other tiles Optimizations Buildings to not look for tasks for disabled worker slots Remove redundant task condition checks when first deciding on a task Add delay between buildings failing to assign potential tasks Remove expensive periodic task checks that can instead be aborted later Check building tasks according to priority to avoid unnecessary checks Faster tile border and indicator re-drawing and minimize the lagspike on swapping/relocating them Rudy Snowy Ash Games
[ 2020-12-22 16:26:55 CET ] [ Original post ]
MicroTown
Snowy Ash Games
Developer
Snowy Ash Games
Publisher
2019-08-30
Release
Game News Posts:
28
🎹🖱️Keyboard + Mouse
Very Positive
(429 reviews)
Public Linux Depots:
- MicroTown Linux [82.11 M]
Build and manage your growing town in this relaxing village construction and management simulator with focus on production chains, villager desires and light combat elements.
Start with nothing and grow into a bustling town. Gather and process resources, establish supply and production chains, maintain your villager needs, and defend your settlement.
Collect and record knowledge, research and advance through technologies, and unlock new materials and professions.
Mr. Piggles agrees.
MINIMAL SETUP
- OS: Ubuntu 16.04+
- Processor: SSE2+ supportMemory: 1 GB RAM
- Memory: 1 GB RAM
- Graphics: 1280x720+. shader model 4.0+
- Storage: 500 MB available space
GAMEBILLET
[ 6045 ]
GAMERSGATE
[ 687 ]
FANATICAL BUNDLES
HUMBLE BUNDLES
by buying games/dlcs from affiliate links you are supporting tuxDB