Running a good gaming service requires good infrastructure. Our servers are located in central europe with high speed gigabig uplink.
We are running a slightly customized version of PvPGN 1.99-SVN. PvPGN is free and open source emulation of battle.net protocol. PvPGN handles all the chat channels, game lists, meele matchmaking and clan management but it does not do anything in-game so it is relatively light on resources.
Hostbots do the heavy lifting with handling in-game packet transfers which need as low latencies as possible. A fast internet connection and good geolocation is crucial to achieve sub 100ms, ideally sub 50ms latencies in game. Since most of our player base is located in Europe we base our servers in Germany.
Our bots are heavily reworked and optimized code from the ghost++ project. The original bot software was forked into two types of bots, a guard bot which accepts player commands and handles database data and slave bots which are multiple and only do the game hosting. We can scale the hostbots in number as needed by the player demand.
We also have a second set of bots which were heavily modified for professional (private) DotA leagues with safelist, voting and captain pick systems in place.
Port Forwarding System
When you play a melee ladder game or manually host a custom game you are essentially doing p2p connection with other players. For this to work, your router must expose ports 6112-6115 to the public in order for others to be able to join. By default, routers do not expose these ports. If you have no control over your router, you can't even open the ports yourself (student homes, cafes, public WiFi..). If you try to play a melee game with neither matched player having opened ports, the game immediately ends with "You have been disconnected" error.
In April 2020 we introduced an automatic port forwarding support for players who are having trouble port forwarding their router or simply can't do it due to their network setup. The system exposes player's local PC via a tunnel server to be able to host. Due to an extra hop between the matched players a slight delay is introduced in your p2p game, which means the tunnel server needs to be fast and close to both players. We host the tunnel server completely separate from the rest of the system and is dedicated to port forwarding only. As interest in classic ladder picks up in the future we are considering a multi node support to bring the tunnels closer to your location.
Downloading installers, maps and other tools usually takes a lot of bandwidth so we have these downloads on a completely seperate server and external storage providers. Client updater is mirrored on three different locations to avoid any downtime or client update problems. Each update archive is mirrored 4 times, with downloader trying each mirror until a successful download. This way we never get overwhelmed by sheer amount of concurrent downloads or upstream bandwidth limits by storage providers.
We push new DotA maps in advance to your computer so when the version is changed on lagabuse you already have the map and don't need to wait for long downloads in game lobby. We do not allow lobby map downloads for DotA since it would completely ruin the game creation.