Forum

Stopping Picmip 45234 graphics destruction?

Discuss programming topics for the various GPL'd game engine sources.

Moderator: InsideQC Admins

Stopping Picmip 45234 graphics destruction?

Postby Baker » Fri Jul 30, 2010 4:38 am

Quake II sends the light level back to the server.

Maybe a random and unpredictable GLReadPixels has to be returned every here and there and if it doesn't match the single pixel of what the server expects ... someone is trashing up their game.

Yeah, some incredible mess of a hack might be able to defeat such a thing, but it would be an incredible burden.

This type of thing could effectively prevent the culture of trashing a game's graphics for an advantage.
The night is young. How else can I annoy the world before sunsrise? 8) Inquisitive minds want to know ! And if they don't -- well like that ever has stopped me before ..
User avatar
Baker
 
Posts: 3666
Joined: Tue Mar 14, 2006 5:15 am

Postby Sajt » Fri Jul 30, 2010 6:09 am

Options:

1. Try to implement a poor man's PunkBuster. (con: totalitarian)
2. Actually use PunkBuster. (??)
3. Stop cultural discrimination. Allow cheaters, burqas, etc.
4. Don't play video games with anonymous strangers.

I prefer the last option, but I'm probably alone.
F. A. Špork, an enlightened nobleman and a great patron of art, had a stately Baroque spa complex built on the banks of the River Labe.
Sajt
 
Posts: 1215
Joined: Sat Oct 16, 2004 3:39 am

Postby mh » Fri Jul 30, 2010 9:17 am

glReadPixels would ruin performance as it needs to stall the pipeline. :(
We had the power, we had the space, we had a sense of time and place
We knew the words, we knew the score, we knew what we were fighting for
User avatar
mh
 
Posts: 2292
Joined: Sat Jan 12, 2008 1:38 am

Postby Spike » Fri Jul 30, 2010 10:23 am

or you could just ban all engines which support that cvar (that's all of them, right?).
Spike
 
Posts: 2892
Joined: Fri Nov 05, 2004 3:12 am
Location: UK

Postby Baker » Fri Jul 30, 2010 10:58 am

mh wrote:glReadPixels would ruin performance as it needs to stall the pipeline. :(


True, but on Windows you don't need glReadPixels :D

Since ALT + Printscreen "copy to clipboard" works even in fullscreen mode ... meaning you can grab a pixel color right off the dib via Windows API :D

Spike wrote:or you could just ban all engines which support that cvar (that's all of them, right?).


Well that specific feature in modern times should be enabled only with developer 1 running, realistically. Just like how you shouldn't be able to play with r_lightmap 1.

Just thinking ahead :D
The night is young. How else can I annoy the world before sunsrise? 8) Inquisitive minds want to know ! And if they don't -- well like that ever has stopped me before ..
User avatar
Baker
 
Posts: 3666
Joined: Tue Mar 14, 2006 5:15 am

Postby Baker » Fri Jul 30, 2010 11:13 am

Later today, I'll post a shot of a wonderfully neat DM map that admittedly is rather difficult to see players in some areas.

I remember a Qrack user connecting and using gl_textureless feature and saying "OMG! I can see so clearly now ..." on this wonderful map. (R00k is eliminating that feature from Qrack, btw.)

I was rather upset at this. For me to play the map on an even playing field against that, I'd have to destroy the appearance of the beautiful map to do so.

Alas, I can see ways that this type of protection would be defeated easily. So maybe not ...
Last edited by Baker on Fri Jul 30, 2010 11:15 am, edited 1 time in total.
The night is young. How else can I annoy the world before sunsrise? 8) Inquisitive minds want to know ! And if they don't -- well like that ever has stopped me before ..
User avatar
Baker
 
Posts: 3666
Joined: Tue Mar 14, 2006 5:15 am

Postby Spike » Fri Jul 30, 2010 11:15 am

yeah, good luck doing that automatically when you don't even know which frame is currently in the DIB. And good luck when the user is in linux instead.
Also, good luck coping with surface angles, original textures, and gl_texturemode nearest.

Seriously, good luck.


QuakeWorld has a 'snap' command which can be used to request a different client take a screenshot and upload it to the server, for the requester to download. Used to detect wallhacks. Its a friggin pcx. Looks ugly as sin.
Tis also an invasion of privacy. There's no guarentee that if your application is covered by another window that you won't manage to take a screenshot of some banking app, or some other sort of personal information.
But so long as they can't replace textures with flat ones, huh.
I'm sure you'd have great fun with r_drawflat in ezquake. I never did manage to figure out how it gave less fps than full texturing, but hey.
Spike
 
Posts: 2892
Joined: Fri Nov 05, 2004 3:12 am
Location: UK

Postby mh » Fri Jul 30, 2010 11:21 am

Nothing to stop the truly malicious from just renaming the cvar to something else then, or using a different cvar for picmipping.

Checking pixel values would also break if someone's 3D card had a different max texture size, they were using external textures, had different gamma values (and were using the old GLQuake style -gamma), etc. There may even be subtle (or not-so-subtle) differences between different drivers or between someone using wqpro, glpro, d3dpro and dx8pro.

Client-side cheat protection is a lost cause IMO. Ultimately someone who really wanted to could just recompile the source code, rename cvars, hard-code behaviour into GL_Upload32, render to two windows with the non-cheating version minimized, or whatever they wanted. You'd be fighting a losing battle.
We had the power, we had the space, we had a sense of time and place
We knew the words, we knew the score, we knew what we were fighting for
User avatar
mh
 
Posts: 2292
Joined: Sat Jan 12, 2008 1:38 am

Postby Baker » Fri Jul 30, 2010 11:32 am

Actually, there could be something to this for a rainy day in the distant future.

Anyways, something I do think would be cool in Quake ...

True invisibility where the player is only visible when firing or taking damage. No eyes.mdl. And the player entity simply isn't sent to other clients when the player is invisible.

I've always hated the invisibility ring in Quake because it is useless against an altered eyes.mdl.
The night is young. How else can I annoy the world before sunsrise? 8) Inquisitive minds want to know ! And if they don't -- well like that ever has stopped me before ..
User avatar
Baker
 
Posts: 3666
Joined: Tue Mar 14, 2006 5:15 am

Postby Baker » Fri Jul 30, 2010 11:35 am

This kind of thing isn't really a good use of time anyway, I suppose.

I had an idea. I posted it. It has obvious flaws.

And probably isn't worth the time investment.
The night is young. How else can I annoy the world before sunsrise? 8) Inquisitive minds want to know ! And if they don't -- well like that ever has stopped me before ..
User avatar
Baker
 
Posts: 3666
Joined: Tue Mar 14, 2006 5:15 am

Postby Spirit » Fri Jul 30, 2010 12:27 pm

Why not simple let people play as they like/can?
Improve Quaddicted, send me a pull request: https://github.com/SpiritQuaddicted/Quaddicted-reviews
Spirit
 
Posts: 1031
Joined: Sat Nov 20, 2004 9:00 pm

Postby frag.machine » Fri Jul 30, 2010 1:52 pm

Spirit wrote:Why not simple let people play as they like/can?


That's depends of what "people" are you talking about: people who cheats in a 14 year-old game, or people who wants just to play without being hassled by aimbots or wallhackers ?
I know FrikaC made a cgi-bin version of the quakec interpreter once and wrote part of his website in QuakeC :) (LordHavoc)
User avatar
frag.machine
 
Posts: 2090
Joined: Sat Nov 25, 2006 1:49 pm

Postby Spike » Fri Jul 30, 2010 2:22 pm

I think quakeworld players have it right when it comes to aimbots...
Just spam 'nades/rockets at the spawn spots so the aimbotter never even gets a chance to aim.
There's more to a map than just aiming. :)
Spike
 
Posts: 2892
Joined: Fri Nov 05, 2004 3:12 am
Location: UK

Postby Spirit » Fri Jul 30, 2010 4:17 pm

frag.machine wrote:That's depends of what "people" are you talking about: people who cheats in a 14 year-old game, or people who wants just to play without being hassled by aimbots or wallhackers ?

I'm talking about people who like to play with high picmip values for some weird reason. I think it looks bad but I also think that most retexture things look bad.

I don't think aimbots/wallhacks are in any way related to this discussion?
Improve Quaddicted, send me a pull request: https://github.com/SpiritQuaddicted/Quaddicted-reviews
Spirit
 
Posts: 1031
Joined: Sat Nov 20, 2004 9:00 pm

Postby Baker » Fri Jul 30, 2010 6:47 pm

Here is the map bsdm7 as it was made.

It is hard as hell to spot players here. Makes it sort of a cat and mouse fight.

Image

Here is EZQuake with r_drawflat 1 as an example.

Image

My theoretical concept, the client has to send back to the server some random pixel from the rendering frame.

The server knows the answer is brown at a certain pixel based on world position and roll, angle, pitch (adjusted for FOV, etc.). Sure gamma and all and settings might affect the RGB values there and there ... but white or blue ain't the answer and the server would disconnect the client.

I'm thinking cheat workarounds might be more annoying than just playing legit. Sure you could have 2 rendering frames and get far less frames per second. Other options might prove to me more annoying to the cheater than they are worth.

Anyways, something for a future day ....

(There could be servers with the feature disabled, because that kind of thing would hate ... say ... replacement textures. But I think reasonable measures to enforce a server's rules that aren't too hard to code may prove to be useful.

The alternate is to have all clients cheat equally. I find that idea unacceptable, really.)

Statistical sampling of rendering. It could be done and wouldn't place any real burdens on game play.
The night is young. How else can I annoy the world before sunsrise? 8) Inquisitive minds want to know ! And if they don't -- well like that ever has stopped me before ..
User avatar
Baker
 
Posts: 3666
Joined: Tue Mar 14, 2006 5:15 am

Next

Return to Engine Programming

Who is online

Users browsing this forum: No registered users and 1 guest