I realize that the title may be a bit confusing, but I just didn’t know how else to phrase it.
Here is the situation: I am developing a multiplayer game where every player controls a set of objects. These objects can collide with one another and are not supposed to intersect (basically like ordinary physics with a rigidbody). They can, however, intersect with and pass through objects that are being controlled by other players.
To put it in another way: Player A controls N objects that are labeled “A-Object1, A-Object2… A-ObjectN” and player B controls a different set of M objects that are labeled “B-Object1, B-Object2… B-ObjectM”. A-Objects treat other A-Objects like regular colliders (e.g. floor, walls, etc.), but treat B-Objects like thin air and vice versa.
In a real environment, this scenario would NOT be limited to just two players, but rather a theoretically infinite amount of players. On top of that, the server will be authoritative, meaning that it will have the last word regarding collisions and/or pass-throughs.
How would one go about implementing such a functionality?