2016 – 2020 – Open Source, Networking, Software Development
Client, ICE Adapter, Server Admin (Java, Spring, Python)
I started contributing to the Forged Alliance Forever (FAF) open-source project in December 2016. FAF is a community-made Lobby/Tournament/Map-/Mod-Vault project for the real time strategy (RTS) game Forged Alliance from 2007.
My contributions to the project span multiple areas. I’ve worked on the client using Spring and JavaFX, coded for various projects (server, discord bot, map generator), and supported server operations as a sysadmin.
The ICE-Adapter – P2P Networking
One significant area of focus has been addressing Forged Alliance’s network limitations. The game internally uses a peer to peer network architecture that tends (tended) to disconnect players from the game regularly. I dedicated a significant amount of time to developing and refining an ICE adapter for NAT traversal. The adapter leverages the Interactive Connectivity Establishment (ICE) protocol to tunnel and manage all peer-to-peer connections to improve stability.
Developing this adapter was a complex challenge due to the diversity of network architectures. To allow for debugging, I created a test server and client to simulate different game scenarios and automatically report statistics and errors back to a central location. Overall, the project spanned 2.5 years and multiple iterations due to various technical constraints of the technologies used.
Since its deployment in 2019, it has established more than 100M peer-to-peer connections and connected more than 50.000 players.
An in-detail description of the ice adapter and the project can be found on the FAForever Forums: