I’ve been contributing to the Forged Alliance Forever open-source project since December 2016. FAF is a community-made Lobby/Tournament/Map-/Mod-Vault project for the real time strategy (RTS) game Forged Alliance from 2007.
There, I’ve spent some time on the client using Spring and JavaFX. Additionally, I contributed code on multiple different projects, including the server, discord bot and map generator. I also helped out as a sysadmin monitoring and managing the server’s operation.
The game internally uses a peer to peer network architecture that tends (tended) to disconnect players from the game regularly. Due to this I’ve also invested quite some time into fixing/writing an ICE adapter for NAT traversal which aims at tunneling all game connections through the local adapter and using the Interactive Connectivity Establishment (RFC 5245, candidate discovery, STUN+TURN) protocol for connecting to other players.
Developement of this adapter isn’t trivial as everyone’s network architecture is different making debugging pretty tricky. To mitigate this problem, I developed a test server and client, that simulate a running game and can execute different scenarios. All gathered data, statistics and errors are automatically reported back to a central server. Overall developement took a total of 2.5 years and 5 rewrites of the adapter due to high library CPU load when using a node based solution, high traffic due to forced encryption when using WebRTC and additional challenges. (including me somehow loosing my first take on implementing an adapter which was in a pushed git repository located inside my cloud folder, still trying to figure out how that happened)
It was deployed and is operating since 2019.
An in-detail description of the ice adapter and the project can be found on the FAForever Forums: https://forum.faforever.com/topic/3288/but-what-the-heck-is-the-ice-adapter