On the unstable beta branch, you'll find version 1.0.2271. This version is almost the same as the previous version, with the following changes:
- A potential fix for a bug that can cause very slow loading of mods and/or opening the mods list window in some cases.
- Updated language data to latest version.
- Updated player-created names with all approved content.
Mostly we're looking to test the first of the above. It would be awesome if any player who had trouble with slow loading of mods or the mods list in the main menu (anything over a minute or two) would give the unstable branch a try and let us know if anything changes.
Please give us feedback on this unstable update, did anything change for any of you? Does the game load slower or faster and could anyone reproduce the issue with the mods list and is it gone now?
UPDATE:
Please let us know about any mod incompatibility you encounter, we have recently pushed a second patch with more loadtime improvements, that apparently is causing issues with some mods.
If you encounter an issue with a mod, please post the logfile (see this thread on how to get your logfile: https://ludeon.com/forums/index.php?topic=513.0) along with your mod list and / or the mod you think is the cause of the error.
I do notice a significant difference going from the main menu into the mod list. On stable it took like 17 secs. down to approx 2 secs. on unstable. I still have a longer load times with my stand alone ver 2150 vs steam with the same mod list. The only to compare the stand alone is to have a stand alone ver of the 2277 to test with.
No changes on my end, still getting a hour long load time. With the Multiplayer mod however I'm able to reduce this to 8 mins (without this update). One bug I've noticed so far, missing textures for mod Previews.
It took about the same time for me. I just got some error messages, probably about version number.
Thanks for trying anyway! Keep on the great work!
I don't have a lot of mods but the loading time is still noticeably shorter so I'd say great job on that.
Only issue I noticed is that mods are missing their icon/images.
I have the game on SSD before the unstable my startup time was around 9 to 10mins, now its around 1 to 2mins. 160mods
Great improvement on startup time! I have ~260 mods installed, it normally takes ~15-20 min to load up. With the unstable test it dropped down to about a 7 min startup. I noticed that the error log popped up once getting to the main menu, where I wasn't getting any red errors before. (That might not be 100% accurate though, I will need to load the game up under the current version and verify if no errors occur.) There were only two though, and I think they might have been texture related. For now I plan to play for awhile :) but once I confirm if I get errors on the current stable version or not I'll post it. Very noticeable improvement. Thanks!
I've also noticed a drastic reduction in loading times. I've gone from almost two hours loading time with 300-400 mods to less than an hour. I am very grateful for this update, it has helped a lot.
Great work. Running on Mac ssd with 280 mods, startup time is down from 40 min to 5 min. However, both my savegames and world gen are broken - certainly a mod conflict but worth noting. Thanks for your efforts!
Just offering some feedback. I'm not sure on loading times ATM (I got distracted - don't ask!) but will try again and report on that. I HAVE noticed an error popping up that seems to be related to Fluffy's Mod Manager.
Quote[ModCheck] Internal failure patching Verse.LoadedModManager.ApplyPatches
Verse.Log:Error(String, Boolean)
ModCheck.<Transpiler>d__2:MoveNext()
System.Linq.<CreateCastIterator>c__Iterator0`1:MoveNext()
System.Collections.Generic.List`1:AddEnumerable(IEnumerable`1)
System.Collections.Generic.List`1:.ctor(IEnumerable`1)
System.Linq.Enumerable:ToList(IEnumerable`1)
Harmony.<ConvertToOurInstructions>d__7:MoveNext()
System.Linq.<CreateCastIterator>c__Iterator0`1:MoveNext()
System.Collections.Generic.List`1:AddEnumerable(IEnumerable`1)
System.Collections.Generic.List`1:.ctor(IEnumerable`1)
System.Linq.Enumerable:ToList(IEnumerable`1)
Harmony.CodeTranspiler:GetResult(ILGenerator, MethodBase)
Harmony.ILCopying.MethodBodyReader:FinalizeILCodes(List`1, List`1, List`1)
Harmony.ILCopying.MethodCopier:Finalize(List`1, List`1)
Harmony.MethodPatcher:CreatePatchedMethod(MethodBase, String, List`1, List`1, List`1)
Harmony.PatchFunctions:UpdateWrapper(MethodBase, PatchInfo, String)
Harmony.PatchProcessor:Patch()
Harmony.HarmonyInstance:<PatchAll>b__9_0(Type)
Harmony.CollectionExtensions:Do(IEnumerable`1, Action`1)
Harmony.HarmonyInstance:PatchAll(Assembly)
ModCheck.HarmonyStarter:.ctor(ModContentPack)
System.Reflection.MonoCMethod:InternalInvoke(Object, Object[], Exception&)
System.Reflection.MonoCMethod:Invoke(Object, BindingFlags, Binder, Object[], CultureInfo)
System.Reflection.MonoCMethod:Invoke(BindingFlags, Binder, Object[], CultureInfo)
System.Activator:CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo, Object[])
System.Activator:CreateInstance(Type, Object[], Object[])
System.Activator:CreateInstance(Type, Object[])
Verse.LoadedModManager:CreateModClasses()
Verse.LoadedModManager:LoadAllActiveMods()
Verse.PlayDataLoader:DoPlayLoad()
Verse.PlayDataLoader:LoadAllPlayData(Boolean)
Verse.Root:<Start>m__1()
Verse.LongEventHandler:RunEventFromAnotherThread(Action)
Verse.LongEventHandler:<UpdateCurrentAsynchronousEvent>m__1()
The only other mod I have related to the way mods are loaded is RIMMSLoadUp. Oh, I just got the following when I tried to get the logs:
Quote[HugsLib][ERR] Exception while drawing log window widget: System.NullReferenceException: Object reference not set to an instance of an object
at HugsLib.Logs.LogPublisher.UpdateCustomOptionsUsage () [0x00000] in <filename unknown>:0
at HugsLib.Logs.LogPublisher.ShowPublishPrompt () [0x00000] in <filename unknown>:0
at HugsLib.Logs.LogWindowExtensions+<>c.<AddOwnWidgets>b__15_0 (Verse.Window window, Rect area, Verse.LogMessage message, Verse.WidgetRow row) [0x00000] in <filename unknown>:0
at HugsLib.Logs.LogWindowExtensions.DrawLogWindowExtensions (Verse.Window window, Rect inRect) [0x00000] in <filename unknown>:0
Verse.Log:Error(String, Boolean)
HugsLib.Utils.ModLogger:Error(String, Object[])
HugsLib.Logs.LogWindowExtensions:DrawLogWindowExtensions(Window, Rect)
HugsLib.Patches.EditWindow_Log_Patch:ExtraLogWindowButtons(Window, Rect&)
Verse.EditWindow_Log:DoMessagesListing_Patch1(Object, Rect)
Verse.EditWindow_Log:DoWindowContents(Rect)
Verse.<WindowOnGUI>c__AnonStorey0:<>m__0(Int32)
UnityEngine.GUI:CallWindowDelegate(WindowFunction, Int32, Int32, GUISkin, Int32, Single, Single, GUIStyle)
UPDATE: Just checked and my load time has halved, from about half an hour to fourteen minutes. That's with around 300-ish mods, for perspective. If we can get it to play nicely with Mod Manager, I will be a very happy kitty :)
BlueTressym,
does you have any different results when you remove RIMMSLoadUp?
Down to one minute from around 8, 180 mods. It's magic!
58 mods installed.
Loading in stable release: 1:51 minutes.
Loading in unstable release: 54 seconds.
Loading game: 55 seconds.
Loading game: 18 seconds.
So roughly a minute's worth of loading cut!
@Canute I've just checked. Loading time was about the same without RIMMSLoadUp. Still getting this error:
Quote[ModCheck] Internal failure patching Verse.LoadedModManager.ApplyPatches
Verse.Log:Error(String, Boolean)
ModCheck.<Transpiler>d__2:MoveNext()
System.Linq.<CreateCastIterator>c__Iterator0`1:MoveNext()
System.Collections.Generic.List`1:AddEnumerable(IEnumerable`1)
System.Collections.Generic.List`1:.ctor(IEnumerable`1)
System.Linq.Enumerable:ToList(IEnumerable`1)
Harmony.<ConvertToOurInstructions>d__7:MoveNext()
System.Linq.<CreateCastIterator>c__Iterator0`1:MoveNext()
System.Collections.Generic.List`1:AddEnumerable(IEnumerable`1)
System.Collections.Generic.List`1:.ctor(IEnumerable`1)
System.Linq.Enumerable:ToList(IEnumerable`1)
Harmony.CodeTranspiler:GetResult(ILGenerator, MethodBase)
Harmony.ILCopying.MethodBodyReader:FinalizeILCodes(List`1, List`1, List`1)
Harmony.ILCopying.MethodCopier:Finalize(List`1, List`1)
Harmony.MethodPatcher:CreatePatchedMethod(MethodBase, String, List`1, List`1, List`1)
Harmony.PatchFunctions:UpdateWrapper(MethodBase, PatchInfo, String)
Harmony.PatchProcessor:Patch()
Harmony.HarmonyInstance:<PatchAll>b__9_0(Type)
Harmony.CollectionExtensions:Do(IEnumerable`1, Action`1)
Harmony.HarmonyInstance:PatchAll(Assembly)
ModCheck.HarmonyStarter:.ctor(ModContentPack)
System.Reflection.MonoCMethod:InternalInvoke(Object, Object[], Exception&)
System.Reflection.MonoCMethod:Invoke(Object, BindingFlags, Binder, Object[], CultureInfo)
System.Reflection.MonoCMethod:Invoke(BindingFlags, Binder, Object[], CultureInfo)
System.Activator:CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo, Object[])
System.Activator:CreateInstance(Type, Object[], Object[])
System.Activator:CreateInstance(Type, Object[])
Verse.LoadedModManager:CreateModClasses()
Verse.LoadedModManager:LoadAllActiveMods()
Verse.PlayDataLoader:DoPlayLoad()
Verse.PlayDataLoader:LoadAllPlayData(Boolean)
Verse.Root:<Start>m__1()
Verse.LongEventHandler:RunEventFromAnotherThread(Action)
Verse.LongEventHandler:<UpdateCurrentAsynchronousEvent>m__1()
The Log is working now though :)
https://gist.github.com/a7e432fa122eefbbc06f788353a9dcf7
Yep, i notice some changes as well, around 40% shorter loading time.
(I'm using around 50 mods).
Yes, loading time was cut significantly. Old save worked just fine, no glitches.
BTW, @Kenneth please provide short intro about your-self. It's always interesting to know more about new game developer / programmer. Where is Tynan?
I run 45 to 50 mods. Testing reduced mod times from 3 to 5 minutes to 1 to 2 minutes. I love the update! Thank you.
Wow this update drastically reduced my loading times. I reported before that I had a load time of approximately 51 minutes with 242 mods and about 25% of them are content heavy. After this beta update, I have a load time of 16 minutes and 30 seconds with the same setup. Great work Ludeon!
Note that the author of RIMMSLoadUp stated that the mod may not be necessary more with this update, however he also stated that it is missing the preview texture cache which hopefully can be integrated with this update to help speed things up a bit more. BetterLoading Screen mod still works with this new version.
Quote from: TastyCookies on May 20, 2019, 06:37:53 AM
Wow this update drastically reduced my loading times. I reported before that I had a load time of approximately 51 minutes with 242 mods and about 25% of them are content heavy. After this beta update, I have a load time of 16 minutes and 30 seconds with the same setup. Great work Ludeon!
Note that the author of RIMMSLoadUp stated that the mod may not be necessary more with this update, however he also stated that it is missing the preview texture cache which hopefully can be integrated with this update to help speed things up a bit more. BetterLoading Screen mod still works with this new version.
This is pure insanity... 242 mods? Could you please share the list? Even HardcoreSK doesn't have so many mods. Compatibility question? OMG.
Thanks for all the feedback and keep it coming, I've updated the first post with additional information.
Please let us know about any mod incompatibility you encounter, we are currently investigating incompatibility reports.
Quote from: legendary on May 20, 2019, 07:30:17 AM
This is pure insanity... 242 mods? Could you please share the list? Even HardcoreSK doesn't have so many mods. Compatibility question? OMG.
Here is the attachment that has my mod list, note that there are a lot of mods that are def heavy. Surprisingly, I did not get any errors upon startup. I only get errors when I open up the mod list but they are harmless and it is caused by ModSwitch.
[attachment deleted due to age]
Starting up game with latest patch: 2:00 minutes
Loading game: 17:88 seconds
Unfortunately, one step backward and one step forward. That's a 10 second increase starting up but not much else.
Currently working with 270 mods. https://gist.github.com/703db642d29b16feb723cd42b753cd5f for the error log. 580s load time. 9 minutes where prior it was about 15-20. Holy mother of god.
Down to about 15 minutes from 45 mins. So cut in third, definitely an improvement. Still bit on the slow side, but I use a lot of race and animal mods, so maybe that's unavoidable. According to BetterLoading, the databases/defs load very quickly now. Used to be that it spent most of the time reading defs, now it spends 90% of it on the 'finishing up' phase.
Quote from: legendary on May 20, 2019, 07:30:17 AM
This is pure insanity... 242 mods? Could you please share the list? Even HardcoreSK doesn't have so many mods. Compatibility question? OMG.
I'm currently using 261 mods myself. Seems to be pretty standard among long-time players. As for compatibility problems, a single badly-written mod can easily break the game. Just need to detect and remove the broken ones, and then 200+ mods will run fine. This (https://github.com/RimWorld-CCL-Reborn/AllYourBase) is a good tool to start with.
Running 23 mods on my laptop. No errors on startup, startup time seems to be faster than before.
(~200 mods) Before the update: ~1700 seconds = ~28 minutes
(~200 mods) After the update: ~300 seconds = ~5 minutes
Best mod related update ever <3
Quote from: BlueTressym on May 18, 2019, 11:56:35 PM
Just offering some feedback. I'm not sure on loading times ATM (I got distracted - don't ask!) but will try again and report on that. I HAVE noticed an error popping up that seems to be related to Fluffy's Mod Manager.
That log looks like it's related to ModCheck, a precursor to my Mod Manager. In any case, some incompatibilities with mods that directly touch mod loading are perhaps to be expected.
Hi! The latest update has significantly improved my load time, by at least a couple minutes. I would estimate it's gone from 4-7 minutes to maybe 2-3. I uploaded my log to github just in case it helps- https://gist.github.com/0528b9cb874667c0ec1771fba18198a1 (https://gist.github.com/0528b9cb874667c0ec1771fba18198a1). The creating defs part seems to go a lot quicker. It does get hang up on the xml creation part still, specifically the RecipeDef part. Probably because of the # of mods I have that add crafting. Great update though- and thanks for the great game Tynan.
Mod count - 288
Load time without new version 1 hour
Load time with new version ~10 mins
No incompatibilities seen so far.
Can finally stop using the Multiplayer mod for Singleplayer, good work! ;D
Quote from: Ziehn on May 20, 2019, 03:39:25 PM
Mod count - 288
Load time without new version 1 hour
Load time with new version ~10 mins
No incompatibilities seen so far.
Can finally stop using the Multiplayer mod for Singleplayer, good work! ;D
Please include your mod list. Such humongous lists are interesting.
Quote from: legendary on May 21, 2019, 02:46:42 AM
Quote from: Ziehn on May 20, 2019, 03:39:25 PM
Mod count - 288
Load time without new version 1 hour
Load time with new version ~10 mins
No incompatibilities seen so far.
Can finally stop using the Multiplayer mod for Singleplayer, good work! ;D
Please include your mod list. Such humongous lists are interesting.
Sure, here's the Mod Manager list. I have a steam list but it's a mess atm so not really fit for sharing.
[attachment deleted due to age]
Ziehn,
that list is total pointless.
At last i could see you use hugslib, just press CTRL-F12 to create a logfile.
That link include your modlist too.
Quote from: Canute on May 21, 2019, 04:21:40 PM
Ziehn,
that list is total pointless.
At last i could see you use hugslib, just press CTRL-F12 to create a logfile.
That link include your modlist too.
Place attached file in
AppData\LocalLow\Ludeon Studios\RimWorld by Ludeon Studios\ModLists
Load Fluffy's Mod Manager
Load saved mod list from the mod manager
Click Subscribe to all missing workshop mods
The file even has mod names in plain text if that's all you were after, just scroll down
My load times when from 580s(stable) --> 180s(unstable). I used the startup impact mod to test this, but I also have RIMMSLoadUp mod that helps load times on both.
I reviewed the code changes in the new version and wanted to offer some feedback and clarification of what has been done.
First what has been done and what can be expectedOld means it was done in RIMMSLoadup and offers no new benefit.
New - When creating objects from xml configurations the reflection results are cached.
New - When processing xml, hash lookups replace linear searches. Much better scaling.
Old - The lookup for types referenced in xml is cached so that the work is not repeated.
Old - The preview images are now only loaded when looking at the mod list.
Old - Corrected xml iterations to avoid unnecessary searches.
Old - Skipping comments in xml files.
The new changes improve the conversion of the configuration files into defs used by the game. The old changes improve the merging and processing of xml files and reduce the memory consumption during loading.
Texture loading or a direct improvement to mod constructor runtime is not to be expected. If mods load their configuration file or other xml sources they can improve their speed.
Further improvements for these changes
- Not all xml iterations are fixed. Only the ones handled by RIMMSLoadup. The ones in PatchOperationAdd, PatchOperationAddModExtension, PatchOperationInsert and PatchOperationReplace are still faulty.
- When caching reflection results the MethodInfos should be replaced with delegates(Delegate.CreateDelegate) since they all reference static methods with identical parameters. This is multiple times faster.
- Only comments are skipped when loading xml files, not unnecessary whitspaces. Adding the IgnoreWhitespace parameter makes sense. In for a penny in for a pound.
- When preview images have been loaded they stay loaded, the mod manager dialog should null them in it's postClose and call Resources.UnloadUnusedAssets() so the memory is not wasted for later gameplay. Fringe case however.
Quote from: Fluffy (l2032) on May 20, 2019, 11:57:45 AM
Quote from: BlueTressym on May 18, 2019, 11:56:35 PM
Just offering some feedback. I'm not sure on loading times ATM (I got distracted - don't ask!) but will try again and report on that. I HAVE noticed an error popping up that seems to be related to Fluffy's Mod Manager.
That log looks like it's related to ModCheck, a precursor to my Mod Manager. In any case, some incompatibilities with mods that directly touch mod loading are perhaps to be expected.
Hi Fluffy. The error was entirely expected on my part, so I'm not bothered by it, just mentioning it. I haven't used ModCheck for ages though, since I discovered your Mod Manager, which makes my mod handling easier by orders of magnitude. No idea why I'd get an error related to ModCheck when I don't use it but heck, I don't really have a clue abut how this all works.
My load time is at about 15 mins ATM with around 300-ish mods. That's about half what it was before. Now all I have to do is figure out what to do about the in-game lag...
You don't need to have explicit activate the Modcheck mod.
Many modder use the modcheck.dll at their own.
Just search for "modcheck" at your mods folder and you maybe find a modcheck.dll.
Load times have been significantly improved for me. Previously it could take up to 15 minutes to load my game with a ton of mods, now when I started it with the unstable branch it took 1-2 minutes, didn't measure the exact time for either, though.
Quote from: Canute on May 24, 2019, 02:51:10 AM
You don't need to have explicit activate the Modcheck mod.
Many modder use the modcheck.dll at their own.
Just search for "modcheck" at your mods folder and you maybe find a modcheck.dll.
Thank you Canute. Is the modcheck.dll something that I need to be concerned about? I've heard of .dll files and I know they are in some mods but I don't know what they are or what they are supposed to do.
The .dll are libaries, they expand the game with function the vanilla don't provide.
In case of the modcheck.dll, like the name say, give the modauthor some tools to check for other mods and do some action based on the results.
The mod with the modcheck.dll need to have these .dll file or it would cause error and maybe didn't work correct anymore.
Thank you for the clarification. As stated before, I'm getting an error with it. I know it was mentioned that this could happen. Is it something that will get fixed?
Noone can realy say something about that.
Maybe the Rimworld devs fix some screws so no problem at all will show up. Since there wasn't a problem with ModManager,ModCheck and RIMMSLoadUp (which is basicly similar to the changes now) before.
But i am sure Nightinggale and Fluffy will do their best (like allways) to made their mods compactible again.
You just need to have to wait.
Fair enough.
Have around 300 mods activated, startup time went from 151 seconds to 106 seconds, nice patch! The biggest culprits (per startup impact) are alien framework (pretty sure its one of the biggest contributors to long load time for mod heavy people), Pick up and Haul, and Achtung!
Haven't played yet to see if anything is borked but didn't see any (new) errors in my log.
Quote from: BlueTressym on May 18, 2019, 11:56:35 PM
Just offering some feedback. I'm not sure on loading times ATM (I got distracted - don't ask!) but will try again and report on that. I HAVE noticed an error popping up that seems to be related to Fluffy's Mod Manager.
Quote[ModCheck] Internal failure patching Verse.LoadedModManager.ApplyPatches
I'm not really sure why it's only reported here (and not to me through the forum) when it explicitly states ModCheck. However I updated ModCheck yesterday to fix this problem and it should be gone by now. If not, odds are that you rely on some mod, which includes ModCheck.dll and that mod haven't updated. If you don't feel like waiting for such mods to update, you can add the ModCheck mod.
The problem isn't even a serious one. It just disables the ability to profile xml patching (performance measurement for modders). Everything else should still work just fine.
Quote from: Nightinggale on May 30, 2019, 08:29:18 AM
Quote from: BlueTressym on May 18, 2019, 11:56:35 PM
Just offering some feedback. I'm not sure on loading times ATM (I got distracted - don't ask!) but will try again and report on that. I HAVE noticed an error popping up that seems to be related to Fluffy's Mod Manager.
Quote[ModCheck] Internal failure patching Verse.LoadedModManager.ApplyPatches
I'm not really sure why it's reported here when it explicitly states ModCheck. However I updated ModCheck yesterday to fix this problem and it should be gone by now. If not, odds are that you rely on some mod, which includes ModCheck.dll and that mod haven't updated. If you don't feel like waiting for such mods to update, you can add the ModCheck mod.
The problem isn't even a serious one. It just disables the ability to profile xml patching (performance measurement for modders). Everything else should still work just fine.
*sigh* I reported it here because it is something that popped up when I switched to the unstable beta and I noted it as part of reporting on that. Also, I haven't been using ModCheck and thus didn't think of this as an error with that. I saw 'ModManager' mentioned in the error and thought it might be related to Fluffy's Mod Manager, as I previously stated. Since I had already read that the beta might have issues with mods like Mod Manager, I wasn't too worried, just reporting that such was the case. I was not aware that 'LoadedModManager' might apply to something found as a .dll in other mods, since that's not something I know anything about.
Update is now released as stable, so I'll close this topic.
Please post any issues you find in the Bugs forum.