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 #11 - Hunting

This smaller update adds hunting and wild animals that can be hunted for meat.

[h2]Wildlife[/h2]

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.

[h2]Hunting[/h2]

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.

[h2]Habitats[/h2]

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:



[h2]Game warden[/h2]

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.

[h2]Parameters galore[/h2]

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.

[h2]Future plans[/h2]

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.

[h2]Full changelog[/h2]

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 17:26:55 CET ] [ Original post ]