DSPOptimizations
Adds various optimizations to DSP, such as lower resolution dyson shells. WIP
| Date uploaded | 4 years ago |
| Version | 1.0.3 |
| Download link | Selsion-DSPOptimizations-1.0.3.zip |
| Downloads | 474 |
| Dependency string | Selsion-DSPOptimizations-1.0.3 |
This mod requires the following mods to function
README
DSPOptimizations Mod
This mod adds optimizations to DSP. Few optimizations are available currently, but more will be added in the future.
Caution: Since this mod has just been released and few others have tested it, save your games under new filenames rather than overwriting the old ones. The save functionality has been thoroughly tested, and this mod only touches save data for dyson shells. The rest of the mod's data is stored in another file with the extension .moddsv. The mod should be able to recover from most possible issues, however it's hard to guarantee compatibility with other mods.
Features
Low Resolution Shells

Dyson shells can be made with much fewer vertices than in the vanilla game. This can greatly reduce RAM and save file bloat, as well as help your framerate when a sphere is being rendered. In the dyson sphere editor, when a layer is selected you should see a box appear in the bottom-left side of your screen. This is for configuring the resolution of newly made shells in the selected layer. The button will regenerate all of the shells in the current layer with the given resolution.
The resolution is configured by specifying a sphere radius. Shell geometry will be generated such that the resolution of the geometry will match that of spheres of this radius. For example, if you have a 200km radius sphere layer and set the shell resolution radius of the layer to 4km, then newly made shells will have as few vertices as if you were making a 4km sphere layer. Since the number of vertices in a shell is proportional to its surface area which is proportional to the square of the radius, in this example setting the shell resolution radius to 4km reduces the number of vertices by a factor of 2500.
To aid your choice in setting the shell resolution radius, the expected number of vertices after regenerating the entire layer with the given radius is shown. The memory and save file cost for your shells will be proportional to the vertex count. The current best estimates for these costs are 84 bytes of memory and 42 bytes of save file space per vertex. Setting the value to anything under 10km tends to work well. The minimum value of 1m will result in only 1 vertex per shell, which will hide the shells and contribute almost nothing to RAM and save file costs.
Notes on performance:
- when a shell is first created, if it's made with a lower resolution than default then the mod will run a light-weight version of the vanilla mesh generation code to count the proper number of cell points. This can be slow for sphere layers with very high radii, such as 230km. Copying an entire sphere layer (with SphereEditorTools) at a radius of 238.8km when it is fully covered in shells can take just under 2 minutes, since there are around 130 million vertices to count. Normal-sized sphere layers or individual shell pieces will not take nearly as long, however. This will soon be alleviated with multithreading, which should reduce the generation time by a factor of around 8 to 24, depending on your CPU
- spheres with a huge number of very tiny shells (e.g. 5000) might hurt your framerate when being rendered because of the high volume of draw calls. This can be fixed by regenerating with a resolution radius of 1m, which causes the draw calls to be skipped.
- making geodesic frames rather than graticule frames might speed up node, frame, and shell creation, as well as shell regeneration
Other
- Shadows can be disabled in the config
Installation Note
This mod depends on DSPModSave. Make sure that you have the version under the CommonAPI name, rather than the old version released by crecheng. The old version has bugs, and may cause problems. The old version of the mod is marked as deprecated.
Compatibility
This mod is most likely not compatible with the Nebula Mod, however compatibility will be added in the future.
Bug Reports
If you encounter any bugs or issues, then please contact me either on discord at Selsion#0769, or by raising an issue on the mod github page.
Changelog
- v1.0.3
- moved the shell resolution panel up to fit on the screen when using a layout height of 900
- v1.0.2
- initial release on Thunderstore
- fixed integer overflow bug when filling shell vertices with sails when regenerating
- added more debug logging and error checking
- v1.0.1
- fixed issue where when first loading a save with low res shells when the .moddsv file exists from other mods, the low res shells import code isn't called. using the new version of DSPModSave should also fix the issue
- v1.0.0
- initial pre-release on github
- implemented low resolution shells
- added a config option to disable shadows
Attributions
Icon(s) made by Freepik from www.flaticon.com