PlaneShift

Gameplay => General Discussion => Topic started by: Talad on August 30, 2004, 11:30:20 pm

Title: Mods to the game.
Post by: Talad on August 30, 2004, 11:30:20 pm
As you have read on the cheating page, mods are not allowed in general by PS license. You cannot use or create \"Derivative Works\" with the copyrighted content. This means that all mods are not allowed by PS License.

This is done for a number of reasons, some of which are:
- keeping quality standards associated to our game
- be sure that players gets what they expect
- protect our work from spoilers.

Having that said, we are amazed by the work that has been done by the community on very interesting and useful mods to the game. The whole idea of \"open development\" has been catched and implemented by many modders exactly as we wished. There are mods that are \"fair\", no cheating, just useful additions to controls or functionalities (logs, better menus, ability to configure colors/layouts, etc..)

PS License is meant to stop the spoilers, not the good ones, and we decided to have a list of approved mods.

Approved mods will have a special grant by PS team that allows players to use those with PS Client on Official ps server.

Approved mods need to have this characteristics:
- a version identifier (like 1.2)
- open source code
- a web page to host it (if you have problems with bandwidth we can host the file download on the main ps site)
- a full list of features, published for a specific version.(like 1.2)
- approval from ps team explicitly written on ps main site.

This way modders are happy, players are happy and we are sure no cheating, no bad quality, no off-topic gfx is given to players.

If you like the idea, review you mod, make a web page for it with the required info, and ask us to approve it.

It\'s important to note that any official update of the game (run through the updater or download from main site) will probably overwrite the files of those mods. So players will have to reinstall the mod after the update.

We cannot guarantee that the mod will work again after an update, that\'s responsibility of the modder.

I posted this to forums and not to main site since we are working on the idea and want your feedback before going official.
Title:
Post by: Kiern on August 30, 2004, 11:56:14 pm
Very good and clear Talad, I agree all the way...though of course, I\'m not a modder. :baby:
Title:
Post by: Zeraph on August 31, 2004, 12:02:51 am
I was wondering, if you wanted to add additional levels to PS & are not a dev, how would you test the level mods to see if they match up with the PS world, if you do not own your own server? Would it be cheating if you added additional levels to PS?
Title:
Post by: Xordan on August 31, 2004, 12:27:48 am
*Three cheers for Talad!!*

Zeraph: I believe that you can just download the CVS, run your own private server and test things out there. Best for a dev to answer though, as I\'m not sure. And yes, I believe it is cheating to add your own additional levels to the game to use on a official server, as it could allow you to make \'shortcuts\' through different areas, and you could generally have a unfair advantage over other players.


Talad: Looks an excellent system to me. If a mod was good enough, could it be used as an offical patch? If so, I assume everything it contained would go under the planeshift license yes?
Title:
Post by: Icefalcon on August 31, 2004, 12:31:07 am
I\'m glad to see the rules layed out clearly, and that the security is tightened.
Title:
Post by: Talad on August 31, 2004, 12:33:49 am
We can review patches sent by modders to be integrated into the game, we already have done that in the past.

Will be a choice of the modders to propose his mod for integration, or keeping it proudly on his web page (I know that people like saying: \"I\'ve done it, download MY mod.\")
Title:
Post by: Seytra on August 31, 2004, 01:20:52 am
Quote
Originally posted by Talad
We can review patches sent by modders to be integrated into the game, we already have done that in the past.

Will be a choice of the modders to propose his mod for integration, or keeping it proudly on his web page (I know that people like saying: \"I\'ve done it, download MY mod.\")

Yes, but for the players, it would be better to have it integrated so that they will not have to keep re-installing it after each update. :)
Anyway, it\'s the modder\'s decision.

Quote
Originally posted by Talad
As you have read on the cheating page, mods are not allowed in general by PS license. You cannot use or create \"Derivative Works\" with the copyrighted content. This means that all mods are not allowed by PS License.

IANAL, but AFAICS this isn\'t true for code-only mods. The GPL does allow anything to be done with the code. After all, that\'s what it is there to make happen. It therefore doesn\'t constitute a \"derivative work\" WRT the content.

However, ? 3
Quote
From the PS license
You may use the provided Material, for personal use only, to connect to an Official PlaneShift Server only in conjunction with a Planeshift Client, distributed by the Planeshift Team. Offical PlaneShift Servers can only be designated by PlaneShift Team.

will prevent any modification to the sourcecode to be used in conjunction with an official server, thereby effectively locking out code-only mods as well, because you need to use the content in conjunction with the modified sourcecode unless you have re-created all content (resulting in incompatibility in terms of the rulebase). Since the content may only be used with the client distributed by the PS team, a modified code (while perfectly OK in terms of the code license), isn\'t the official version and thus you may not use the content anymore.

With this interpretation in mind, and the intention to actually enforce it, it is paramount to expressly allow certain types of modding because otherwise any modder would perform an illegal activity.

Therefore, it seems reasonable to me. As much as I dislike the requirement for approval, this seems to be an acceptable tradeoff for stopping cheaters. It doesn\'t make me happy, but I\'d rather see cheaters banned than to test my mods on the official server.

Laws and rules are a necessary evil. :(
Title:
Post by: Monketh on August 31, 2004, 02:54:06 am
So, I take it it may be possible to create skins so long as every scrap of the original is removed before hand?

What about interface \'skins\'?
Title:
Post by: Zeraph on August 31, 2004, 02:55:58 am
I am a little confused about the server, assuming that a modder can download the cvs & compile it, there is a way to run PS offline? Which is to say use your own computer as a server & not use any internet/network connections? Or do you have to have another computer to install the cvs server?

Well, if that is the case, I would think that making it more available to people would cut down on loading mods onto the official server illegally. Since I know little to nothing about programming C++ but have experience in 3D & modding game?s content such as adding custom levels / more models to other games were that sort of thing was encouraged & they didn?t release the code I had no need to learn C++ to add stuff to the game.

I was thinking, we could have a ?Mod Test? which is identical to the PS server, but has no restrictions as far as mods (good or evil) so that we can test out the mods & submit them, share them & all that only to be used on the mod server, even if there are cheaters they will only be able to work there cheats on the mod server. If I had knowledge on how to set up such a place (I know servers are generally not free) I would, with the devs approval of course. A place were you can mod the client all you want & not get flagged for cheating, but all of the mods would only (unless approved by dev team) be used on this server. It wouldn?t be a place to send players just people testing out content that they can submit to the dev team instead of testing on the official server.

(BTW: This wouldn?t aid in cheaters because they would just use the official server for that.)
Title:
Post by: Seytra on August 31, 2004, 04:14:59 am
Quote
Originally posted by Zeraph
I am a little confused about the server, assuming that a modder can download the cvs & compile it, there is a way to run PS offline? Which is to say use your own computer as a server & not use any internet/network connections?

AFAICS, it works this way. In fact, I would expect it to be like this because any networked app can be used in this way by using the loopback \"network\" (running the server on the same machine as the client and entering \"127.0.0.1\" as the servers IP address in the client). The only things you can\'t catch this way are problems caused by low bandwidfth and by packet loss / data corruption (since neither will happen within the same computer with any significant probability). This works even without any networking device installed.
So unless PS is doing some deliberately weird stuff in terms of networking (which I doubt it does), you should be able to use it \"offline\" just fine.

Quote
Originally posted by Zeraph
So, I take it it may be possible to create skins so long as every scrap of the original is removed before hand?


AFAICS, yes. Also, you can AFAIK modify an existing model if you make substantial changes to it. Changing some color won\'t do, as won\'t adding some freckles. But if you take the human model and make something totally different (like an Enki) out of it (i.e., the original will not be recognisable), it\'s not a derivative work anymore. However, there is a grey zone somewhere as to what is a \"substantial change\". Mostly, this differs from case to case.
But I may be wrong on this or in the future because of the $$-driven IP madness currently going on that strives to totally erase any rights of fair usage. Also, IANAL, so don\'t base your defense in court on this.
Title:
Post by: lynx_lupo on August 31, 2004, 10:58:38 am
*yawn*  Of course source mods are allowed, see the intro post for further explanation(what good is a mod if none will use it?). It\'s GPL...
Title:
Post by: Reikar on August 31, 2004, 11:33:15 am
Maybe if you make a seperate directory that you can store the mods in that the client will auto-detect, it will allow the people making mods an easy way to add the mods and have it so you can remove them easier. it would also allow the updater to update with out altering the files in the mod.
If you want to insure that the mods arent ones that will be used to unbalance the game then you could have it so that the client checks a database of files allowed by planeshift against the files you have in the mod directory (a way i know of is you check the name of the file and the file size with the one in a database if they arent allowed or the file name matches but the size doesnt then it comes back with an eror message).

i hope it helps
Title:
Post by: Monketh on August 31, 2004, 09:17:44 pm
Reikar, you have a good point.  

However, an easier method would be simply inserting a \"tag\" into the client distributed as fully compiled.  The server would see this as a non-modified client.  Officially allowed mods would be given their own \"tags\" for their pre-compiled versions as well.  Thusly, the devs would know who does and who doesn\'t have a mod.  You\'d have to mod to cheat directly, although this couldn\'t be used to catch Glitch-exploiters.
Title:
Post by: Kiva on August 31, 2004, 11:16:53 pm
Quote
However, an easier method would be simply inserting a \"tag\" into the client distributed as fully compiled. The server would see this as a non-modified client. Officially allowed mods would be given their own \"tags\" for their pre-compiled versions as well. Thusly, the devs would know who does and who doesn\'t have a mod. You\'d have to mod to cheat directly, although this couldn\'t be used to catch Glitch-exploiters.


Yes, yes. It\'s all very good, but aren\'t you forgetting that if you mod the client, you can also mod it to send the \"right\" tag as well?

Anyway, it\'s all very simple. Use your mods on the official server and risk getting booted because what you\'re doing isn\'t allowed.
Title:
Post by: tangerine on September 01, 2004, 12:22:42 am
What if the tag was encrypted ? Server would send a randomly generated public key, client would use it to encrypt the tag and send it to server. So the message that client sends to server is different each time it connects. And the tag could be updated with the updater every week.

This one would require cracking skills at machine-code level, hopefuly.
Title:
Post by: jorrit on September 01, 2004, 09:00:20 am
Quote
Originally posted by tangerine
What if the tag was encrypted ? Server would send a randomly generated public key, client would use it to encrypt the tag and send it to server. So the message that client sends to server is different each time it connects. And the tag could be updated with the updater every week.

This one would require cracking skills at machine-code level, hopefuly.


What prevents a client modder to just change this routine too and make sure the right encrypted tag is sent to the server? i.e. the client is Open Source. Any security that depends on the client doing something is no security at all because everything can be faked there. Only the server can do checks but the server can\'t trust ANYTHING the client does because the client can (in theory) fake everything.


Greetings,
Title:
Post by: tangerine on September 01, 2004, 03:05:01 pm
Because the modder doesn\'t have the tag and he can\'t sniff it from the network. He can sniff the encrypted tag, but the encryption key is different for each authentication so he can\'t simply send the sniffed encrypted tag. The real tag is hidden somewhere in compiled binary and you would have to crack it on machine code level.

Client can fake anything, but some fakes are much harder to do than other fakes.
Title:
Post by: Vengeance on September 01, 2004, 06:02:49 pm
Closed source programs and ones with encrypted registration keys are routinely hacked in a matter of days, even without the source.  I am surprised that anyone is still so naive as to think that security by obscurity is even worth considering, especially in an open source context.

As we see what people come up with for mods, we may try to build some kind of plugin architecture that allows people\'s mods to be independent of the main executables, so they are not overwritten by the updates.  It is hard to design that now, however, since we don\'t know what the mods of the future are. :-)  Also it is too much work to create such a system now--gotta get CB released asap!

- Venge
Title:
Post by: tangerine on September 02, 2004, 02:15:07 am
Sure but that requires much higher knowledge level than to be able to build PS and know basic C++. I really doubt that Psybur would be able to hack into admin accounts, or fly around hydlaa, if PS was closed source :)

Commercial games get cracked fast but I don\'t really think that people able to crack machine code will waste their time with cracking PS at this moment. Is PS a target with importantce similar to, say, Windows XP ? But in the long run, it\'s probably pointless.
Title:
Post by: Mage of Darkness on September 02, 2004, 03:43:29 am
hmmmm in other games ive seen them have a protection guard such as gunbound and some other game that i used to play and outa curiousity cause i cant understand computer talk well but couldnt something like that be put onto PS?
Title:
Post by: Seytra on September 02, 2004, 08:47:25 pm
Quote
Originally posted by lynx_lupo
*yawn*  Of course source mods are allowed, see the intro post for further explanation(what good is a mod if none will use it?). It\'s GPL...

This is what I said, actually: the clarification in this very thread is an expansion to the PS license that allows modding which the vanilla PS license on it\'s own in fact would forbid.
I\'ve even explained why it can do this despite all GPLness of the source.

@Encryption and compiled-source tags: This is totally against any GPLness of the source. If you cannot compile the source of PS and have it work exactly like the precompiled binaries, what good is it, really? If you start doing this, it\'s not GPL anymore, because the compiled version includes things that aren\'t released as source, which is required for the GPL. So if that is what the devs wanted, they wouldn\'t (or shouldn\'t) have picked the GPL in the first place. It\'s certainly not what I want.
Furthermore, do you actually think that it is hard to find the tag in the compiled binary? Even if it\'s encrypted in the binary, there will be someone who\'ll find it and spread the word. seriously, if you use this approach, it\'ll be even more damaging to the majority of players because

1) the source isn\'t there, making bugfixing / improvements impossible to be submitted by the players themselves, reducing quality and development speed while adding to dev workoad

2) it\'ll be harder to find flaws in the code that actually allow cheating, therefore a maybe smaller number of cheaters can go undetected for way longer and have more opportunities to cheat. A security flaw that isn\'t being known cannot be fixed. Opensource helps a great deal with that detection. (I don\'t trust closed-source software anymore because of this and malware reasons.)

I strongly believe that closing the source (or part of it) isn\'t the answer to any kind of problem.

Also, for the percieved missing interest of skilled ppl. in cracking PS: it only takes one single skilled person to invest some days (or maybe weeks) in doing this. If there are ppl. cheating just to gain crystals that aren\'t of use and that will have only a minor impact on CB money, don\'t you think that someone will be taking up the chellenge, just because it is there? This is, in fact, the motivation of a lot of crackers. Like climbing mountains: because it\'s there. No need for it, no real benefit other than having done it. There are way more than 100.000 registered accounts, you\'d think there will have been someone with enough knowledge. Maybe they haven\'t cheated because it was no challenge? As has been said: a clientside security algorithm must not rely on obscurity. It must be just as hard to circumvent it for the inventor of it as for someone who doesn\'t have access to any knowlegde of it. This is the only way to have security; everything else is just lying to oneself.
Title:
Post by: tangerine on September 02, 2004, 10:19:57 pm
You could save the time spent on writing your speach because nobody is going to do that. I am not in favor of this too, just speaking about it theoretically.


> a clientside security algorithm must not rely on obscurity.
> It must be just as hard to circumvent it for the inventor of it
>  as for someone who doesn\'t have access to any
> knowlegde of it. This is the only way to have security;
> everything else is just lying to oneself.

Heh, have you even thought about security in open source 3d games ? Securing a game is a bit different from securing a ftp server.  It is just not posible, practically.
Title:
Post by: Seytra on September 02, 2004, 10:38:25 pm
Quote
Originally posted by tangerine
You could save the time spent on writing your speach because nobody is going to do that. I am not in favor of this too, just speaking about it theoretically.

Well, I hope so, but I just wanted to make sure that everyone actually considering it knows what it\'s about IMO. Also, why are you posting theoretical arguments that you do not wish having an argument about?
Quote
Originally posted by tangerine
> a clientside security algorithm must not rely on obscurity.
> It must be just as hard to circumvent it for the inventor of it
>  as for someone who doesn\'t have access to any
> knowlegde of it. This is the only way to have security;
> everything else is just lying to oneself.

Heh, have you even thought about security in open source 3d games ? Securing a game is a bit different from securing a ftp server.  It is just not posible, practically.

Nah, it\'s not entirely different. You just need two brands of security, just as you need with email servers:

1) the classical one: preventing others from accessing restricted things like your account or other data. Other player\'s chars and admin stuff belongs to this. Same as FTP server

2) the SPAM/profiling security: basically automatically spotting unwanted behaviour, not actions, i.e., cheating, exploiting and modding to help with that.

While the first can be addressed by conventional means (encryption and good policies, perfectly possible in opensource), the second one is still in development. Still, there are a number of things that one can do, because cheating always is connected to typical observations: constantly better-than-average performance in a very limited set of things, typically beginning suddenly instead of improving at a natural rate. The system must learn to \"understand\" and \"deduce\". This will be done serverside but can be somewhat augmented (or better: made more easy) by designing the communication protocol appropriately. The client can fake anything, but it still is bound to the laws of the communication protocol. By sending only the info that is exactly required to the client or only allowing certain messages in specific contexts, the protocol can be \"hardened\", removing some opportunities for the cheater. It is, of course, an arms race, but so is every aspect of security. These things are also perfectly possible in opensource AFAICS.
Title:
Post by: Adeli on September 03, 2004, 08:30:37 am
Regardless of what has been done, people will find a way to bypass it. There will be a few \'elite\' people who will be able to crack anything. And as Seytra correctly stated, they do it, just because they can. These \'elites\' are very skilled people and wouldn\'t even think of personal gain as a reward, like a true computer hacker, they challenge systems to beat them, not to mess up people\'s systems. It\'s the idiots that do the damage and give them a bad reputation. No prevention will ever hold up, it is pretty much pointless to include it, as anyone could find a way around anything with enough knowledge... You play multiplayer games, be prepared to deal with cheats... it\'s life...sadly.

I heard someone mention IP ban?? this is a BAD idea, who says they are even using their own IP? or that it\'s Static... mine for example is Dynamic, and I know people who ghost their IP.

It\'s like everything in life... what one creates, another can destroy.
Title:
Post by: theRealGorbulas on September 06, 2004, 11:15:07 am
What\'s going to happen to the stuff that already has been modded. There are a few(not many) mods in the stuff linked to bellow in the sig. Aineko\'s stuff should have been put in a long time ago, but never has been. What mods have been patched in?
Give me a job or something. I had to abandon my user skinning support stuff, because it is too complicated and the code is too unstable(rapid changes). I also couldn\'t tell where to put some code because there aren\'t any skins in CVS, and I couldn\'t even tell if the server was telling the client what skin to use. The user selectable skin stuff might appear after CB is released, but maybe not.
I tried to start my own game, and I got three classes to init, but don\'t know what to do next. That stinks. I should figure out what I\'m doing first or bother someone into remaking Magic Carpet. That\'s a cool game, but it runs a little slow in DosBox.
My kernel is done compiling(again), and now I should have it all setup with Reiser4 and NBD so that I can convert my file system. I will stop writting now.
Title:
Post by: tangerine on September 06, 2004, 04:03:08 pm
> What mods have been patched in?

None I know about. Patching in mods that are adding features that are already in CB makes no sense.
And the CB gui code is entirely different from MB gui code. It was the choice of the mod authors to write code
that will be thrown out later.

CB does not support selectable skins. You have to modify the files.
And expect that next update might overwrite them.
Title:
Post by: tangerine on September 06, 2004, 06:24:25 pm
Your MB mods cannot be simply \"patched\" to CB code. CB uses entirely different widget library than MB. If you want your mods to work with CB, you have to rewrite them for CB.   Nobody will do this for you. And if you want your mods to be included in the official client, you have to ask some dev to get your CB code, review it and eventually commit it into cvs.
Title:
Post by: icebr4kr on September 06, 2004, 07:48:28 pm
Ok, I am glad Talad created this initiative as there is clearly a want for the ability to use non-cheating mods.

It is quite obvious we can\'t detect if the player is using mods, let alone if it is approved or not.  All cheat detection will be done on the server, and the network protocol will not allow the client to gain anything by faking messages (Paladin Jr will help detect speed-hacks).

That basically leaves mods that affect the display of things (something akin to Counter-Strike no-flashbang/smoke cheats) and automating user actions.  How will they be dealt with in an open-source environment?
Title:
Post by: jorrit on September 06, 2004, 09:53:55 pm
Quote
Originally posted by icebr4kr
Ok, I am glad Talad created this initiative as there is clearly a want for the ability to use non-cheating mods.

It is quite obvious we can\'t detect if the player is using mods, let alone if it is approved or not.  All cheat detection will be done on the server, and the network protocol will not allow the client to gain anything by faking messages (Paladin Jr will help detect speed-hacks).

That basically leaves mods that affect the display of things (something akin to Counter-Strike no-flashbang/smoke cheats) and automating user actions.  How will they be dealt with in an open-source environment?


If the modder is careful and tells nobody about his mod then it is not likely we\'ll ever be able to find that out. The only way we might find it out is if we somehow discover that the person is gaining skills (or whatever) faster then is normally possible. However, it is very hard to judge this as we don\'t really know what the upper limit of possible strength/whatever increase is. Of course if the gain is VERY out of proportion then we might possibly find out.

Greetings,
Title:
Post by: theRealGorbulas on September 07, 2004, 07:43:43 am
I never said that I wanted to patch my MB stuff into CB. What do you mean by \"CB does not support selectable skins\"? Will everyone look the same?
Title:
Post by: tangerine on September 07, 2004, 03:12:47 pm
There are files that define how does the GUI look like. There is only one set of these files, not more sets that you can select from. If you want to change he GUI, you have to overwrite the files.
Title: Mod wish & modding 3D/Art?
Post by: Zeraph on September 09, 2004, 02:54:20 am
Actually if I could, I would make a mod that allows you to have one skin for char different from the rest, as of now if you replace a skin of lets say an enki, all enki of the same skin # (1-4) will have that skin. I wish there was a option to load a custom skin for only your own char, but it wouldn?t be uploaded to server or anything, just have the client choose a different image to skin my char only & not every other one with the same skin type.

Also, I would think this is a little vague on 3D/Art mods, if you actually modeled a char made animations & replaced one of the current race?s files would that be cheating? Or if you modeled a weapon & replaced the mesh to make it look cool, it wouldn?t change any skill/attributes of the weapon so it would be allowed right?

I know there is trouble with adding your own levels/modding the existing ones (what a shame). Because I who didn?t have any knowledge of c++ am now going to have to compile the source to test new levels on, after that I can submit them to lww or maybe join the dev team later or something?

It would be nice to have a pre-compiled version of the server client & instructions on how to make Planeshift work from the same computer, sort of a 1 player test version as I have herd it was possible to do without your own server. I wonder if other people can connect to you & you can play 2 players? But that would be extremely boring, you need more people to play this game @ the same time.

* Zeraph Goes to finish compiling the current version of the source *
(I liked @ that world file in cs & the trees look good anyway? )
Title:
Post by: Seytra on September 09, 2004, 03:58:49 am
Quote
Originally posted by Zeraph
It would be nice to have a pre-compiled version of the server client & instructions on how to make Planeshift work from the same computer, sort of a 1 player test version as I have herd it was possible to do without your own server.

It is? If you\'re referring to my post, I seem to have misphrased it: you don\'t need an extra machine to run the server on. You must, however, run the server on some machine. Therefore, you can run the server on the same computer as the client, which is very convenient.
Quote
Originally posted by Zeraph
I wonder if other people can connect to you & you can play 2 players? But that would be extremely boring, you need more people to play this game @ the same time.

You can. It\'s the same server that\'ll be running on any official servers (except the content). You can use it as graphical chatroom on your local LAN party if you want (although this might be illegal by narrowly interpreting the license).
Title:
Post by: theRealGorbulas on September 09, 2004, 09:14:02 am
I want to add the ability to have a custom skin for every character. I have it all planed out. Downloading the custom skin would be optional, and the skins would not be stored on the server. Here (http://planeshift.oodlz.com/wbboard/thread.php?threadid=9380&boardid=23) is more information. I barely started writting it, and then I was gone for a while, and then the CVS code was different all over the place when I returned. I was hoping for mods to coexist peacefully with the official and have all of the changes transparent to servers and unmodded clients. It would be much easier to develop if I could fork and then patch in the mod.