I'm going to run an experiment by caching the generated height map samples in my mod's persistent data folder and loading those instead of recalculating the values each time a map pixel gets loaded.
I know the disk space requirements are going to be ridiculous (25GB) for all 500.000 map pixels but I'm hoping the speed gain will be worth it. Seeing how modern games are freaking huge when it comes to filesize, I imagine there are people who would turn this cache on since all it would do is increase your install size slightly
- Update 1 -
So, after 20 something hours I've finally generated the 500.000 files for the whole map. Total file size is 24.1GB uncompressed.
I have tested the Travel Options-mod in the Wrothgarian Mountains and I am able to move with the speed / timescale cranked up to 40x. I have not fallen through the terrain and the game has not crashed.
Can anyone run this mod with 40x speed normally? I know my rig just goes "I don't think so, Tim" when I try that without this cache.
The average terrains update time is about 500ms. I've extract the times from my test run:
Code: Select all
Line 2022: DFTFU 1.9.1: Time to update terrains: 3684ms
Line 2154: DFTFU 1.9.1: Time to update terrains: 398ms
Line 2205: DFTFU 1.9.1: Time to update terrains: 498ms
Line 2256: DFTFU 1.9.1: Time to update terrains: 443ms
Line 2343: DFTFU 1.9.1: Time to update terrains: 455ms
Line 2355: DFTFU 1.9.1: Time to update terrains: 517ms
Line 2376: DFTFU 1.9.1: Time to update terrains: 477ms
Line 2388: DFTFU 1.9.1: Time to update terrains: 517ms
Line 2400: DFTFU 1.9.1: Time to update terrains: 525ms
Line 2415: DFTFU 1.9.1: Time to update terrains: 503ms
Line 2439: DFTFU 1.9.1: Time to update terrains: 500ms
Line 2454: DFTFU 1.9.1: Time to update terrains: 518ms
Line 2469: DFTFU 1.9.1: Time to update terrains: 519ms
Line 2481: DFTFU 1.9.1: Time to update terrains: 507ms
Line 2496: DFTFU 1.9.1: Time to update terrains: 499ms
Line 2508: DFTFU 1.9.1: Time to update terrains: 511ms
Line 2529: DFTFU 1.9.1: Time to update terrains: 510ms
Line 2544: DFTFU 1.9.1: Time to update terrains: 494ms
Line 2556: DFTFU 1.9.1: Time to update terrains: 536ms
Line 2571: DFTFU 1.9.1: Time to update terrains: 461ms
Line 2583: DFTFU 1.9.1: Time to update terrains: 499ms
Line 2595: DFTFU 1.9.1: Time to update terrains: 487ms
Line 2607: DFTFU 1.9.1: Time to update terrains: 498ms
Line 2622: DFTFU 1.9.1: Time to update terrains: 505ms
Line 2637: DFTFU 1.9.1: Time to update terrains: 519ms
Line 2661: DFTFU 1.9.1: Time to update terrains: 527ms
Line 2676: DFTFU 1.9.1: Time to update terrains: 528ms
Line 2694: DFTFU 1.9.1: Time to update terrains: 459ms
Line 2706: DFTFU 1.9.1: Time to update terrains: 492ms
Line 2721: DFTFU 1.9.1: Time to update terrains: 541ms
Line 2739: DFTFU 1.9.1: Time to update terrains: 443ms
Line 2751: DFTFU 1.9.1: Time to update terrains: 488ms
Line 2763: DFTFU 1.9.1: Time to update terrains: 529ms
Line 2775: DFTFU 1.9.1: Time to update terrains: 509ms
Line 2787: DFTFU 1.9.1: Time to update terrains: 527ms
Line 2802: DFTFU 1.9.1: Time to update terrains: 518ms
Line 2814: DFTFU 1.9.1: Time to update terrains: 508ms
Line 2829: DFTFU 1.9.1: Time to update terrains: 527ms
Line 2844: DFTFU 1.9.1: Time to update terrains: 538ms
Line 2862: DFTFU 1.9.1: Time to update terrains: 518ms
Line 2874: DFTFU 1.9.1: Time to update terrains: 492ms
Line 2886: DFTFU 1.9.1: Time to update terrains: 536ms
Line 2901: DFTFU 1.9.1: Time to update terrains: 545ms
Line 2916: DFTFU 1.9.1: Time to update terrains: 503ms
Line 2928: DFTFU 1.9.1: Time to update terrains: 487ms
Line 2940: DFTFU 1.9.1: Time to update terrains: 547ms
Line 2955: DFTFU 1.9.1: Time to update terrains: 510ms
Line 2967: DFTFU 1.9.1: Time to update terrains: 515ms
Line 2979: DFTFU 1.9.1: Time to update terrains: 540ms
Line 2994: DFTFU 1.9.1: Time to update terrains: 522ms
Line 3006: DFTFU 1.9.1: Time to update terrains: 518ms
Line 3021: DFTFU 1.9.1: Time to update terrains: 560ms
Line 3036: DFTFU 1.9.1: Time to update terrains: 535ms
Line 3048: DFTFU 1.9.1: Time to update terrains: 516ms
Line 3060: DFTFU 1.9.1: Time to update terrains: 509ms
Line 3072: DFTFU 1.9.1: Time to update terrains: 537ms
Line 3084: DFTFU 1.9.1: Time to update terrains: 526ms
Line 3099: DFTFU 1.9.1: Time to update terrains: 531ms
Line 3111: DFTFU 1.9.1: Time to update terrains: 515ms
Line 3123: DFTFU 1.9.1: Time to update terrains: 530ms
Line 3152: DFTFU 1.9.1: Time to update terrains: 756ms
Line 3164: DFTFU 1.9.1: Time to update terrains: 516ms
Line 3176: DFTFU 1.9.1: Time to update terrains: 511ms
Line 3188: DFTFU 1.9.1: Time to update terrains: 520ms
Line 3200: DFTFU 1.9.1: Time to update terrains: 521ms
Line 3212: DFTFU 1.9.1: Time to update terrains: 526ms
Line 3227: DFTFU 1.9.1: Time to update terrains: 592ms
Line 3239: DFTFU 1.9.1: Time to update terrains: 579ms
Line 3251: DFTFU 1.9.1: Time to update terrains: 499ms
Line 3263: DFTFU 1.9.1: Time to update terrains: 507ms
Line 3293: DFTFU 1.9.1: Time to update terrains: 522ms
Line 3353: DFTFU 1.9.1: Time to update terrains: 536ms
Line 3365: DFTFU 1.9.1: Time to update terrains: 517ms
Line 3377: DFTFU 1.9.1: Time to update terrains: 510ms
Line 3389: DFTFU 1.9.1: Time to update terrains: 510ms
Line 3404: DFTFU 1.9.1: Time to update terrains: 531ms
Line 3416: DFTFU 1.9.1: Time to update terrains: 502ms
Line 3428: DFTFU 1.9.1: Time to update terrains: 512ms
Line 3440: DFTFU 1.9.1: Time to update terrains: 513ms
Line 3452: DFTFU 1.9.1: Time to update terrains: 506ms
Line 3476: DFTFU 1.9.1: Time to update terrains: 517ms
Line 3488: DFTFU 1.9.1: Time to update terrains: 541ms
Line 3503: DFTFU 1.9.1: Time to update terrains: 518ms
Line 3515: DFTFU 1.9.1: Time to update terrains: 499ms
Line 3527: DFTFU 1.9.1: Time to update terrains: 514ms
Line 3539: DFTFU 1.9.1: Time to update terrains: 530ms
Line 3551: DFTFU 1.9.1: Time to update terrains: 547ms
Line 3566: DFTFU 1.9.1: Time to update terrains: 527ms
Line 3593: DFTFU 1.9.1: Time to update terrains: 501ms
Line 3605: DFTFU 1.9.1: Time to update terrains: 522ms
Line 3617: DFTFU 1.9.1: Time to update terrains: 500ms
Line 3632: DFTFU 1.9.1: Time to update terrains: 0ms
Line 3647: DFTFU 1.9.1: Time to update terrains: 0ms
Line 3662: DFTFU 1.9.1: Time to update terrains: 0ms
Line 3677: DFTFU 1.9.1: Time to update terrains: 0ms
Line 3692: DFTFU 1.9.1: Time to update terrains: 0ms
Line 3707: DFTFU 1.9.1: Time to update terrains: 0ms
Line 3722: DFTFU 1.9.1: Time to update terrains: 0ms
Line 3737: DFTFU 1.9.1: Time to update terrains: 507ms
Line 3749: DFTFU 1.9.1: Time to update terrains: 467ms
Line 3764: DFTFU 1.9.1: Time to update terrains: 494ms
Line 3814: DFTFU 1.9.1: Time to update terrains: 510ms
Line 3829: DFTFU 1.9.1: Time to update terrains: 532ms
Line 3841: DFTFU 1.9.1: Time to update terrains: 509ms
Line 3853: DFTFU 1.9.1: Time to update terrains: 535ms
Line 3865: DFTFU 1.9.1: Time to update terrains: 540ms
Line 3880: DFTFU 1.9.1: Time to update terrains: 542ms
Line 3892: DFTFU 1.9.1: Time to update terrains: 506ms
I'm testing this with a TerrainDistance of 6. I know the regular DFU download only goes up to TerrainDistance 4 but I've found 6 to be quite stable on my machine when moving at normal speed through the world without the cache.