For quite a while we have been working on a new ice adapter implementation (server side, client side and the adapter itself which is now called faf-pioneer).
It has a few pros and cons compared to the old ice-adapter solution:
Pros
- Auto-update in the FAF client. So far we needed to rollout a new client to make a version change. Updates are now possible without a client update, just by releasing a new version on Github.
- It no longer requires a lobby server for ICE candidate exchange. We can run updates on the lobby server or the FAF client connection (or the client itself) might crash and it should still be able to reconnect.
- It supports Cloudflare TURN services, which should make connections more stable and hopefully less expensive than on our current provider Xirsys.
- (Unless you opt out in client settings) You share your connection logs centrally with FAF servers, so we have the accumulated logs of all players of a single game to debug issues.
Cons
- No more debug connection window. The builtin UI is vanished and we also have no alternative WebUI so far. A reimplementation would take too much effort right now.
- Probably more bandwidth required. We use the WebRTC protocol now, which does a lot of work for us, but it enforces encryption. According to the old ice adapter developer this idea was dismissed in 2017 because it required more bandwith (in worst case doubling it). But now its 2025 and even mobile connections offer more bandwith. And better slow connectivity than no connectivity I guess.
So what is the state?
It is now in a state that games are stable on 1v1 and we need to get more people on board to broaden the test experience.
There is a big problem however for both testing an final release. It's not backwards compatible. We deploy a new FAF client and people on that version can no longer join old client version games or vice versa. So testing only works if all players use the modified client version. And for that time they should probably use password protected games, and TMM should be avoided completely.
So once we go live, there is no turning back really. If it makes problem for some players, they cannot downgrade. They can't play anymore until the issue is fixed.
I know that this is undesirable, but we evaluated options and there basically no way to offer a fallback strategy and/or backwards compatibility.
.
So before I do anything big, I am asking you, the community, for feedback. How much time do we want to spend on testing? Who is willing to test? How much risk do we want to take?