ValveSoftware / Source-1-Games

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

[TF2] [Feature Request] Remove all code related to -textmode in TF2 #4475

Closed Ashetf2 closed 3 months ago

Ashetf2 commented 1 year ago

This issue was closed before for no reason, so I'm creating this new issue. -textmode allows clients to run Source games without rendering any graphics to save memory. CS:GO used to have textmode compatibility, but it was removed at some point to stop users from abusing it. The same should be done to TF2.

There is no legit reason to use this parameter, not even for debugging. If you find "textmode" in Google you will only find cheat repos and forums.

Also, there may be some other parameters that needs to be revised. -noshaderapi: Effectively disables shader and texture loading completely. Doesn't let you open CS:GO directly. -small: Allows for resolutions smaller than 640x480. Very small values crashes the game.

AzureWoof commented 1 year ago

I closed the previous issue as I became aware that removing textmode will not stop people from hosting bots in TF2. There will always be another way. Removing it won't really change much in the long run.

Doclic commented 1 year ago

I closed the previous issue as I became aware that removing textmode will not stop people from hosting bots in TF2. There will always be another way. Removing it won't really change much in the long run.

The main issue is likely just-disable-vac-tf (which apparently works on other games too) And if cheats do use textmode, removing it will at least prevent bots from running for some time, which is always nice.

Edit: After gaining a year's worth of knowledge on game development, I doubt remove textmode would do anything meaningful, even if cheats used it.

Ashetf2 commented 1 year ago

@TF2CutContentWiki CS:GO also has trade bots and it doesn't support -textmode

Kacey2k commented 6 months ago

legitfags crying clip: Number 6900.

you know you can literally host bots without fuckin textmode? and cathook doesnt even use the "-textmode" flag, it uses a fuckin' signature. Even if you remove the flag, it wont work :)

Its not a problem of whether or not bots can exist with/without textmode. It's the resources required to achieve the numbers bot hosts get when running without graphics. Forcing bot hosts to switch to hosting with graphics would be like Windows users trying to run 30 instances of TF2 in Sandboxie for bots. - Not too friendly for the CPU.

wgetJane commented 6 months ago

this suggestion isn't going to achieve what you think it will achieve

erickoid commented 4 months ago

this suggestion isn't going to achieve what you think it will achieve

why are you so vague and obtuse

Doclic commented 4 months ago

@compromisable Please learn about how game development works before sending childish comments in an issue tracker. If you think it's so easy to do, do it yourself then.

wgetJane commented 4 months ago

this suggestion isn't going to achieve what you think it will achieve

why are you so vague and obtuse

i already explained this

updating the game to remove features from it doesn't forcibly remove previous versions of the game from existing machines

like a common suggestion is removing linux support, but linux binaries will still exist and will still work fine even if valve stops officially serving them

textmode is also such a trivial feature for cheaters to replicate, it's literally just running the game without graphics, this is not the silver bullet that you think it is

erickoid commented 4 months ago

this suggestion isn't going to achieve what you think it will achieve

why are you so vague and obtuse

i already explained this

updating the game to remove features from it doesn't forcibly remove previous versions of the game from existing machines

like a common suggestion is removing linux support, but linux binaries will still exist and will still work fine even if valve stops officially serving them

... But you can't play on newer servers with an older build version of the game. You have 8000 hours in gmod, shouldn't you know this? textmode is also such a trivial feature for cheaters to replicate, it's literally just running the game without graphics, this is not the silver bullet that you think it is

If it's trivial give me an example on how it would be done

erickoid commented 4 months ago

@compromisable Please learn about how game development works before sending childish comments in an issue tracker. If you think it's so easy to do, do it yourself then.

You need to learn how game development works before complaining about an issue that has needed attention for 6 years?

Doclic commented 4 months ago

If it's trivial give me an example on how it would be done

Running the game without Vulkan presentation extensions, running the game without a display server, running the game with a modified DXVK, or your own DirectX/libX11/libwayland/etc implementation that just ignores any calls to it…

Doclic commented 4 months ago

You need to learn how game development works before complaining about an issue that has needed attention for 6 years?

This person clearly does not know what they're talking about (suggesting solutions that make no sense or that are infeasible) and are continuing to do so after being told by a Valve employee to stop (see #5686)

They're even pinging the Valve issue tracker moderator on this after being told that they don't work on anti-cheat (again see #5686)

Edit: Just thought I'd talk about this too:

But you can't play on newer servers with an older build version of the game. You have 8000 hours in gmod, shouldn't you know this?

This whole conversation is pointless as Valve will not remove Linux builds considering how much efforts they've put into making Linux a viable competitor to Windows for gaming, but yes, if you're dedicated enough (which bot makers clearly are) you can make an old client connect to a new server.

Edit 2: And even if Valve did stop making Linux builds, Proton is so good it would be made compatible with TF2 (currently networking and VAC seem broken on Win32 TF2 running through Proton on Linux) not long after.

erickoid commented 4 months ago

If it's trivial give me an example on how it would be done

Running the game without Vulkan presentation extensions, running the game without a display server, running the game with a modified DXVK, or your own DirectX/libX11/libwayland/etc implementation that just ignores any calls to it…

Sounds like it raises the bar for botters still. Which is a good thing in terms of lessening disruptive matches

Doclic commented 4 months ago

Sounds like it raises the bar for botters still. Which is a good thing.

Yeah, it would make the bot makers have to work for like a good hour or two.

erickoid commented 4 months ago

Sounds like it raises the bar for botters still. Which is a good thing.

Yeah, it would make the bot makers have to work for like a good hour or two.

It took botters more than a day to get back up and running after 64 bit was released, something tells me it will be a little bit more than just an hour or two for them to trivially do any of those (untested) options you presented

This whole conversation is pointless as Valve will not remove Linux builds considering how much efforts they've put into making Linux a viable competitor to Windows for gaming, but yes, if you're dedicated enough (which bot makers clearly are) you can make an old client connect to a new server.

Sounds like a bug valve would need to fix then

Doclic commented 4 months ago

It took botters more than a day to get back up and running after 64 bit was released, something tells me it will be a little bit more than just an hour or two for them of trivially do anything

Patching cheats up to work with a whole new binary is way more work intensive than creating a script that goes through every DirectX or Vulkan functions no-ops and fixing it up to make TF2 think the functions actually worked. (that might even already exist, I didn't look into it) Also, we don't even know if botters do use -textmode. Yes maybe that people running the bots took a day to update, but I'm sure most botters aren't actually developing them. Furthermore, patching up cheats to work with 64-bit is way more work intensive than the solutions provided.

Sounds like a bug valve would need to fix then

Why? It doesn't affect anyone.

Edit: Yes my options are untested. I still know they will work, because they literally consist of just preventing the game from rendering to anything. And again, bots might need even use -textmode, so they probably wouldn't even implement a fix anyway.

wgetJane commented 4 months ago

if you're even admitting that your proposed solution is very temporary, i don't understand why you still think it'd be a good solution

erickoid commented 4 months ago

if you're even admitting that your proposed solution is very temporary, i don't understand why you still think it'd be a good solution

Oh, I didn't know I was competing with so many better solutions here. Anyway, My solution is very easy to implement, and will take away resources from botters.

<Link removed by moderator> Here is a very popular botting software that supports textmode, for doubters earlier <Link removed by moderator> Here it is being used in helper scripts

Yes my options are untested. I still know they will work, because they literally consist of just preventing the game from rendering to anything.

Yeah because knowing is everything...

Doclic commented 4 months ago

if you're even admitting that your proposed solution is very temporary, i don't understand why you still think it'd be a good solution

Oh, I didn't know I was competing with so many better solutions here. Anyway, My solution is very easy to implement, and will take away resources from botters.

That's not what they were saying?

Here is a very popular botting software that supports textmode

Great, you've shown that a bot software uses it, now what? You know botters can just not use it right? They only use it because it reduces the load on the GPU, but if Valve removes it they can again just reimplement themselves easily.

Yes my options are untested. I still know they will work, because they literally consist of just preventing the game from rendering to anything.

Yeah because knowing is everything...

Go ahead, explain why they wouldn't work.

Edit: Looking at the code you sent, they use the tier0 CommandLine()->RemoveParm("-textmode") function, which actually as specified in the engine source code "Remove[s] specified string ( and any args attached to it ) from command line", instead of adding the argument. I don't know how this software (a moderator removed the links so I assume they don't want me to mention it by name) bypasses bypasses VAC, but it seems it involves forcing textmode off. And considering they can already hook into the game itself, they could also just reimplement textmode in the game itself without too much effort considering g_bTextMode is only mentioned 23 times in the game's source code and they disable VAC.

Edit 2: -textmode seems to imply -insecure in some places so that's probably why they remove it from the arguments, along with -insecure.

Doclic commented 4 months ago

@compromisable Please learn about how game development works before sending childish comments in an issue tracker. If you think it's so easy to do, do it yourself then.

Ah, a game developer arrives at the scene, oh thank heavens! I am hurt by your comment, but am immensely grateful to have your help. I do want to note that as a company with billions of dollars of resources and probably more developers under their belt then any other PC gaming company - I think it would indeed be very easy to do! I would do it myself if I had the power of hypnosis and a Valve employee in my armchair!

Well what would you do if you had the billions of dollars of resources, because even for massive companies, writing good anti-cheat isn't easy (see Counter-Strike 2).

Anyone else find it strange how much resistance there is to finding an ideal solution to this bot crisis?

Well go ahead, give us one.

wgetJane commented 4 months ago

if you're even admitting that your proposed solution is very temporary, i don't understand why you still think it'd be a good solution

Oh, I didn't know I was competing with so many better solutions here. Anyway, My solution is very easy to implement, and will take away resources from botters.

i am getting the impression that all you're interested in is scoring a short-term "victory" against bot hosters, so that the tf2 community can do its little celebration like what they do for every update that temporarily breaks bots as a side-effect

personally, i don't think sacrificing features, no matter how niche, is worth it just for scoring ultimately meaningless little victories

Doclic commented 4 months ago

Wait... aren't you the one who proposed a "Cheat detecting Cvar"...?

I think you should stop holding this against them, as the following clearly isn't a serious suggestion:

i have come up with the ideal solution:

valve should simply add a userinfo cvar on the client called cl_cheating which defaults to a value of 0

then, cheat developers can just change its value to 1 to identify the client as non-legit

when a client with a cl_cheating value of 1 joins a vac-secured server, they will be promptly vac-banned

wgetJane commented 4 months ago
  1. Update anti-cheat - perhaps Hardware/IP tracking?

  2. Replace anti-cheat - perhaps Hardware/IP tracking?

  3. Phone verification

  4. Captcha verification

  5. Remove -textmode

  6. Enhance community power, perhaps after so many votekicks - a cooldown ban period?

these are out of scope of this issue, which is focused on the -textmode launch option

kisak-valve commented 4 months ago

@compromisable, you were warned and have chosen to digress into name calling again. This has earned you a one day timeout.

erickoid commented 4 months ago

@compromisable, you were warned and have chosen to digress into name calling again. This has earned you a one day timeout.

Thats what should be happening to the bots.

wgetJane commented 4 months ago

@compromisable, you were warned and have chosen to digress into name calling again. This has earned you a one day timeout.

Thats what should be happening to the bots.

personally, i would prefer the bots to be gone for longer than a day

Doclic commented 4 months ago

Let's explain why each one of the solutions you proposed don't work:

  1. Update anti-cheat

Easier said than done, Valve has trouble doing it with CS2, which has higher priority than TF2

perhaps Hardware/IP tracking?

  1. You can spoof hardware, or just change it
  2. Dynamic IPs
  1. Replace anti-cheat

With what?

  1. Phone verification

Not effective, you can buy cheap phone numbers on dark markets for a few cents each, and use Android emulators. Also, do you really want to have to get your phone each time you join a casual server?

  1. Captcha verification

There are also services that allow you to hire people to solve CAPTCHAs for a few cents per thousand. And same thing as with phone verification, do you really want to have to solve a CAPTCHA each time you join a casual server?

  1. Remove -textmode

I think I've talked about this one enough already, and this is the only one you should be mentioning here, as the issue is about removing -textmode.

  1. Enhance community power, perhaps after so many votekicks - a cooldown ban period

Do you know how many Steam accounts botters can create in a single day? Most of them are thrown away after a week when they longer have access to the Hitman's Heatmaker trial from the Mann Co. store. Perhaps making Steam accounts harder to create would be a good place to start, but solving spam (because that's basically the same problem) is easier said than done.

gaelcoral commented 4 months ago

I believe that the Overwatch system should be implemented, at least in Competitive mode for testing purposes. I know many would be against my idea because it is considered a dead mode, but compared to Casual mode, Competitive requires certain criteria for access, which would be ideal for identifying and ban cheaters, helping to clean up this mode.

As for bots, which btw, I have not encountered in Competitive mode (at least in my region), it would be even harder for them to access, and it could even become the best way to play without the influence of bots. (although this is just my opinion, the Competitive Matchmaking Pass should be removed if the Overwatch system were to be implemented)

Surprisingly, at least in the US-WEST, I rarely encounter cheaters in Competitive mode, unlike in Casual mode, where cheaters are becoming increasingly common.

Doclic commented 4 months ago

A port of CS:GO's trust factor system could also be a good addition.

ethanholt1 commented 4 months ago

@compromisable You've been told multiple times that your behavior is inappropriate and that your hostility isn't welcome here. While I don't work at Valve (yet, my dms are open Gaben) and cannot ban you from these discussions, I would strongly recommend that you tone down the harsh remarks before someone who can ban you gets sick of it.

Anyways, I believe a mix of both CS:GO's Trust Factor, the neural network powered bot detector I discussed in #3477 and Overwatch could work to remove a sizable portion of bots, enough to discourage any future bot hosters and to make casual semi playable, while still chipping away at the existing bot population.

ethanholt1 commented 4 months ago

Remember, CAPTCHA solvers arn't as effective nor cheap as they used to be in 2012 @doclic- nor are non-VOIP phone numbers, no sir! That would add up to a LOT more money then the typical bot hoster has in their washed ashore plastic bags! We aren't dealing with the Cartel of Internet Rage Hackers here!

I went ahead and ran the numbers on this. The first site that came up when I looked for single use virtual cell numbers priced them at around 25 cents for single use numbers. The CAPTCHAs, can cost you around 3 dollars for 3,000 solved CAPTCHAs.

It seems to me that my behavior has brought a lot of attention to this issue, very capable minds I'd say, I'll happily be the martyr if it means uniting everybody to solve the bot crisis!

You are not a "martyr," you are being intentionally difficult to talk to and outwardly hostile. I for one have gotten sick of your behavior and decided to contact Valve directly at their email posted by Kisak for VAC related issues.

kisak-valve commented 4 months ago

@compromisable, it's fairly clear that you're far more interested in wasting people's time bickering than anything else and spamming the same screenshot repeatedly. Your timeout has been extended to 1 month. If I need to step in again it will be permanent.

userNULL404 commented 3 months ago

This one was particularly striking to me. They are using your game to spread dox information. Perhaps we should take this more seriously?

Dude, I get it, but you are not saying anything of relevance to this discussion. This is not a forum or a Twitter thread. This is an issue tracker. If you don't have anything to say regarding textmode, don't say it here.

Doclic commented 3 months ago

Interesting how when I got suppressed, all activity regarding solving this crisis came to a complete halt.

Interesting how when you got "suppressed", you've been explicitly told that:

it's fairly clear that you're far more interested in wasting people's time bickering than anything else and spamming the same screenshot repeatedly. […] If I need to step in again it will be permanent.

@kisak-valve