Connectivity Wars Episode IV - A new hope
-
A long time ago in a galaxy of endless connectivity struggles
It is a dark time for the
FAForever project. Although the attacks
on the main server have been circumvented,
DDoS troops have driven the
DevOps forces from their hidden
mains server and pursued them across
the coturn galaxy.Evading the dreaded bot network,
a group of developers led by Brutus5000
have established a new secret
project aiming to the remote ice world
of Cloudflare.Entering the stage: The FAF pioneer.
The FAF pioneer is a completely new approach on the ice adapter.
We ditched our existing java implementation based on the ice4j library as we found several bugs we were unable to resolve. Instead we jumped on the Golang train and use the pion WebRTC library which seems in a much better state.Generally speaking, WebRTC is a set of protocols most audio and video conferencing work with. The existing ICE protocol we were using is also used by WebRTC, but WebRTC goes beyond that and tries to solve other problems. Relevent for us in particular are reconnect features, packet completeness guarantees and stable packet order.
Our project reached a huge milestone 2 days ago with a first MVP release that will be the basis for future testing. Unfortunately testing is only possible with special FAF clients, so it is not out in the open for testing. Since it is incompatible with the existing ice adapter, there will be a need for the big bang migration.
The biggest goal is eventually to be able to use Cloudflare as a low-latency and low-cust TURN server battery. Unfortunately the current ice adapter bugs prevent us from using Cloudflare entirely.
If you are interested, check out the code at https://github.com/FAForever/faf-pioneer