ID:181647
 
I want to recruite more members to join my team, but in order for them to help me out they will need my files.However, i do fear that somebody will take advantage of this and abuse my source.Is there any way i can protect my source?
Search for modular programming on the forums, you get some info on what your looking for.
Don't hand it to anyone you don't trust. It is pretty much that simple. Anyone who is not a programmer has no need to see the code. Artists can design icons without code, and cartographers can use dummy projects(all the icons but only enough code to create the objects to be thrown on the maps).
only give them the bare necesities. For instance, coders dont need icons, and likewise. And you won't need to give somebody coding attacks all of your code, just the necessary variables and stuff.
In response to Danial.Beta (#2)
Danial.Beta wrote:
Don't hand it to anyone you don't trust. It is pretty much that simple. Anyone who is not a programmer has no need to see the code. Artists can design icons without code, and cartographers can use dummy projects(all the icons but only enough code to create the objects to be thrown on the maps).

I wish it was that easy but i dont know anyone on here,so i can i trust them?They can also "claim" to be a programmer and a Artists.
In response to Ngeneration (#4)
Well, then don't trust them. Or you can just not worry about your source being stolen. If what you have created is truly worth playing then people will play your version of the game because it will be the best. Sure, some idiot will leak the source, but it will be out of date quickly enough.

Of course this is coming from an open source proponent. Heck, if you aren't going to make money off the game, why not just put the source out yourself and save the worry?
In response to Danial.Beta (#5)
How anybody here can still believe open-source is a good idea is beyond me.
In response to Danial.Beta (#5)
hmmmm i think i get it now. If i get an coder and he/she codes for me then he/she might not want to release all of their hard work.
In response to Ngeneration (#7)
That can be true, but not at all what I was saying. Truth be told there are only a handful of people who I would trust as far as I could throw them on BYOND, and even fewer that I would trust if I ever met in person. Of course, as others have said, well designed code layout and as I mentioned only giving code to those who need it(actual programmers) is the absolute best you can do.
In response to Garthor (#6)
I like giving people the benefit of the doubt that they may actually be creating something good. I know it's risky, but the stakes aren't that high.
In response to Danial.Beta (#9)
Absolute statements are pretty easy when you don't actually care about being correct.
In response to Garthor (#10)
If I need to give my source to another coder, I obfuscate things they probably shouldn't mess with.

Example:
/*use vertical scrollbar.*/
mob{var{isGreat=0}Login(){if(src.isGreat){world<<"Hey everyone! [src] is great!"}else{world<<"[src] isn't feeling great. :("}}}


This ultimately leaves them clueless and just questioning what this does. Chances are they won't mess with it (if you're working with the right people.)

I also prefer to keep all of my variables in one DM file, and just give that out to the coders who need it.
I answered this question in [link].
Jotdaniel is correct about modular programming.

I learned how to program well myself on BYOND a long time ago, so I have always hired people that could write small addons that I could "plug in" to my game without ever needing to send them any source code.

It's always good to work with people you know and trust - and establish those relationships in the first place. I will always talk to my fantastic developer friend Yota when I need help. He was a player on one of my games, he wanted to help with programming, and ever since then he has helped me on several projects and done some fantastic work with me. I think it makes him happy to work on these projects, and it makes me happy knowing that I have someone trustworthy to work with.

Recently we worked on a project together and he actually had full source code access for the first time in many years - because I trust him a ton now, and I know he won't leak the code.

I think you should try to build strong relationships and friendships first, while you master programming yourself.


~Polatrite~
In response to Kirone (#11)
The programmer isn't worth giving your code to if they can't understand the same level of programming as you or better. No amount of obscuring your work is going to hinder a programmer that's at the same level as you. Chances are they'll know how you're doing what you're doing and see right through it.
In response to Nadrew (#14)
Yeah. For example; I write small libraries/tutorials for this guy who's been making a game. I usually know how he's doing what he's doing, and then I know what I have to do in my library. If I'm helping him out with something that he's doing a totally different method from what I'm doing; he'll send me the bit of programming that includes his method (or explains it).
In response to Nadrew (#14)
Nadrew wrote:
The programmer isn't worth giving your code to if they can't understand the same level of programming as you or better. No amount of obscuring your work is going to hinder a programmer that's at the same level as you. Chances are they'll know how you're doing what you're doing and see right through it.

Unless you know how to do that think that Lummox did to his 4k challenge to your code.
In response to Foomer (#16)
You mean define every word as one or two letters, and in the process create the most confusing source ever?
In response to Garthor (#6)
Did I ever told you, that I loved you?
In response to Kirone (#11)
I'm slowly but surely trying to adopt the belief that everything that can be in a datum, should be in a datum. Each datum is in it's own code file.

For example:
player
parent_type = /mob

var
some_var
some_other_var
final_var

proc
important_proc()
less_important_proc()
proc_of_moderate_importance()
bleh()


Then there's the fun things like a datum to change the mouse pointer to a speech bubble icon when it's over a conservative NPC or a sword icon when over a hostile NPC.