Month: November 2024

Musings of Operating a Game Server (DoD:s) in 2024

As the operator of the TFT House of Love game server, I’d like to share some highlights and thoughts.

The original Day of Defeat game was released back in 2003, and got the Souce upgrade treatment in 2005. Since the Source release, there have been updates, namely the additional detonation objective mode seen in dod_colmar and dod_jagd, but aside from that, the game hasn’t seen much of an refresh or signficant update from Valve.

There was of course that Orange Box update that broke many servers back in 2009.

This bug wasn’t tied to the game itself, but to SourceMod, a popular server management tool that many admins relied on. Many server admins struggled to keep their servers online, but none were as reactive. Our regular players reported the issue, and to see the bug in action I joined the game to replicate and it seemed firing rocket grenades caused the game server to crash.

I immediately released a workaround disabling the rocket grenades and instead gave hand grenades in the inventory, accepting that while it does impact the role of the rifleman in the game, at least it keeps the server alive for players to play. Whilst the SourceMod team worked to resolve the issue, the TFT server was one of very few DoD:s servers opertional, and all player slots were full. This to date, it was the only real crisis I’ve had as a server admin!

srcds:

The DoD:s server itself is srcds, which in summary loops the following:

  • Get player positions
  • Accept player inputs (move, fire, etc)
  • Applies the input against the map, players and it’s rules
  • Relays the outcome to other players

How often this cycle runs (times per second) is tick rate; the higher the tick rate the more often the simulation is run and reflected to players. This is an expensive operation for the server. Players have the option to limit how many operations/sec are processed client side (cl_cmdrate / cl_updaterate) but overall the server rules. I’m aware that “hacks” were in place in increase the tickrate and “FPS” on the server side. There was a lot of talk about the HPET (High Precision Event Timer) BIOS enablement, and if running a server, running Windows the Media Player in the background “gave a higher FPS” on the server side.

To counter for ping (latency) differences between server and player, interpolation and prediction is used – both as a player sending as well as the receiving player. These prediction are typically derived from player’s past inputs to give an educated guess that the server can process in each tick.

Game servers typically ran at 33 or 66 ticks, with the option of 100 tick. 101 tick servers were advertised – just to stay that little bit ahead. Too fast of a tick server causes the game server engine to glitch. There is now a soft clamp on 66 tick – which is stable, and within the game play design. Most severs run this now as is the default.

Windows or Linux?

The game server is cross platform, and in the earlier days I recognised the Windows builds were more stable and performant, and, from my perspective, more straightforward to tune. However, there is the cost of the Windows licence to take in to account. The TFT server itself has finally found it’s home running on Ubuntu Linux. During it’s life, it’s been co-hosted on a Linux server, bare metal Windows, Windows on Hyper-V, Linux on Hyper-V and finally finding it’s place on a Linux VM hosted server on the Fasthosts VPS platform in the UK.

As I’ve become a lot more comfortable with Linux (and to avoid licensing costs) the server now runs on Ubuntu 24. It runs atop the much appraised LinuxGSM to assist with updates, although DoDs server updates themselves are extremely rare.

Addons

Like most game servers, the TFT server runs MetaMod:Source and SourceMod.

As DoD:s isn’t as popular now we try to offer something different with gameplay. Bots are always playing thanks to RCBOT2. A TFT fork is maintained to focus on DOD:s and running on Linux. There are bug fixes that avoid crashes that occurred in the upstream version.

HLStatsX was a popular stats platform. Whilst a fork went commerical with [evenutally] GameMe, it appears to have gone defunct. The open source version is still available and whilst it hasn’t had too much attention, it is great for players to track themselves against others. The TFT fork contains fixes, and my rewrite is in progress to port away from the horrid PHP and Perl implementation.

MetaMod and SourceMod are still in active development and new/improved plugins are available to enhance the game server. TFT uses a modified gore plugin to give better blood splatters and explosions, uses the parachute and medic plugins, and has custom theme plugins for halloween and Christmas time.

Conclusion

Operating a DoD:s server in 2024 is both enjoyable and challenging. Whilst the game isn’t as popular as it was, the community is still alive. The TFT server is labelled as fun, has extra ammo, and had a good presence – especially on a Thursday. Hope to see you there!

Join us! steam://connect/77.68.101.182

And stats: https://tft.nervaware.co.uk/stats/hlstats.php