0.10.0.18 BETA - Bug Fixes + Performance Improvements + Tuning
Phew! This one took me a bit longer to get out the door because I had to get my hands dirty with a bunch of pathfinding stuff. Thanks for waiting patiently for me to put this one out. :) Also, thank you to those of you that were sending me builds and helping me find issues. Your help is so appreciated!
You should notice some improvements to the pathfinding speed. I went through and optimized several things, but I also worked on how paths are prioritized. Entities with the shortest paths or the most urgent paths (i.e., given a move order) should be calculated first. Also, NPC's are prioritized last, giving the player first dibs on pathing. In 0.10.0.17, you'd see a lot of entities hang up when given a move order, and that's because they were waiting for someone ahead of them to calculate a huge path. That should be much better. Now, having said that, you'll probably still see entities with the 'Routing' state, especially with a higher population or massive distance to travel. I've got a couple more things to add to reduce this wait for them, but, at the end of the day, it's either wait to calculate a long path, or tank your FPS. I'll continue to improve as we go.
Pick Up/Drop Off Jobs Renamed + New Gather Item Job
Ok, so I needed to make this change to help with an issue where entities couldn't craft things if carry was disabled. Now, haul jobs use the carry skill and are issued by stockpiles, and gather jobs are used by crafting jobs to collect required items. Just like the equip item job, gather uses the survival skill. That's a temporary solution until I implement some code to assign the same skill as the job issuing the gather job, but I didn't have time this week!
Stale Job Clean-Up
As I was testing this week, I noticed that a lot of carry jobs were chilling while perfectly capable settlers sat on their hands. This would happen when a settler with a lot already on their plate was issued some carry jobs by a stockpile room. I've added in new code that checks to see how long a job idles, and, if it exceeds a specific time threshold, it un-assigns the entity (the one that's busy) from the job. This lets other entities pick up the slack. Hopefully you see some efficiency improvements as a result the next time you play.
Combat And Line-Of-Sight
I've fixed an absolute ton of combat related things BUT I wasn't able to get them all. I will continue to polish that up for the following patch. However, I was able to implement some line-of-sight logic for ranged fighters. You should no longer be attacked through the ground, and entities will try (as long as they aren't in a hold position order) to get closer if they don't see their target. I am going to add an overlay option that displays a line connecting an entity to their target. It will indicate line of sight and who's targeted.
Some entity notifications have been re-enabled. You should see them when you don't have a settler assigned to a profession, when a settler becomes an adult, when a settler is stuck, and when a settler can't reach a job. My suspicion is that these might be somewhat annoying at first, and will need some tuning. Do let me know which ones bother you, if any.
As this patch is mostly about bug fixing, tuning, and performance improvements, I don't have too much else to share, so here are the notes.
-Fixed a bug where the dialogue indicator would get stuck above entities. -Fixed a bug where tooltips could have repeating text in the Saga window. -Fixed a bug where disabling the tutorial from the tutorial popup wasn't working. -Fixed an FPS drop from having lots of inaccessible jobs. -Fixed some issues where entities wouldn't find a path to far away, usually underground, move points. -Fixed a bug where entities would start mating while in combat or during a move order. Yep. -Added 'gather item' job and renamed 'pick up/drop off item' to 'haul item'. -Void Woken should be a default permitted race in most rooms now. -Removed the loot skill as it's not used for anything. -The selection box is no longer shown for right clicks during entity selections. -Fixed a small memory leak. -Fixed a bug where orders couldn't be given if one of the selected entities was dead. -Fixed a bug where entities in hold positions couldn't attack close enemies. -Fixed a bug where entities would stop moving randomly after being given a move order. -Archers will now only fire an arrow if they have line-of-sight. -Fixed a bug where health bar color was incorrect when loading a save. -Increased landmine damage. -Fixed a bug where entities would get stuck doing a job if the job they had started was no longer accessible. -Fixed a bug where unlocking a door didn't open pathing to the room which had been locked. -Fixed a visual bug where the lock icon wasn't updated on save file load. -Added a tooltip for the entity state to show the full state display name. -Fixed a bug where several entity notifications wouldn't show up. -Fixed a bug where 'Remaining Days In Season' was incorrect. -Re-enabled the lode overlay. You can see it when holding TAB. -Ancients now start out with more Tomes of Arcana. -All Arcana research is much cheaper. -Fixed a bug where suggested props weren't showing when hovering over a room while placing jobs. -Auto-job threshold amount to set will now look at queued and active jobs when attempting to queue jobs. -Fixed a bug where entities in water could not be attacked. -Minimap input will now stop entity follow if it's active. -Fixed a bug that would keep some lists from not updating correctly. -The kitchen now has the Misc skill as a default. That way, anyone with misc can join and do the butcher jobs. -Added blueprint summon visuals for the Void Imp and Void Woken. -Fixed a typo where Void Catalyst was shown as Void Crystal. -Fixed a visual issue with jobs not updating shadows when removed. -The Wood/Stone Bin can now also hold Refined Materials. -Entities will now unassign themselves from stockpile carry jobs if the job sits for long enough without starting. This is to help free up carry jobs for other settlers that can do them.
There are still a few bugs to fix and performance improvements to make before I can push beta to production. As well, I still haven't re-enabled a few scenarios that I had planned to this week. I'm going to focus on those things and see where we're at by the middle of next week. I think by then things will be looking pretty good. :)
As always, thanks so much for the support! Have a great day.