ValveSoftware / Source-1-Games

Source 1 based games such as TF2 and Counter-Strike: Source
637 stars 74 forks source link

[TF2] Open letter to Valve regarding the maintenance of Team Fortress 2 #6041

Closed megascatterbomb closed 4 months ago

megascatterbomb commented 4 months ago

FixTF2

On May 26th, the Team Fortress 2 community kickstarted a social media campaign to vocalize their frustrations with the apparent lack of action taken to fix the bot crisis. As a part of this campaign, I've decided to post my thoughts in a manner less concerned with drumming up publicity and more focused on the matter at hand.

This issue serves several purposes:

The demands of the community are simply to provide basic maintenance for the game.

Maintaining Valve Anti-Cheat

It is understood that there is no perfect solution to cheating. It is also understood that, given Valve's limited internal resources, there is a natural avoidance of "treadmill work" that would tie up those resources in menial tasks.

The community is no longer accepting of these excuses.

Through a considerable amount of research, including discussions with cheat developers, I have come to the understanding that Valve Anti-Cheat (VAC) is sufficient to detect much of the software used for bots and cheats; all that is required is some basic maintenance. These quotes from a former bot software contributor demonstrate the total apathy they have towards VAC:

honestly \ was pretty crude, there were no precautions against vac at all, they weren't needed

we just renamed the binary, attached gdb to hl2_linux, and ran dlopen on the library so the process loads it

\ had a function with a on attach attribute that runs on dlopen. most code just replaced virtual tables, sometimes we directly patched bytecode of the games loaded files when neccessary

honestly, it was baffling how lttle vac does

When asked "What would it take to detect \?", they responded:

One of the simplest ways would be to simply scan tf2s memory for a \-unique signature, said signature not being in vac itself but retrieved from a server for extra obscurity, optionally even RSA encrypted

This indicates to me that even basic maintenance of VAC would go a long way in ensuring the continued longevity of the game.

Several community members have developed their own anticheats for community servers, the effectiveness of which I can attest to. This issue deserves particular attention as it documents how some of those detection methods could be utilized within official servers. Some proposed detection methods may not be robust enough to trigger a VAC ban, but even a one-time kick upon detection would devastate cheaters with no lasting impact on false-positives.

At this time, many cheats are still running exclusively on the 32-bit client. Continuous maintenance is required to ensure that the 64-bit versions of these cheats are also dealt with when they arrive. The big question is: How can Valve continuously maintain VAC without losing resources to the treadmill problem?

Communication

A significant portion of the community's frustration comes from the total lack of communication. In the past, when Valve was actively maintaining their titles, this approach worked as the playerbase knew that a major update would address many of the teething issues present in the game, and major exploits would be patched within a week or two.

This is no longer the case. Patches take months to arrive, if they do at all. In order to retain confidence in Valve's ability to maintain their titles (especially their newer ones!), the community needs to know that matters are being addressed in a reasonable timeframe (i.e. not years).

The Solution

Valve has stumbled upon an effective solution to both of these problems: contractors. The example set by Joshie's involvement with Team Fortress 2 has been a breath of fresh air compared to the usual radio silence. It has been extremely useful to report and discuss issues with someone who can address them via patches or by escalating the issue further. This approach also prevents Valve's own developers from being unnecessarily tied up in the source spaghetti monster.

This model of communication has proven effective for larger overhauls, namely the 64-bit update earlier this year and the test branches which supported its development. Obviously anticheat is a more sensitive matter, but hiring contractors to work on anticheat and allowing them to communicate where appropriate would go a long way in easing the community's concerns. A more open approach to communication would also give those who have developed third party plugins an opportunity to pass on their knowledge, giving those contractors a much needed head start.

Valve has already attempted such an approach with the Community Fixes tag on the Steam Workshop, however none of these have been implemented into the game thus far. Presumably, the work required to implement these falls into the same broad category of menial tasks that Valve's developers typically avoid. The approach suggested above would provide Team Fortress 2 with the necessary resources to fulfill the original intent of the community fixes.

I want to stress that the major focus right now must be on anticheat, however, any approach that satisfactorily tackles that problem would be able to address countless other minor issues with the game long-term. If successful, this would allow the game to thrive indefinitely, and Valve's other titles can follow suit when their time comes. Team Fortress 2 is the perfect candidate for such an experiment, and I implore Valve to give it a go. What have you got to lose?

External Links

These are links related to the #FixTF2 movement:

Below is a table of open issues on this repo relating to specific bugs, exploits, or quality-of-life suggestions that may help mitigate the current crisis if addressed. This is not intended to be an exhaustive list.

GitHub Issue # Link
4664 [TF2] Anti Cheat requests
5092 [TF2] [Feature request] Make it so that specators can be kicked.
5187 [TF2] Can't kick certain player(s) in casual that haven't picked class
5295 [TF2] [Feature Request] Block feature for matchmaking so players can avoid games with blocked players
3289 [TF2] F2P players blocked from using voice commands in matchmaking
3850 [TF2] [Exploit] Infinite Reconnect Spam - Anti-Votekick
3911 [TF2] [exploit] Pre-Existing VAC Bans can be bypassed with console commands.
3925 [TF2] A party will always have the majority of votes in a kick vote. This needs to be addressed
4002 [TF2][Feature Request] Votes should complete as soon as the outcome is guaranteed
4091 [TF2] [Feature Request] Allow players to change their vote for ~5-8 seconds after the vote is called
4169 [TF2] [Feature Request] Add options to only mute strangers, and mute the enemy team
4177 [TF2] Allow F2P players to communicate on official servers
4384 [TF2] Add a timer to votekick cooldown
4538 Does anyone know how does some people use 0 lerp? I though it was removed years ago.
4715 (TF2) Infinite reuse of Limited-use Noisemakers
2373 [TF2] [Bug] Matchmaking Queue Instantly Closing
2820 [TF2] Queue gets constantly cancelled without any player input
2821 [TF2] Matchmaking assumes players lost connection when disconnecting by command
3551 [TF2] MvM - Players being kicked can bypass the kick, rejoin whenever they want, and force a new round to start after coming back from the kick
3711 [TF2] Censored names hides player team color
4034 [TF2] [Feature Request] Add Steam's filter system to global messages / item names and descriptions
4061 [TF2] Various space/newline characters are exploitable via in-game chat
4133 [[TF2 - Players are able to reset Competitive mode countdown via 'retry' command](https://github.com/ValveSoftware/Source-1-Games/issues/4133)
4387 [TF2] Revert rate limit for the command tf_max_voice_speak_delay
4512 [TF2] The "Mute Player" dialog doesn't update in real time
kisak-valve commented 4 months ago

Hello @megascatterbomb, this issue is already being tracked at #3477. Closing as a duplicate.

StaralDev commented 4 months ago

awesome sauce

mrtophat0829 commented 4 months ago

Is anyone at Valve even working on TF2?

UnixTMDev commented 4 months ago

doubt it

nijahplays commented 4 months ago

+1

JaffaCakeRGB commented 4 months ago

@kisak-valve Rude

randomperson3764 commented 4 months ago

Hello @megascatterbomb, this issue is already being tracked at #3477. Closing as a duplicate.

you could at least use a good excuse to ignore your problems.

leadscales commented 4 months ago

based @kisak-valve. stay mad @megascatterbomb πŸ˜‚πŸ˜‚πŸ˜‚

image

slender100 commented 4 months ago

Hello @megascatterbomb, this issue is already being tracked at #3477. Closing as a duplicate.

$0.00

Kacey2k commented 4 months ago

Hello @megascatterbomb, this issue is already being tracked at #3477. Closing as a duplicate.

This issue seems more focused on addressing the maintenance and longevity of the game + establishing clear communication with the community about shared concern about those matters.

I believe this thread reserves the right to remain open until properly addressed.

Also, to the people tagging Kisak, understand they only manage the issues here, they are not a developer of the game.

Hammy0w0 commented 4 months ago

Is anyone at Valve even working on TF2?

Meme comments subtract from the serious nature this thread is about. This is one of the best shots #FixTF2 has.

Koi-TF2 commented 4 months ago

To all of the upset people in this thread, please note that this GitHub repo operates with duplicate issues in mind, and this is why the issue was closed. Kisak has nothing against this particular issue, he is simply doing his job by maintaining the issue board and closing duplicate issues. I also support this issue. I don't make the rules. Please do not be upset with Kisak in particular though. Kisak maintains the issues very well! Instead, post comments on the original issue which Kisak linked to, which was the first post from 2020

@megascatterbomb post this content inside of that issue, please <3

leadscales commented 4 months ago

To all of the upset people in this thread, please note that this GitHub repo operates with duplicate issues in mind, and this is why the issue was closed. Kisak has nothing against this particular issue, he is simply doing his job by maintaining the issue board and closing duplicate issues. I also support this issue. I don't make the rules. Please do not be upset with Kisak in particular though. Kisak maintains the issues very well! Instead, post comments on the original issue which Kisak linked to, which was the first post from 2020

@megascatterbomb post this content inside of that issue, please <3

quit being reasonable! that's not welcome within the tf2 community.

Wuzzle commented 4 months ago

I would like to point out that Valve themselves admitted to using TF2 as a testing ground for features in other games a long time ago.

So I have to ask, why you would abandon that? TF2 was perfect for testing these kinds of things out and I see no reason why testing out new anti-cheat measures would be anything less than a great idea, especially given the unique nature of the game.

Also, we're trying to get valve to #FixTF2, please be civil. Being mean to the person who manages github issues won't get us anywhere. It's on par with yelling at the cashier at McDonalds.

L34NDR0S commented 4 months ago

KEEP CRYING l0l

randomperson3764 commented 4 months ago

To all of the upset people in this thread, please note that this GitHub repo operates with duplicate issues in mind, and this is why the issue was closed. Kisak has nothing against this particular issue, he is simply doing his job by maintaining the issue board and closing duplicate issues. I also support this issue. I don't make the rules. Please do not be upset with Kisak in particular though. Kisak maintains the issues very well! Instead, post comments on the original issue which Kisak linked to, which was the first post from 2020

@megascatterbomb post this content inside of that issue, please <3

yeah, i get that it's not kisak's fault, it's valve's fault, but i'm pretty sure it's not a duplicate. atleast it doesn't look like one, then again, what do i know? i'm exactly an expert with stuff life this.

sylveonsylvia commented 4 months ago

spamming a git issue tracker is not how you get people to listen to you

leadscales commented 4 months ago

To all of the upset people in this thread, please note that this GitHub repo operates with duplicate issues in mind, and this is why the issue was closed. Kisak has nothing against this particular issue, he is simply doing his job by maintaining the issue board and closing duplicate issues. I also support this issue. I don't make the rules. Please do not be upset with Kisak in particular though. Kisak maintains the issues very well! Instead, post comments on the original issue which Kisak linked to, which was the first post from 2020 @megascatterbomb post this content inside of that issue, please <3

yeah, i get that it's not kisak's fault, it's valve's fault, but i'm pretty sure it's not a duplicate. atleast it doesn't look like one, then again, what do i know? i'm exactly an expert with stuff life this.

it covers an identical topic that's already open, therefore its a duplicate. quite simple stuff.

Kacey2k commented 4 months ago

To all of the upset people in this thread, please note that this GitHub repo operates with duplicate issues in mind, and this is why the issue was closed. Kisak has nothing against this particular issue, he is simply doing his job by maintaining the issue board and closing duplicate issues. I also support this issue. I don't make the rules. Please do not be upset with Kisak in particular though. Kisak maintains the issues very well! Instead, post comments on the original issue which Kisak linked to, which was the first post from 2020 @megascatterbomb post this content inside of that issue, please <3

yeah, i get that it's not kisak's fault, it's valve's fault, but i'm pretty sure it's not a duplicate. atleast it doesn't look like one, then again, what do i know? i'm exactly an expert with stuff life this.

it covers an identical topic that's already open, therefore its a duplicate. quite simple stuff.

Requesting maintenance & line of communication !== anti-bot suggestions.

mechabubba commented 4 months ago

don't feed the trolls, everyone.

Luxzhv commented 4 months ago

Ay, Just wanna reach out to others leaving messages here:

Please have extended and constructive feedback. Less then a sentence is not recommended and makes us look bad.

Anyway. We should migrate to #3477 and Mega should post this whole post in there to keep things going.

Also TF2 Bot Detector linked in that thread is deprecated, so we can really only depend on people putting new PRs for Mega's project.