Great update. Nice to hear such enthusiasm from the dev team.
As to server side collision detection. I voiced my opinion back on update 68.
The advantage server side collision detection has over sanity checks is that it blocks players from cheating ... when they are all by themselves.
Another advantage is that they could calculate visibility on the server and thus lower network traffic.
If I-Novae thinks that's a big problem ... or that implemeting procgen and hitboxes of all physical objects on the server is the best solution. Their choice.
All the client has to transmit for a sanity check of collision detection is that a player near their vicinity has collided with a surface (or structure ... or tree ...) at Tick Whatever and their new position whatever and vector whatever. Including when they themselves collide.
Depending on the distance to the player the collision will happen at different times/positions due to how the procgen works.
The server then has enough information to determine if the information from the player that has collided is correct. If it diverges too much the player is kicked from the server.
There's a battle near the surface. People bumb into the surface, trees, the nearby base and eachother every few minutes.
As the server does not know about any of this the client and server physics simulation desynch at that point. The client tells the server though that this was due to a collision and gives the server its new position and vector.
The server trusts the player and applies this information and sends it to the other players.
Other players near the collided player also registered the collision and send it to the server. They disregard all ticks of the server telling the other players that the collided player actually phased trough the planet. A fem miliseconds later they receive a tick from the server that says "yes I heard he collided and adjusted my simulation" from the server. Then the other players client proceeds to trust the server again.
The server later checks if the collision that happened was plausible by comparing the data of the collided player with the data of other players that "seen" the collsion. If they don't divert too much the player has not cheated. If they diverted and the player boosted his speed, position or did or did not actually collide with anything the player is kicked.
It's a tradeoff. Believe the clients when it comes to collisions and you don't need to do all the stuff necesary for it on the server. Hitboxes and the big one, procedural generation.
It diverges from the "all authorative" phylosophy. But only if a collision happens. Like probably not even 0.1% of total playtime.
To hinder people from using this to cheat. Like "Whups I just collided with nothing and was able to break hard this way" or "whups I just phased trough the floor" you use sanity checks.
Clients have to transmit some additional data when collisions happen near them. The client/server relationship also changes a little. Clients may need to trust their data first when it comes to position after collision of other players in order to mitigate "phasing trough and then setting back" as there's is quite some delay until the server receives the corrected collision data from the player that collided, applies it to its simulation and then sends it to the players.
So both not just trivial to implement.