Tamper proofing media

Blitz3D Forums/Blitz3D Programming/Tamper proofing media

RifRaf(Posted 2009) [#1]
Curious if anyone has any advice on this. Tiny Tanks Default maps will be moleboxed into the package with tons of other data, so im not very concerned with that, i think it would be difficult to issolate small peices of data in there.

But I want to support 3rd party maps as well, wich means opening up the scnenery folder for map makers to use and having map exports in the open.

What methods to games like Unreal and Quake use in thier pak files that keep users from cheating .. by say changing the scenery models or scale ect.

For example , perhaps a giant rock blocks access the the red base from the outside, a hex edit into the map_Scn.dat can change the rock scale so tiny you can drive right over it.

is it as cut and dry as say. using blowfish encryption on all exported map data ?


Adam Novagen(Posted 2009) [#2]
Well, I really don't know much about molebox itself. However, if you want 3rd party map support, then I'd say just don't package the maps with MB. Package them with the installer, so that they become "public" files outside the MB archive.


AJ00200(Posted 2009) [#3]
Use a GUI to download maps from 3ed party server, but encrypt them


Rroff(Posted 2009) [#4]
Quake uses crc checking (pure mode) on the files itself - which as it stands is easy enough for a hacker to work around but then its coupled with a program called punk buster to prevent people modifying the game - together its a lot harder to exploit - but some people still manage it...

No matter how much you obfusicate your media - if someones determined to get access they will - you'll just tie up a lot of time developing methods to stop them that could be better spent elsewhere... its depressing but there it is.

Also in quake, unreal, etc. the server is for the most part authorative - so if the client removed a rock, it would still exist on the server and they'd still clip against it - with associated prediction errors.


RifRaf(Posted 2009) [#5]
Rroff, what about quake/unreal dedicated console servers, wich have no 3D. do they still manage to do the 3D math to check collisions and clipping ? I find the thought of that very depressing :)


Rroff(Posted 2009) [#6]
Dunno about unreal - but quake deffinatly does 3D collision checking in the console mode standalone dedicated server.


Kryzon(Posted 2009) [#7]
You could have a User Maps folder, where everything is unprotected. While the default official maps are embedded\protected in your program, the User Maps folder contain all 3rd party modded maps that the user installed.

PS: RifRaf, it's a great idea what you're doing, implementing a sort of modding and all. If you make a great guide explaining how to mod things appropriately then it'll be very invitational for modding players.


RifRaf(Posted 2009) [#8]
Thanks Kryzon.

I could make the dedicated server in b3d and load the map there and then check against positons.. but i think that would slow the server down to much as it has alot do do with raw data already without running the B3D 3D Engine.

Do you think exporting a simple list of 3d rectange data (x1,y1,z1 - x2,y2,z2) making bounding boxes around all the scenery and map geometry. I could load this in the server as a type, and simply check the users x,y,z that he/she sends over against the collision rect list and if they are too far into a recangle , respawn them at a start location.

This wouldnt be perfect , but say if they are halfway into an objects bounding box, they would be caught by the server.

But then , the above only helps for missing or shrunk scenery. Not sure how I could check against added scenery or enlarged scenery .


Kryzon(Posted 2009) [#9]
Oh, do you mean keeping the official maps intact so the users won't modify them?
you don't really need to use that, as the users won't have access to them.
Perhaps you can have a dummy map in the User Folder just so people see what can be done, but user maps will have to be built from scratch, not modified versions of the official ones.


Andy(Posted 2009) [#10]
Isn't it just a case of having 2 different map formats. An encrypted/checked one for official maps and a nonencrypted format for usermaps. Just make 2 loading routines and you won't have to worry.


Kryzon(Posted 2009) [#11]
Also, why not let users modify official maps? Perhaps they can come up with something better later on, or if it sucks ass and is a cheat fest then people won't play it.

Always remember that, if it's not fun, people won't play it.


RifRaf(Posted 2009) [#12]
Kryzon I will have the raw map saves available for the map editor, wich will let them load the official maps and modify / reexport as a new map, just not replace the orginals.


gosse(Posted 2009) [#13]
Multiple CRCs + Test against peers' CRCs.


Yasha(Posted 2009) [#14]
Making sure everyone has the same version of a map is more important than making sure the map is unmodified. If everyone playing the game is cheating in the same way... that's fair enough, if they all want to play that way. You only really need to worry about people cheating when they're getting an unfair advantage over other players. If on the other hand everyone is doing it, that probably means they just prefer the modified map.


RifRaf(Posted 2009) [#15]
I guess ill just have the server send the crc data when it sends the changemap packet, and compare against that and disconnect if theres a mismatch.