Better Loading for Rimworld
(https://i.imgur.com/xzcELbP.png)
Better Loading is a mod that aims to fix the monotony and uncertainty of the vanilla game's loading screen. Currently, said loading screen displays only three stages for any major length of time: "...", "Loading Defs..." and "Initializing...". That's not useful, it doesn't give a sense of movement, and it's boring to watch.
This mod aims to solve these issues.
Firstly, it has clearly defined stages that hopefully give more info away than the three vanilla stages.
Secondly, it has progress bars that give a sense that something is actually happening, and that, to some degree, take away the monotony of that endlessly looping "...".
At the same time, it aims to do what it does without negatively affecting load times - which, in my tests, it succeeds at.
The mod also contains a custom loading screen for loading saves, as these, too, can take a while once they have a lot of playtime, if they have a high coverage %, or a high map size, or a lot of mods... you get the point.
Position in load order shouldn't matter, except that the higher the mod, the earlier it can take over from the vanilla loading screen, so for best results put this mod at the very top of the mod ordering (yes, even above core)
Downloads
GitHub Releases: https://github.com/SamboyCoding/RimworldBetterLoading/releases (https://github.com/SamboyCoding/RimworldBetterLoading/releases)
Steam Workshop TBD.
License-wise, feel free to do with this as you wish, as long as you don't upload all or part of my code and call it your own. Thanks!
excellent!
Found a problem:
When in the middle of 6th bar ( forgot the name ), it come back to 3th bar ( applying patches ). Probably because of dynamic patching of some mods ( eg: SeedsPlease ).
Nice, I like to being able to see the progress.
Quote from: temple_wing on January 28, 2019, 10:03:20 PM
excellent!
Found a problem:
When in the middle of 6th bar ( forgot the name ), it come back to 3th bar ( applying patches ). Probably because of dynamic patching of some mods ( eg: SeedsPlease ).
Hi, can you please upload the output log? It should help me narrow down this issue. Thanks in advance.
I'm not on my RimWorld machine right now, but this got instantly bookmarked for later download!
No error. No log.
Just it came back to "applying patches" bar, and the number "68/68" became "143/68", and the bar became very long, longer than my screen.
I think that's because it found more mods that needed to be patched.
Probably, those are dynamically added patches ( by eg: SeedsPlease ).
-------------------
I have 68 mods.
Quote from: temple_wing on January 29, 2019, 03:24:53 AM
No error. No log. Just it came back to "applying patches" bar, and the number "68/68" became "143/68", and the bar became very long, longer than my screen.
I think that's because it found more mods that needed to be patches, because those are dynamically added mods ( by eg: SeedsPlease ).
There won't be an error, I just would like the output_log.txt file for working out what exactly is going on. It's in the RimworldXXXX_Data folder.
I'll restart rw and try to capture a screenshot.
Excellent idea and work ! ! !
A few idea's
- can you keep the progress (x / y) after the step is finished ?
- it is possible to minimize/move the window ? Or an alternate view with just 1 progress bar ?
- between "Waiting for defs..." and "Waiting for database..." is still alot of HD activity, any way to monitor that too ?
Just tried this about an hour ago, loading the game went just fine but loading a save with ~200 mods crashed the game. I'll try again later today and post the output log.
restarted.
[attachment deleted due to age]
Quote from: Canute on January 29, 2019, 03:51:47 AM
Excellent idea and work ! ! !
A few idea's
- can you keep the progress (x / y) after the step is finished ?
- it is possible to minimize/move the window ? Or an alternate view with just 1 progress bar ?
- between "Waiting for defs..." and "Waiting for database..." is still alot of HD activity, any way to monitor that too ?
Between those two steps is a bit of misc initialization, I didn't put it in because in all my tests it was under a second in length, but I'll look at adding it.
A smaller window might be doable but I don't want to mess with too many things as the game is a little fragile during initial load. I'll look into it. Keeping the progress I can do.
load game works find for me.
Quote from: temple_wing on January 29, 2019, 06:14:27 AM
restarted.
Ok, thanks for this. Can confirm it's SeedsPlease's fault - the way that is written is really bizarre, and, I hesitate to say, dodgy. I can add a workaround but it'll mean there's a big delay between Creating Defs and Reloading Databases (because SeedsPlease repeats the whole build tree-patch-register-create thing multiple times for some reason).
Quote from: Sixdd on January 29, 2019, 04:53:54 AM
Just tried this about an hour ago, loading the game went just fine but loading a save with ~200 mods crashed the game. I'll try again later today and post the output log.
Please do, it shouldn't crash at all, I must have missed something or something is messing with the mod.
Nice mod! However, I do suggest perhaps implementing a Manifest.xml for Fluffy's Mod Manager, since Mod Manager currently says that Better Loading should be loaded after Core.
Edit: This also seems to be incompatible with Zeltrith's Multiplayer since the map will fail to render upon hosting. Reproducible when this is loaded...
* Before Core
* After Core but before Multiplayer
* After Multiplayer
Quote from: Samboy063 on January 29, 2019, 06:17:16 AM
Quote from: Canute on January 29, 2019, 03:51:47 AM
Excellent idea and work ! ! !
A few idea's
- can you keep the progress (x / y) after the step is finished ?
- it is possible to minimize/move the window ? Or an alternate view with just 1 progress bar ?
- between "Waiting for defs..." and "Waiting for database..." is still alot of HD activity, any way to monitor that too ?
Between those two steps is a bit of misc initialization, I didn't put it in because in all my tests it was under a second in length, but I'll look at adding it.
I wouldn't ask if that would just be a few secs.
But currently it take time before "Waiting for database..." get a progress.
Quote
A smaller window might be doable but I don't want to mess with too many things as the game is a little fragile during initial load. I'll look into it. Keeping the progress I can do.
At last a minimize function would be nice, so we can see the beautiful RW background ! :-) I don't need to watch the progress all the time.
And maybe for the V2 a tetris or similar game, you know some people got 30 min loading times ! :-)
Nah forget it, they can play something else !
Quote from: XeoNovaDan on January 29, 2019, 07:44:20 AM
Nice mod! However, I do suggest perhaps implementing a Manifest.xml for Fluffy's Mod Manager, since Mod Manager currently says that Better Loading should be loaded after Core.
Edit: This also seems to be incompatible with Zeltrith's Multiplayer since the map will fail to render upon hosting. Reproducible when this is loaded...
* Before Core
* After Core but before Multiplayer
* After Multiplayer
Huh. Can you upload a log? I'd like to fix that if I can as this should be a non destructive mod. I'll also look at that manifest.xml
Following discussions with XND in discord I've published v1.1.1 which adds a workaround for an issue in Zetrith's Multiplayer that was making the game unplayable.
Quote from: Samboy063 on January 29, 2019, 06:29:17 AM
Quote from: temple_wing on January 29, 2019, 06:14:27 AM
restarted.
Ok, thanks for this. Can confirm it's SeedsPlease's fault - the way that is written is really bizarre, and, I hesitate to say, dodgy. I can add a workaround but it'll mean there's a big delay between Creating Defs and Reloading Databases (because SeedsPlease repeats the whole build tree-patch-register-create thing multiple times for some reason).
[...]
Maybe you should contact Charlotte/notfood (the mod author) about it. In my experience, she is
very responsive and helpful!
Quote from: Canute on January 29, 2019, 07:53:04 AM
[...]
And maybe for the V2 a tetris or similar game, you know some people got 30 min loading times ! :-)
Nah forget it, they can play something else !
Not if Rimworld hogs all of your memory... :( I can't even have Firefox open when I start Rimworld up, because when RW is done loading, there is pretty much no free memory left, and certainly not enough for a proper browser or game.
@2.71828
How much RAM you got in that thing, a potato? More importantly how many mods are you using, I use around 200 and I've never seen Rimworld take more than 2GB total.
Totally stop functioning after upgrading to 1.1.1
I'll try 1.1 when next I start rw.
---------------------------------------------------------------
Tried, still no loading screen. So it's not 1.1.1 problem.
My mod list:
<li>BetterLoading</li>
<li>Core</li>
<li>HugsLib</li>
<li>JecsTools-1.1.0.9</li>
<li>ModManager</li>
<li>A_Dog_Said_1.0</li>
<li>Vegetable Garden</li>
<li>VGP_Canning</li>
<li>VGP_Garden_Drinks</li>
<li>VGP_Fabric</li>
<li>VGP_Garden_Gourmet</li>
<li>VGP_Medicine</li>
<li>VGP_Tools</li>
<li>VGP_Trees_Flowers</li>
<li>GeneticRim-master</li>
<li>AlphaAnimals-1.091</li>
<li>Apparello</li>
<li>SYR_Blueberries</li>
<li>CentralizedClimateControl</li>
<li>SYR_CoffeeAndTea</li>
<li>Rimfire 2.5</li>
<li>HandAndFootwear</li>
<li>OmniCoreDrill</li>
<li>Rah's Bionics and Surgery Expansion 2.0</li>
<li>CombatExtended</li>
<li>CombatExtendedGuns</li>
<li>ExtendedStorage</li>
<li>Genetic-Rim-CE-Patch-master</li>
<li>Alpha-Animals-CE-Patch-master</li>
<li>ConsolidatedTraits</li>
<li>DoorsExpanded</li>
<li>Dubs Bad Hygiene</li>
<li>ExpandedWoodworking-master</li>
<li>ExpandedWoodworkingVGP</li>
<li>FishIndustry</li>
<li>FluffyBreakdowns</li>
<li>GiddyUpCore-1.1.2</li>
<li>battlemounts-1.1.2</li>
<li>GiddyUpCaravan-1.1.1</li>
<li>GiddyUpMechanoids-1.1.1</li>
<li>GiddyUpRideAndRoll-1.1.1</li>
<li>Megafauna_v1.4_RW1.0</li>
<li>Megafauna (CE compatibility patch)</li>
<li>GeneticRimMegafaunaPatch-1.0</li>
<li>SYR_HarvestYieldPatch</li>
<li>IdlePowerConsumption</li>
<li>SYR_Individuality</li>
<li>Bubbles</li>
<li>LED_TECH_1.0.2059</li>
<li>PickUpAndHaul-1.0.5</li>
<li>RealFoW</li>
<li>1571623829[RF] Realistic Planets [1.0]</li>
<li>RimFridge</li>
<li>RIMkea_1.0</li>
<li>RimWriter-1.20.0.2</li>
<li>RT_PowerSwitch-1.0-1.0.13</li>
<li>RimWorld-SeedsPlease-master</li>
<li>SYR_SetUpCamp</li>
<li>SimpleSidearms</li>
<li>Nandonalts-Snowy-Trees-0.21.0</li>
<li>SurvivalTools</li>
<li>RimworldTerrainZoneSelect-master</li>
<li>ShipChunks-1.1.0</li>
<li>WeaponStorage</li>
<li>DefensiveMachineGunTurretPack</li>
<li>WhatTheHack-1.1.5</li>
<li>MoreFactionInteraction-roadworks</li>
<li>1599065806 Blood Pack</li>
<li>MoreMechanoids</li>
===================================================
This log file is not "clean", I'm inside the game, some error is generate after game started.
[attachment deleted due to age]
temple_wing,
don't forget to add the logfile too.
Yeah, without the log I can do nothing. 1.1.1 shouldn't break anything at all.
It works for me, so i think it is one for temple's mod .
I would blame Combat Extended, since it do alot of detour action (i think).
Quote from: Sixdd on January 30, 2019, 08:51:35 PM
@2.71828
How much RAM you got in that thing, a potato? More importantly how many mods are you using, I use around 200 and I've never seen Rimworld take more than 2GB total.
8GB of pure potato, at
about exactly 290 mods. For me, memory usage increases rapidly and dramatically (up to more than 90%, where the rest of my sytem, including Steam, uses about 10%) just before Rimworld enters the last "loading stage". And then it continues to climb rather slowly during play, over the course of 2–3 hours, until pretty much all of my memory is gobbled up, and my OS pulls the emergency brake, i.e. it's killed by the OOM killer. I have no idea what the cause of that is, exactly. I know that Linux likes to use as much memory as possible, which makes sense after all (more stuff in memory 🠒 less stuff has to be loaded from the HDD 🠒 the system is faster), but still...
Wow, I don't think I've ever seen Rimworld take that much memory. Are you running RuntimeGC, that can clear up memory issues quite well.
Cool mod! Could be used to make debug MUCH easier!
Quote from: 2.71828 on January 31, 2019, 05:32:10 PM
Quote from: Sixdd on January 30, 2019, 08:51:35 PM
@2.71828
How much RAM you got in that thing, a potato? More importantly how many mods are you using, I use around 200 and I've never seen Rimworld take more than 2GB total.
8GB of pure potato, at about exactly 290 mods. For me, memory usage increases rapidly and dramatically (up to more than 90%, where the rest of my sytem, including Steam, uses about 10%) just before Rimworld enters the last "loading stage". And then it continues to climb rather slowly during play, over the course of 2–3 hours, until pretty much all of my memory is gobbled up, and my OS pulls the emergency brake, i.e. it's killed by the OOM killer. I have no idea what the cause of that is, exactly. I know that Linux likes to use as much memory as possible, which makes sense after all (more stuff in memory 🠒 less stuff has to be loaded from the HDD 🠒 the system is faster), but still...
Oh wow. That's almost certainly a memory leak in one (or more) of the mods...I regularly leave RimWorld open for days at a time in the background - not running, but still open - and haven't had any such problems. Which is more than I can say for Firefox :p
--LWM
Quote from: Sixdd on February 01, 2019, 04:35:43 AM
Wow, I don't think I've ever seen Rimworld take that much memory. Are you running RuntimeGC, that can clear up memory issues quite well.
Yeah, I'm already using RuntimeGC, although it doesn't seem to free up any/much memory. It still seems to increase game performance for a while every time I use it, though.
And the funny thing is that Rimworld doesn't even use
that much memory,
only a bit under 4 GB according to the "xfce4-taskmanager", although, to be honest, the terms that are used for memory usage in the Linux world still confuse me somewhat (free memory vs. available memory, and whatnot)...
Quote from: LWM on February 02, 2019, 03:27:57 AM
[...]
Oh wow. That's almost certainly a memory leak in one (or more) of the mods...I regularly leave RimWorld open for days at a time in the background - not running, but still open - and haven't had any such problems. Which is more than I can say for Firefox :p
--LWM
Yeah, I suspect that, as well, although I don't really know how to find out which mod is responsible. Maybe I should actually try this mod (i.e. "Better Loading") out and watch the loading process like a hawk... ;D Currently I hope for a Workshop release, though.
I actually tried to graphically log memory usage during loading twice now, but both times the program I wanted to use failed to log anything (and didn't tell me about it, i.e. give me an error message of some kind, like it's supposed to be doing in that case). Maybe I'll manage to log it someday after all...
Love this mod, but there seems to be some scaling issues. 1440p with 1.5x UI scale
[attachment deleted due to age]
I recently managed to log my memory usage properly (I had a typo in an argument for my programme that should really have elicited some kind of error message, but didn't...), and attached it. Memory gets filled to the brim during the last bit of loading ("Waiting for databases to finish reload"), and then basically stays there, until I start playing and sometimes memory gets to about 99% full, which is when RW gets killed (which happened just a few minutes ago).
What I did to get this curve was to let RW load up, then let it sit 5–10 min in the main menu, load my current save (paused), and wait for another 5–10 minutes. I stopped recording memory usage before I unpaused.
[attachment deleted due to age]
My game with mods loads fine till this point then it sits here for 10 to 20 minutes does anyone have any idea what this could be ? i have tried deactivating the 94th mod down but that doesn't help.
(http://i.imgur.com/SDdDfGB.png)
Quote from: Ziehn on February 08, 2019, 12:15:18 PM
Love this mod, but there seems to be some scaling issues. 1440p with 1.5x UI scale
Now that's really odd. I play at 1440p and it works fine, and there SHOULD be no reason it wouldn't work. Can you try with just BetterLoading?
Quote from: Ronburgundy on February 14, 2019, 07:04:26 AM
My game with mods loads fine till this point then it sits here for 10 to 20 minutes does anyone have any idea what this could be ? i have tried deactivating the 94th mod down but that doesn't help.
The 94/208 is the database it's reloading, not the mod number, so I'm not surprised that didn't help. Could you open the Rimworld Data folder (it'll be in the same place as the game executable and the mods folder) and upload the output_log.txt to hastebin/pastebin/etc?
Quote from: 2.71828 on February 08, 2019, 04:25:39 PM
I recently managed to log my memory usage properly (I had a typo in an argument for my programme that should really have elicited some kind of error message, but didn't...), and attached it. Memory gets filled to the brim during the last bit of loading ("Waiting for databases to finish reload"), and then basically stays there, until I start playing and sometimes memory gets to about 99% full, which is when RW gets killed (which happened just a few minutes ago).
What I did to get this curve was to let RW load up, then let it sit 5–10 min in the main menu, load my current save (paused), and wait for another 5–10 minutes. I stopped recording memory usage before I unpaused.
I can't really say what's causing that, except that if you could look at specifically WHICH database is reloading when the memory usage spikes, we could narrow it down, but without better profiling (which is really quite hard to achieve with unity games) it'll be difficult to find a culprit.
Quote from: Samboy063 on February 14, 2019, 10:22:24 AM
Quote from: Ziehn on February 08, 2019, 12:15:18 PM
Love this mod, but there seems to be some scaling issues. 1440p with 1.5x UI scale
Now that's really odd. I play at 1440p and it works fine, and there SHOULD be no reason it wouldn't work. Can you try with just BetterLoading?
Quote from: Ronburgundy on February 14, 2019, 07:04:26 AM
My game with mods loads fine till this point then it sits here for 10 to 20 minutes does anyone have any idea what this could be ? i have tried deactivating the 94th mod down but that doesn't help.
The 94/208 is the database it's reloading, not the mod number, so I'm not surprised that didn't help. Could you open the Rimworld Data folder (it'll be in the same place as the game executable and the mods folder) and upload the output_log.txt to hastebin/pastebin/etc?
Pastebin of output.
https://pastebin.com/HAnMwSAc (https://pastebin.com/HAnMwSAc)
Quote from: Samboy063 on February 14, 2019, 10:22:24 AM
Quote from: Ziehn on February 08, 2019, 12:15:18 PM
Love this mod, but there seems to be some scaling issues. 1440p with 1.5x UI scale
Now that's really odd. I play at 1440p and it works fine, and there SHOULD be no reason it wouldn't work. Can you try with just BetterLoading?
It's centered if i turn scaling down to 1x but doesn't scale up and sits in the corner if I use 1.5x UI scaling. Text is a bit too small at 1x :P
Quote from: Ziehn on February 14, 2019, 11:47:41 AM
Quote from: Samboy063 on February 14, 2019, 10:22:24 AM
Quote from: Ziehn on February 08, 2019, 12:15:18 PM
Love this mod, but there seems to be some scaling issues. 1440p with 1.5x UI scale
Now that's really odd. I play at 1440p and it works fine, and there SHOULD be no reason it wouldn't work. Can you try with just BetterLoading?
It's centered if i turn scaling down to 1x but doesn't scale up and sits in the corner if I use 1.5x UI scaling. Text is a bit too small at 1x :P
Alright so it's scaling and Rimworld not providing proper screen resolution. Good to know.
Quote from: Ronburgundy on February 14, 2019, 10:52:10 AM
Quote from: Samboy063 on February 14, 2019, 10:22:24 AM
Quote from: Ziehn on February 08, 2019, 12:15:18 PM
Love this mod, but there seems to be some scaling issues. 1440p with 1.5x UI scale
Now that's really odd. I play at 1440p and it works fine, and there SHOULD be no reason it wouldn't work. Can you try with just BetterLoading?
Quote from: Ronburgundy on February 14, 2019, 07:04:26 AM
My game with mods loads fine till this point then it sits here for 10 to 20 minutes does anyone have any idea what this could be ? i have tried deactivating the 94th mod down but that doesn't help.
The 94/208 is the database it's reloading, not the mod number, so I'm not surprised that didn't help. Could you open the Rimworld Data folder (it'll be in the same place as the game executable and the mods folder) and upload the output_log.txt to hastebin/pastebin/etc?
Pastebin of output.
https://pastebin.com/HAnMwSAc (https://pastebin.com/HAnMwSAc)
That's not the correct file, that's a game crash. BetterLoading wasn't even in your mod list.
One of the worst parts about Rimworld is waiting for the loading to get done with aaalllll the mods.
Thank you very much.
Very fun mod for people with way too many mods (ie most people here).
I noticed there is an issue where the last bit "freezes" on whatever the last mod was. I thought I found a loading bug on one of the mods but it turns out the loading screen was "freezing" on the last mod.
Maybe the game is actually taking forever on the last mod due to how it loads mod or not.
Quoteout the loading screen was "freezing" on the last mod.
I mention a similar thing.
This mod don't freeze, it is just Rimworld what is doing something but that don't get displayed through this mod.
But if it realy freeze, so Rimworld don't finish the loading process, you should post a logfile + modlist. Then the author can investigate the problem.
Unfortunately, the last bit of the loading process - the last bar - is run on the UI thread, so it lags the entire game's UI out meaning it can't display what's going on. The code exists to show it, it's just freezing until it's all done.
I seem to have the exact same problem as Ronburgundy. My game loads just fine, only takes a couple minutes, then sits there for about 26 minutes on 'Reloading DefDatabase: RecipeDef.' It's also database number 94.
Here's my output log: http://pasted.co/e4d98454
I've also run Startup Impact, which informs me that my time was 1952.4s, and 1592.4s of that time is 'Not directly related to mods' if that helps.
vel10,
just a hint you should adjust your modlist so you don't got erros, and you got alot of them.
Excellent! The first time I loaded RimWorld I muttered to myself that I wished it had something like this instead of just 'loading...'
I enjoy this mod. There is just one issue though. I'm at 4K screen resolution and when using 1.25x or 1.5x scailing and the new loading screen dosen't scale up right
[attachment deleted due to age]
Okay, this is honestly one of those must have mods for me that make me scratch my head why the official dev didn't implement it in the first place. Thank you very much!
When I saw this mod, I became very concerned. For this to work you have to use Harmony and patch the same part of the code as ModCheck is patching. This could result in compatibility issues.
I read through your source code and indeed we are getting close with LoadedModManager.ApplyPatches. ModCheck patches with a transpiler and the code will break if another mod applies a transpiler patch to the very same method. You patch the same method with a prefix, which is fine. They can coexist without disturbing each other.
The only compatibility issue I can see is if ModCheck is loaded before Better Loading Mod, then ModCheck will include your Prefix as time spent patching when profiling patching. It will however not show up when telling time spend on each patch or time patching each mod, which are the important numbers. If ModCheck is loaded last, then there is no problem. I do not consider this an issue we should be concerned with. It's way too minor.
You should add a manifest to make your mod work with Fluffy's Mod Manager. When you do that, just list ModCheck as a mod, which should be loaded after your mod if it's present and then we solved the minor profiling issue. You should add a manifest file anyway since your mod needs to be loaded before Core.
I haven't actually done any ingame testing for compatibility, but from what I have read in the source so far I would be really surprised if there is a conflict. Also nobody reported any issues.
As far as I can tell, multiple Transpilers CAN run one after another, as long as the authors are careful and either lucky or pay attention to each other.
--LWM
What do the numbers behind the 6th bar represent? I'm making a mod and it has patches for some other mods that make that number shoot up by 50000, so I'd like to know what it stands for, so I could maybe fix that, since it is quite a slow down to my loading time.
can this work along with RimTheme?
I have it on my modorder but it doesn't work for me.
Really good mod, I combined it with some other mods that improve loading time and now I can load 300 mods in less than 10 mins °˖✧◝(⁰▿⁰)◜✧˖°
Quote from: Roxaereon on November 10, 2019, 03:31:19 AM
I have it on my modorder but it doesn't work for me.
have you tried putting it above "core"?
Quote from: Chaos17 on November 11, 2019, 07:27:55 AM
Really good mod, I combined it with some other mods that improve loading time and now I can load 300 mods in less than 10 mins °˖✧◝(⁰▿⁰)◜✧˖°
Please tell me, which mods exactly?
Also I'm stuck on those databases too... Anyone found the solution yet?