Thoughts and Projects

At some point in the early summer of 2023, I was lucky enough for YouTube to recommend me. The video is by a Youtuber who goes by megascatterbomb and focuses content around Team Fortress 2. Now this game is what got me into a lot of gaming, and even is the precursor to be being top 50 in the world at Overwatch at one point back in 2018, but the focus of this blog is about the project that stemmed from the YouTube video. Definitely go and watch it if you have the time, but it is about a group of friends in the Aus/NZ area of the world that were fed up with cheaters in their TF2 games and decided to do something about it. They created a database they could track cheaters and suspicious people from which is already something that is awesome as it combines a passion with skill – the best way to get better at something.

For a little context, TF2 is sort of plagued by cheaters and bots, who Valve simply doesn’t dedicate the time to dealing with as they are focused on the Steam platform and other games for the most part and this is understandable for the most part. Not everyone has unlimited resources to throw solutions at. I too myself am fed up with cheaters and bots, and often have to hop from server to server to find a good game without them which makes for a poor experience.

Soon after, megascatterbomb released a new video which called for the community to aide in the quest to catch cheaters by building a community anti cheat. I joined the discord server, threw my name and experience in the applications channel and was selected as one of the developers. I was really happy to say the least, as I would get to make some pretty cool, open source software that would help the TF2 community and work with other developers.

The first month or so was really research based. Lots of digging at how best to do this in terms of tooling, where to get data, how to store it and how to detect cheaters. There was a group of about a dozen of us building all sorts of tooling out to figure out how to decode telemetry from the game, analyze it, cross reference with the Valve API and just brainstorming. Over the next 8 or so months, we were able to produce a few pieces of long standing software, most notable the client side software of the frontend and the backend that clients will install in order to get a nice fancy GUI to take actions in game on, and the Masterbase repo, which I developed in order to ingest data from. Feel free to check all of that code out in this Github organization if you are curious.

I like to think that the Masterbase is simple, but it took a lot of testing and a really solid review from Carter to get right. It is a Litestar application (which I have found a joy to work with having written my fair share of Flask and FastAPI apps) that lets users sign in through Steam in order to provision an API key, and then streams telemetry from the game (a bytestream) into a websocket, which it then sinks to a file and store in large objects in the database, as well as some metadata about the session such as who (the API key of the user and session ID of the stream), when (start and end times), and where (fake ip and map).

As of now, it is running on one of my raspberry pi’s in our beta testing campaign, where we are testing and tweaking code before we host the real deal on a custom server CHS is putting together for us, which we are all really excited about.

The team has a few ML engineers who will be combing through the data in order to train models adn build trust vectors we can use to detect, store, and automatically facilitate votekicks of in game in hopes of ruining cheater and bot hosters days.