I have written a test server and client for debugging the adapter and after a few months of runnikg tests we finally got it working. Everything seems to be fine, it only slows down the game on slower connections. This is due to WebRTC enforcing SRTP (if I remember correctly) with DTLS 1.2 encryption. This get's an issue as FA is sending between 15-45 bytes per packet (on average) therefore with DTLS 1.2 (27 byte overhead) effectively doubling the required bandwidth.
I therefore rewrote the adaptee using a different library, in this case ice4j using Java. The adapter can be found in the FAForever/java-ice-adapter repository. Currently it looks extremly promising, there are just some problems with the python server/client.
There is also a java-ice-adapter branch in the java client using this adapter. Running two different connectivity solutions at the same time as been decided to be to complicated.
Both clients do already support ICE in a different build when connecting to a server supporting ice (e. g. test.faforever.com).
If you are interested in contributing to FAF please tell me, there are a lot of different sub projects in FAF, from reverse engineering over UID (C), all the java projects (java client (downlords client), java server, api), python client and server, python replay server to game coding (lua) and the website, discord bot, unit db and faf tools (all JS). Also the galactic war (web) frontend may need help soon.Statistics: Posted by Geosearchef — 06 Nov 2018, 14:55
]]>