Masochistic mode? I'm not sure we really want to encourage that type of play!
About the collision detection stuff, I was thinking that having the coordinate system actually centered on the player would certainly help when positioning the player, and make possible collisions easier to compute & the player's ride smoother overall.
But given the 2 choices available,
Point 1: sure, I like the sound of 10 picometre granularity!
And as far as 2 goes: I've got the feeling if we had a way to 'walk' between stars in Oolite, way too many of the board members would take the challenge and do just that
Just a thought: if we make the ooniverse coarser than 10 picometres - say .001 metres instead of 1 E-11 metres - then the volume of space we can move about without witchjumping - or changing buckets! - grows from a cube about 50 km across to a cube about 30 light minutes across, which with Oolite scales is probably already halfway to another solar system...
Anyway, I do find the many buckets theory a fascinating concept. Move over multiverse!
No, it really wouldn’t make it any easier to do that, and it would use more memory and processing time because octree data is currently generated once, shared between all instances of a ship, and cached.
Hmm, I don't follow. Ok, we don't move the origin to the middle of the player's ship - it would simplify drawing objects in the player's vicinity, but complicate other calculations, which I assume we don't want to do - but I'm not too sure about the whole of your assessment!
Assuming that a hypothetical low-res voxel representation of the ship is half as accurate of present day's Oolite, and also assuming that the hi-res one is twice as accurate as what we have now, a ship that would need 8KiB worth of voxels would then take 64KiB for the high res, and 1KiB for the low res.
Every time you jump to a new system, all ships would load the low-res one, and the hi-res octree would only be loaded in memory for ships within let's say a cube 5x scanner range centered on the player's ship, giving us a nice 2.5x scanner range minimum distance between the coarser collision detection and the fine grained one.
Most octree generating code, including the one Oolite uses - correct me if I'm wrong - give you the lo-res representation 'for free' on the way of getting to the hi-res one. There is an overhead, true: writing the intermediate data to the cache takes some time, and the cache data for all octrees would be bigger than otherwise. However the low res octree/voxel data is 1/64th - aka less than 1.6% - of the high res one.
In the very 'worse' situation i.e. when all ships & ship models are within the given proximity volume we'd get 101.6% memory usage, and 100% processing time, not really that much worse off!
However, if - in a busy system - the player gets near enough to only 80% of all types of ships in systems, and let's say the most crowded it gets we're only near enough to 40% of all ships.
The resulting memory & processor consumption looks pretty nice to me:
Octrees memory usage - on average 81.6% of the fully high res one.
Per-frame processing time - less than 40.1% of the high res octree version, right? Dealing with 64 times smaller octrees/voxel data takes so much less time!
Anyway, just a few of the possible choices to keep us busy between now and 2.0, I suspect!