Godot Version
v4.2.1.stable.mono.official
Question
I have spent a lot of time playing around with different connection methods (NAT Traversal, UPNP, LAN) for a real-time P2P game. Even when using a combination of these, it seems like there are some routers which will simply shut out any connections unless the end user has the ability to forward ports and modify their router settings.
As far as I can tell, the only way to guarantee the connection without any setup for the end user is by utilizing a relay server.
My project currently utilizes the MultiplayerAPI using both rpc and MultiplayerSync and MultiplayerSpawn nodes. From the looks of things, The only way to reliably replicate these messages via a relay server would be to have a headless Godot instance that is replicating the scene tree in order to interpret and broadcast these messages to other connected clients.
Is there a way to create a simpler version of a relay server that only interprets & broadcasts incoming packets, including those received from rpc & networking nodes, without having to replicate the entire scene tree as well? It seems like it would create a lot of overhead on the relay server, which I would like to avoid in the case that I end up paying for a relay server service instead of relying on a publisher specific platform.
I am open to wild ideas & suggestions. Also if I am wrong about the amount of overhead in replicating the scene tree, please let me know.
Thanks!