Hi Folks Just wondering if there are any experienced / professional scenario creators who would be willing to outline their techniques for optimising scenarios for stability and avoidance of OOM fatal crashes? I tend to prefer scenarios with a realistic level of traffic but this then means sometimes I’m skating close to the limit of the simulator. Is there a sort of checklist approach to solving a persistent OOM crash? My current example is a self-made scenario on JT MML route between Man Picc and Sheffield via Marple; after creating the player service and testing it as far as Romiley, I’ve then populated the Man Picc area with traffic (plus a few static consists), retested, all fine. Added traffic and static consists elsewhere - closest location to start point are AI trains at Marple and New Mills, plus a static consist at New Mills) , all seemed fine but now my scenario persistently OOM-crashes upon player train passing Ardwick. (Have tested a couple of times and seems to crash in the same geographical spot even if the speed/time varies slightly.). Does this suggest it’s a memory issue when loading the next tile should I be looking at this in a different way? Just after some advice really, I spent most of yesterday putting this together so it’ll be a shame to lose all the work. I’ve got a backup saved in it’s ‘pre-optimised’ state allowing me to play around with things a bit.
I have a sneaking suspicion that the game loads assets per object, meaning every single scenery and rail object is on its own. Many moons ago I created a Donner Pass scene with Roseville yard filled with all kinds of trains, it was a spectacular slideshow, but functional. Added a single Sherman Hill consist further down the line as AI to pass me as I leave. It crashed, and I couldn't edit it out, until I managed to fly around in a big circle, not looking at Roseville, ideally unloading it, and then arriving at the SH train, I was able to drop. The error message said out of video memory. In contrast, I created a full Canadian Mountain Passes end-to-end with 43 AI and some more static, without a single crash while editing or running, in 32 bit.
Interesting, I’ve never encountered a video-memory crash specifically. This scenario has about 20 AI trains, with about half to 2/3 running in the Manchester area and the remainder starting at various points on the route, timed to pass the player train at realistic locations (based on the 1996 WTT) before heading for a convenient portal. I thought I’d sorted Manchester and was assuming if anywhere I’d have optimisation issues at the Sheffield tile, but alas no! Does anyone familiar with Just Trains’ MML Hope Valley & Buxton extensions know where the tile boundaries are? I’m assuming I’m exceeding the asset count that virtual memory can cope with, presumably as a new tile loads triggered by the player passing Ardwick. If I can work out which tile that is, I might be able to pinpoint the issue?
You can turn on the tile boundaries in the route editor (its the little circle in the bottom left box - hover over each one to identify it). The boundaries show as white lines and you can see the tile coords bottom left of your screen. My own thoughts on your problem: I have steam-era scenarios with 160 AI consists and 400-500 static consists (spread across a hundred tiles) so the issue isn't absolute numbers of consists As a precaution I make extensive use of scenery static wagons/coaches and also low-poly rolling stock which allow me to populate goods yards without impacting memory too much - I'd always recommend this approach as a baseline (I have a load of scenery rolling stock items permanently in place on the many unregarded sidings which helps speed up scenario building as it means I have a good background 'load' a priori) My suspicion is that many of these OOM errors are caused by a piece of rogue/defective rolling stock that triggers a problem under some circumstances. I know that some older freeware stock can cause a derailment when buffered with some other pieces in some cases and I'd imagine there are other possible failures too. It's also possible that you are using one (or more) excessively memory-heavy bits of rolling stock which is causing a transient memory overload that isn't being handled nicely by the game engine. Possible steps to remediate: Identify the contents of the next tile and then remove everything in it except for the simplest stock (professionally-produced stock with no repaints) and retest. If this runs cleanly then add the rolling stock back one element type at a time (ie if you have three 356 consists then add those back together) and retest. Leave any funky rolling stock till the end (ie freeware, repaints etc). With luck you may identify a culprit. If this approach doesn't work then the problem may be that an AI unit is being triggered by your player train movement (perhaps in the tile that you pass through). Tracing these things down is difficult - especially if you have a wide collection of stock from many years' collecting!