<!--QuoteBegin--=[Drake]=-+Sep 7 2004, 01:26 PM--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>QUOTE</b> (-=[Drake]=- @ Sep 7 2004, 01:26 PM)</td></tr><tr><td id='QUOTE'><!--QuoteEBegin--> i never even knew about detailed textures mine have always been the normal 1s
D= <!--QuoteEnd--> </td></tr></table><div class='postcolor'> <!--QuoteEEnd--> Ditto...I feel like I missed out on something great. <!--emo&???--><img src='http://www.unknownworlds.com/forums/html//emoticons/confused-fix.gif' border='0' style='vertical-align:middle' alt='confused-fix.gif' /><!--endemo-->
<!--QuoteBegin--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>QUOTE</b> </td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->consistency check would have to scan every byte of data in texture files to notice a difference because a file with 256 indexed colours will be the same size, no matter what the colours in the index are.<!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd-->
Not a biggie, processors are fast now adays. Just do a CRC32 or MD5 or whatever checksum/message diggest hash tool HL has built in support for.
There's a couple of sensible ways(AFAIK) to fix the problem with detail textures.
1: entirely client-side checks without using consistency, check that average colour is close to 127.5 in each component(which would be neutral), check that the standard deviation of colour values in each colour component of the detail texture is not too large( a very large standard deviation would signify a very high contrast pattern such as chess board style patter or something, which would have neutral grey as the mean and otherwise pass consistency). If you don't take care to check the different colour components seperately and instead average them you could device a checker board pattern of 2 colours such as { 0, 192, 192 } and { 192, 192, 0} and pass both standard deviation test and testing of the average intensity. Also check that detail textures aren't applied to a texture that is in use by a model.
This is probably not the best system, but something like this ought to kill anything more than mildly exploitative and anyone can use any homebrewed set of detail textures without problems as long as they are sensible.( As models are customizable they could implement similar checks for the texture(which could be avoided by mapping only a few pink pixels of the texture to the entire model and thus avoiding the protection, but this is alot more work than the current <1 minute of work with HLMV and MS paint. It would also be usefull to check the bounds of the models if they don't allready, this would kill spiked models unless they where made with a client-side hook or openGL wrapper cheat(pass through driver that sits inbetween half-life and the real opengl32.dll) with engine functions(access to the same functions as the MOD dll files, the abillity to do this easily is due to the HLSDK being released. Without the HLSDK most cheats wouldn't be possible or at least very difficult, but then NS wouldn't even exist), in which case you can do much more damaging things allready and you're not going to be able to play on cheating-death servers. As a side note, currently non-CD servers have no protection what so ever, all you need is a moderate understanding of .dlls and absolute beginner knowledge of openGL and you can allready do very damaging things[/end shameless plug for C-D], I tried to see if I can figure out how to disable simple openGL hooks in my (really really poor) MOD that I'm working on now and then just to get some experience, no luck so far but I think I have some interesting ideas to try))
2: Use consistency, whichever detail textures the server has listed, you must use(if detail textures are turned on of course), and your detail textures must match up with the servers. Doing this you would need to send some custom messages to players when they are connecting, I don't know how difficult this would be.
edit: You can still get the detail textures I made(with plenty of help from the community, especially cutedge, which would constantly remind me when I did something stupid like link the wrong version or whatever) <a href='http://hem.bredband.net/congal/temp/DetTex_pack.zip' target='_blank'>here</a>.
This has been an extremely interesting topic. The benefits of the detail textures appear to be enormous. When used correctly.
Not as important with newer engines, but the HL engine can certainly benefit from it. Whatever security checks are needed to ensure no cheating, I say go for it.
DT were gorgeous in NS, I absolutly loved playing with them. Greatly saddend by thier removal, but hopefully we can get them back in there at some point.
Voogru said it shouldn't work but it seems to work for me. Maybe its just me or something. <!--emo&???--><img src='http://www.unknownworlds.com/forums/html//emoticons/confused-fix.gif' border='0' style='vertical-align:middle' alt='confused-fix.gif' /><!--endemo-->
Comments
D= <!--QuoteEnd--> </td></tr></table><div class='postcolor'> <!--QuoteEEnd-->
Ditto...I feel like I missed out on something great. <!--emo&???--><img src='http://www.unknownworlds.com/forums/html//emoticons/confused-fix.gif' border='0' style='vertical-align:middle' alt='confused-fix.gif' /><!--endemo-->
Not a biggie, processors are fast now adays. Just do a CRC32 or MD5 or whatever checksum/message diggest hash tool HL has built in support for.
There's a couple of sensible ways(AFAIK) to fix the problem with detail textures.
1: entirely client-side checks without using consistency, check that average colour is close to 127.5 in each component(which would be neutral), check that the standard deviation of colour values in each colour component of the detail texture is not too large( a very large standard deviation would signify a very high contrast pattern such as chess board style patter or something, which would have neutral grey as the mean and otherwise pass consistency). If you don't take care to check the different colour components seperately and instead average them you could device a checker board pattern of 2 colours such as { 0, 192, 192 } and { 192, 192, 0} and pass both standard deviation test and testing of the average intensity. Also check that detail textures aren't applied to a texture that is in use by a model.
This is probably not the best system, but something like this ought to kill anything more than mildly exploitative and anyone can use any homebrewed set of detail textures without problems as long as they are sensible.( As models are customizable they could implement similar checks for the texture(which could be avoided by mapping only a few pink pixels of the texture to the entire model and thus avoiding the protection, but this is alot more work than the current <1 minute of work with HLMV and MS paint. It would also be usefull to check the bounds of the models if they don't allready, this would kill spiked models unless they where made with a client-side hook or openGL wrapper cheat(pass through driver that sits inbetween half-life and the real opengl32.dll) with engine functions(access to the same functions as the MOD dll files, the abillity to do this easily is due to the HLSDK being released. Without the HLSDK most cheats wouldn't be possible or at least very difficult, but then NS wouldn't even exist), in which case you can do much more damaging things allready and you're not going to be able to play on cheating-death servers. As a side note, currently non-CD servers have no protection what so ever, all you need is a moderate understanding of .dlls and absolute beginner knowledge of openGL and you can allready do very damaging things[/end shameless plug for C-D], I tried to see if I can figure out how to disable simple openGL hooks in my (really really poor) MOD that I'm working on now and then just to get some experience, no luck so far but I think I have some interesting ideas to try))
2: Use consistency, whichever detail textures the server has listed, you must use(if detail textures are turned on of course), and your detail textures must match up with the servers. Doing this you would need to send some custom messages to players when they are connecting, I don't know how difficult this would be.
edit: You can still get the detail textures I made(with plenty of help from the community, especially cutedge, which would constantly remind me when I did something stupid like link the wrong version or whatever) <a href='http://hem.bredband.net/congal/temp/DetTex_pack.zip' target='_blank'>here</a>.
Not as important with newer engines, but the HL engine can certainly benefit from it. Whatever security checks are needed to ensure no cheating, I say go for it.
Most interesting stuff indeed.
Voogru said it shouldn't work but it seems to work for me. Maybe its just me or something. <!--emo&???--><img src='http://www.unknownworlds.com/forums/html//emoticons/confused-fix.gif' border='0' style='vertical-align:middle' alt='confused-fix.gif' /><!--endemo-->