// Management · RimWorld Mod

Kingfisher

Kingfisher mod preview for RimWorld

Kingfisher By tracing and measuring the vanilla source code and identifying performance bottlenecks, Kingfisher replaces them with more efficient implementations.

Kingfisher

By tracing and measuring the vanilla source code and identifying performance bottlenecks, Kingfisher replaces them with more efficient implementations. This makes TPS/FPS gains without side effects possible.

Optimization Results

In a typical test environment, Kingfisher's patches themselves can achieve speedups of 2x ~ 25x. This will not translate as directly to overall TPS, because save states vary and optimization results are hard to generalize. If you are willing to provide a save from a near vanilla late game colony, that will help Kingfisher iterate on its optimization results.

Technical Details

Kingfisher pursues zero runtime overhead, including: - Uses PurePatcher to inject fields and replace methods, avoiding extra call overhead. - Uses Publicizer to expose private fields, avoiding reflection overhead. - A conditionally compiled profiler, excluded from release builds.

Patch List

## Combat & Target Finding AttackTargetFinder.BestAttackTarget (FreePatch) Hediff_Shambler.TickInterval Hediff_Shambler.PreRemoved Hediff_Shambler.Notify_DelayedAlert ## Thoughts & Social PawnDiedOrDownedThoughtsUtility.RemoveLostThoughts (FreePatch) PawnDiedOrDownedThoughtsUtility.RemoveResuedRelativeThought (FreePatch) PawnDiedOrDownedThoughtsUtility.TryGiveThoughts (Prefix) ## Jobs & Work Scanning WorkGiver_Scanner.PotentialWorkThingsGlobal (FreePatch) CompRefuelable.PostSpawnSetup CompRefuelable.PostDestroy CompRefuelable.ConsumeFuel CompRefuelable.Refuel ThingComp.PostDeSpawn ## Buildings & Thing Lists ListerThings.Remove (FreePatch) ListerBuildings.AllBuildingsColonistOfDef (FreePatch) ListerBuildings.ColonistsHaveBuilding (FreePatch) ListerBuildings.ColonistsHaveBuildingWithPowerOn (FreePatch) ListerBuildings.Remove ListerBuildings.Add ## Health & Immunity ImmunityHandler.NeededImmunitiesNow (FreePatch) Kingfisher is still in development, and this list will be kept in sync with updates.

FAQ

Q: Can Kingfisher be added to or removed from a save? A: Yes. There should be no issue in theory. Q: How compatible is Kingfisher with other mods? A: Kingfisher aims to coexist with other mods. This requires testing and feedback, and your help is appreciated. Q: What is Kingfisher's relationship with Performance Fish? A: Performance Fish inspired Kingfisher and served as a reference for patch direction and implementation.

Source Code

Kingfisher is open source under a mix of MPL 2.0 and MIT licenses.

Credits

- Publicizer by krafs. - Harmony by Brrainz. - Prepatcher by Zetrith. - Performance Fish & Fishery by Bradson.