RimWorld

RimWorld

Rim73 - Performance and Optimisations
Showing 21-30 of 34 entries
< 1  2  3  4 >
Update: 16 Aug, 2021 @ 1:15pm

Small Hotfix for Drilling

Update: 16 Aug, 2021 @ 12:36pm

- New Job System (more details below)
- Fixed chain jobs productivity (building conduit/sowing/harvesting etc...), pawns will now start a new job right after they completed the previous one.
- Fixed "Pathing to destroyed object" error
- Fixed "Started new job while doing job" warning
- Trotthled these jobs and quickstart :

LayDown
Wait
GotoWander
Wait_MaintainPosture
Goto
OperateDeepDrill
FinishFrame (building stuff)
Clean
CutPlant
Sow
Harvest
HarvestDesignated
CutPlantDesignated
Wait_Wander


- New Job system and extreme optimisations :
The new system works with UInt64 hashing of jobDef instead of string comparison, this has 2 major performance improvements : 1st, we compare 2 64 bits (8 bytes) values to each other which is really REALLY fast for a CPU to do, 2nd we are no longer fetching the hardcoded strings from memory wherever the program has decided to put them, instead the hashes are pre-compiled and are fetched instantly by the CPU because they are coded as instructions.

This results in a massive improvements, String.Equals used to take 12% of the ticking for JobDriver, now it takes 0.14%.

Update: 15 Aug, 2021 @ 5:30am

- Fixed Pawns who use the Deep Drill sometimes getting stuck and drilling until they pass out.
- Fixed comfort need who wasn't getting compensated for the fact that we only tick Sleeping once every 150 ticks instead of all the time in vanilla.
- Throttled the jobs : Wait, Wait_MaintainPosture, Goto to 1/220 of vanilla's speed.
- Fixed Hediffs who didn't tick or ticked too fast, now time compensation is correct.
- Fixed infections not happening because it uses a weird system with ticks going into the negatives to see if pawn should get infected.
- Fixed immunity who was ticking too fast relative to diseases

Update: 14 Aug, 2021 @ 6:48pm

- Fixed Gen.IsHashTickInterval() function to reduce unecessary calculations and simplifying it to GameTicks + thingIdNumber % interval, which is the same as Rocketman, this further adds compatibility with Rocketman.

Update: 14 Aug, 2021 @ 5:20pm

[Auto-generated text]: Update on 8/15/2021 2:20:06 AM.

Update: 14 Aug, 2021 @ 4:36pm

[Auto-generated text]: Update on 8/15/2021 1:35:59 AM.

Update: 14 Aug, 2021 @ 1:03pm

[Auto-generated text]: Update on 8/14/2021 10:01:55 PM.

Update: 14 Aug, 2021 @ 11:43am

- Fixed an error that occured when trying to path to a non existing object, for example when 2 pawns try to clean the same filth, while pathing to it, the filth might have disappeared.

Update: 14 Aug, 2021 @ 10:32am

Initial setup for Hediff optimisations, time dilatation for certain jobs.

Update: 13 Aug, 2021 @ 3:36pm

- Fixed Mechs trying to bust out of their Ancient Dangers to kill the player, go as far as digging through deep mountains to do so