I'm not sure if this has been suggested before but couldn't starmade become more optimized if ships where stored using the RLE compression method?
e.g. with [H] representing hull, representing shields and [A] representing amcs. A cross section of hull like this:
[H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H]
[H][A][A][A][A][A][A][A][A][A]
[H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H]
Would be stored as:
20[H]
1[H],9,9
20[H]
This is much less space than storing data about the position of each induvidual block and while this form of compression is designed for 2D bitmaps, it could be addapted to work in 3 dimensions. I also realise that having a whole extra value for storing the number of blocks -even if their is only 1- would make small ships far less efficient, but this loss would ba barely noticable compared to the massive increase in the efficiency of large ships. That 500 block long amc array would be stored in just a few values instead of 500. Thoughts?
e.g. with [H] representing hull,
[H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H]
[H]
[H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H]
Would be stored as:
20[H]
1[H],9
20[H]
This is much less space than storing data about the position of each induvidual block and while this form of compression is designed for 2D bitmaps, it could be addapted to work in 3 dimensions. I also realise that having a whole extra value for storing the number of blocks -even if their is only 1- would make small ships far less efficient, but this loss would ba barely noticable compared to the massive increase in the efficiency of large ships. That 500 block long amc array would be stored in just a few values instead of 500. Thoughts?