Client auto-magically retrieving game data creates midnight worr
by John Kabus (BobTheCBuilder) · in Torque Game Engine · 06/16/2003 (10:03 am) · 7 replies
Client auto-magically retrieving game data creates midnight worries, opinions needed...
Ok, so I feel like I may have done something bad. I setup my first game server yesterday for the development team with our current art work and code. I ran a few tests on my network and while testing accidentally connected to the wrong server a few times (several servers appear in the list from the master server). I then head over to one of the other teammate's house and run some more testing. When I get home I find the 'fps' folder in my dev tree (which I removed a while ago). I realize that the folder and all of the content was from connecting to the wrong server earlier (ran some tests to verify). Then I realize that all of our content was available to be downloaded by anyone all day (only 6 hours, but still)!
Anyway, anyone that connected would be a Torque owner and I hope that they would be honest enough to delete our content, but how do games developed with TGE prevent people from downloading games/mods they didn't buy. I understand that the engine can't prevent warez, but the engine itself giving the user a free upgrade is scary. What prevents a user from finding a Marble Blast server, pointing the test app to it, and downloading the game content and all of the compiled scripts? Is this a feature that can be disabled? I tried to remove the code (in the scripts) that sends back the files, but it seems heavily integrated in the code that checks the files (actually the problem is probably that this code can't be changed from the scripts and my understanding of the engine is to minimal). Ultimately I only made a mess.
Any ideas, opinions, is anyone else concerned with this, or is it really not that big of a deal? I'm hoping there is a simple fix like:
$Prefs::Server::PleaseDontGiveMyArtAway = "Always";// :)
Thanks for reading my break down... :)
John.
Ok, so I feel like I may have done something bad. I setup my first game server yesterday for the development team with our current art work and code. I ran a few tests on my network and while testing accidentally connected to the wrong server a few times (several servers appear in the list from the master server). I then head over to one of the other teammate's house and run some more testing. When I get home I find the 'fps' folder in my dev tree (which I removed a while ago). I realize that the folder and all of the content was from connecting to the wrong server earlier (ran some tests to verify). Then I realize that all of our content was available to be downloaded by anyone all day (only 6 hours, but still)!
Anyway, anyone that connected would be a Torque owner and I hope that they would be honest enough to delete our content, but how do games developed with TGE prevent people from downloading games/mods they didn't buy. I understand that the engine can't prevent warez, but the engine itself giving the user a free upgrade is scary. What prevents a user from finding a Marble Blast server, pointing the test app to it, and downloading the game content and all of the compiled scripts? Is this a feature that can be disabled? I tried to remove the code (in the scripts) that sends back the files, but it seems heavily integrated in the code that checks the files (actually the problem is probably that this code can't be changed from the scripts and my understanding of the engine is to minimal). Ultimately I only made a mess.
Any ideas, opinions, is anyone else concerned with this, or is it really not that big of a deal? I'm hoping there is a simple fix like:
$Prefs::Server::PleaseDontGiveMyArtAway = "Always";// :)
Thanks for reading my break down... :)
John.
#2
Thanks!
John.
06/16/2003 (10:47 am)
Excellent! Mark you're a life saver. Thanks so much for the quick post, I'll give it a try tonight and let you know.Thanks!
John.
#3
A simple on/off would be nice, although setting one up based on MOD would be better.
06/16/2003 (12:13 pm)
Hmm... sounds like a flag that could be added to the scripting language...A simple on/off would be nice, although setting one up based on MOD would be better.
#4
06/16/2003 (5:02 pm)
Wow... GameString... that's a new one for me. What's the difference between that and the Game Type defined in the scripts?$Server::GameType = "TorqueDemo";
#5
please tell me if I'm wrong...
John.
06/16/2003 (5:11 pm)
As far as I can tell thats for the master server to group like servers. Same as the clients master server query string?please tell me if I'm wrong...
John.
#6
#3 - works great, stopped the download and still allows client with the proper data file to play.
#1 - can't get the passwords working. I searched all of the scripts for 'password', made sure I added my password, deleted all of the prefs.cs and *.dso files. When I ran the engine the scripts recompiled. echo($pref::server::password); on the server and echo($client::password); on the client produce the same password (in the test it was "a"), but I receive a "That password is incorrect" when connecting.
#2 - I don't have a GameString in any of my source files, which leads me to believe that I need to update my sdk (its from march). :)
I'll get the latest code this week and add both of these into engine, but until then I'm still ok because the data is no longer being downloaded to the client.
Thanks for the help...
John.
06/16/2003 (6:35 pm)
Ok tried out the changes.#3 - works great, stopped the download and still allows client with the proper data file to play.
#1 - can't get the passwords working. I searched all of the scripts for 'password', made sure I added my password, deleted all of the prefs.cs and *.dso files. When I ran the engine the scripts recompiled. echo($pref::server::password); on the server and echo($client::password); on the client produce the same password (in the test it was "a"), but I receive a "That password is incorrect" when connecting.
#2 - I don't have a GameString in any of my source files, which leads me to believe that I need to update my sdk (its from march). :)
I'll get the latest code this week and add both of these into engine, but until then I'm still ok because the data is no longer being downloaded to the client.
Thanks for the help...
John.
#7
I recommend getting the latest head anyway, some of the fx<*> resources are making it into the engine (nice!).
John.
Edit: didn't understand self...
06/18/2003 (6:58 am)
Wow... I recommend making these changes to anyone else who's a security freak (like me). The changes worked great with the latest head. Thanks for the help Mark!I recommend getting the latest head anyway, some of the fx<*> resources are making it into the engine (nice!).
John.
Edit: didn't understand self...
Associate Mark Frohnmayer
The auto-downloading code only grabs game art (bitmaps, interiors, terrains, shapes) and sounds. No script code is downloaded, nor are any guis or anything like that. Still, during development of the game you might not want people to be able to do this, so there are a few things you can do:
1. Password your server - this is a good idea anyway.
2. Change your GameString - this will prevent other instances of the Torque Engine that are not your game from connecting to your server - it will also make your game clients unable to connect to generic torque games. #define GameString is in engine/game/gameConnection.h
3. Disable file downloading. Right now there's no way to control this from script - you have to edit the file engine/sim/netDownload.cc. On line 136, in the function NetConnection::startSendingFile, set mCurrentDownloadingFile to NULL instead of opening it from the ResourceManager. This will have the server always tell the client that the file is missing... that should work.