Construct 2 got a really nice documentation on fundamentals of how Multiplayer games works and what kind of technical difficulties we need to solve while developing an online multiplayer game which is already solved by C2 Multiplayer engine but since it is about C2, I wonder if AGK2 does helps to solve any of those technical difficulties or I need to make the whole thing from scratch.
So basically, what the C2 documentation is saying I have two options to choose from. Use a dedicated server to host a game or use something called "peer to peer" connection to let a players host the game.
Peer to Peer is exactly what I need but it lead to the first technical difficulty:
Peer to Peer connection requires a "signaling server" which would be sending a signal to the internet to let players know where to connect based on where are they, what game they are playing, what version of the game..etc, and once the player connected to the signaling server, the server would sort the players in to groups (in my case group of 2 people), and assign a player as the host, and let them play without any server get involved anymore.
The documentation does no get in to the details how to setup a signaling server, since Scirra, does offer a signaling server for people using C2.
Does TGC offers such a signaling server to be used with AGK2 so we can make a peer to peer connection?
And here is a list of other technical difficulties that C2 documentation does mention but not get in to details how to solve them since the C2 engine solves the problem for us:
NAT traversal, to connect through common home and office router setups
UDP-based transmission for minimal latency and to eliminate head-of-line blocking
Mitigation against latency, packet delay variation (PDV), and packet loss
Seamless adaption to changing network conditions
Automatic bandwidth controls to reduce redundant data transmission
Built-in local input prediction to keep controls responsive
Support for lag compensation when hit testing
Interpolation and extrapolation modes to compensate for packet loss while maintaining smooth in-game motion
Binary data transmission with control over specific datatypes to minimise bandwidth
To be honest this list of technical challenges of making an online multiplayer game sounds a bit scary since I don't know anything about it. Does AGK2 helps with any of these?
Thanks.