Just thought I'd give another quick update on what I've been working on. Recently I've added the ability to detect unknown objects far off and once they are closer you can identify what they actually are. This ties in with my plan to have sensor stacking penalties for ships on the same grid. Now if you have 3 ships on the same grid the sensor profile will be 3x as large but you still need to be as close as you would if it was just the one ship to identify it. The stacking effects of sensor signatures are in and working too now.
As shown i've got place holder '?' when its an unknown object I'll add details to the GUI when you select an unknown signature so it will show the signature size but will only show it as one signature. e.g. 300 points signature (which could be one 300 point ship or 3 x 100 point ships, etc)
What I want to do next is to determine how sensor strengths will work. Currently it is just adding up all the sensor strengths that reach the specific grid. It will have a stacking penalty for the sensor strengths but not sure exactly how I'm going to calculate this.
Ultimately how I want sensor strength to work is for you to have stacking penalties effect each extra scan that reaches the grid however these to be determined by the angle of the scan compared to the last one. So first you would check for the highest scan strength and use that as the first and main scan resolution. Next if the next highest strength is 180 degrees from the highest one you get a maximum strength of 75%, however if you are only 90 degrees from the highest scan you get say 50% strength only and if your 10 degrees you only get 5% of the strength. This would simulate sensor triangulation so the more surrounded the target is the stronger the sensor strength on it.
This hard part of doing it this way is that all sensor sources and the angle they are from will need to be saved for all grids and all empires\teams that have some sensor strength, this could very quickly add up in RAM usage :( as currently I'm saving the sensor strength for each grid for each empire so if I have 8 empires each grid object has 8 floats stored to measure current sensor strength.
If I have to measure and save all ships and strengths for each grid with the current method memory usage would just get out of control. I think be best way is going to be by calculating the strength each time a change happens by finding all ships within possible sensor range (Max scan range) and cycle through them to calculate actual sensor strength. The benefit of this way is its also easier to add alternate sensor types which I am planning for too (EM Signatures, Gravimetric, etc). I don't want more than 3 at the moment otherwise it just adds to much variation and choice doesn't matter as its more luck.
Redoing the sensor strength calculations shouldn't be to hard hopefully just a day or 2, but adding the direction penalties is going to be a bit harder by sorting and calculating the diminishing returns for it but still getting the highest possible combination of all strengths correctly will take some time.