Someone pick my license!

Hey guys, I’m trying to find a software license for Retro-Pixel Castles that suits my needs, and quite honestly I can’t find one that really works. So I was wondering if some of you license gurus can help me out.

License requirements:

  • NOT Open Source, just available source.
  • You may use my source code or other resources for educational purposes as you please. But, you may not distribute the source code in your own projects, retail or otherwise.
  • You may not redistribute any of the game resources (Art, maps, source code, etc)
  • Exception to the above, you may only distribute modified pieces of the source or the resources if it is for the intent is in good faith to modify Retro-Pixel Castles for other’s to use.

Any ideas on a good license that covers this reasonably? Basically the idea here is I only want people using the code to teach themselves some coding or to share their modifications of RPC. But protect myself from people trying to ripoff my source and make/sell an RPC clone. :stuck_out_tongue:

I would look here or here.

I think this one would be your best bet!

Or you could write your own license of course :wink:

Hope that helps a bit :slight_smile:

From a pragmatic standpoint any license is going to end-up being an “honor system”. You’re unlikely to catch someone violating and if you do you’re pretty much stuck sending a strongly worded cease-and-desist e-mail unless you want to spend a ton of cash. Really it sounds like you need two licences otherwise it’s going to end up being self contracting and void.

Yeah, this is going to be pretty hard to enforce- where do you draw the line between somebody learning from your code and then using that knowledge in their own games? How do you plan on enforcing that distinction?

Keep in mind that Creative Commons sounds like what you’re looking for, but you aren’t really supposed to use it for software: https://wiki.creativecommons.org/Frequently_Asked_Questions#Can_I_apply_a_Creative_Commons_license_to_software.3F

Using Creative Commons for the artwork might not be a bad idea though.

Going open source can be awesome, but it can also be a giant hassle full of paranoia. Maybe it would be better to release the code in chunks as tutorials on how to do certain things instead of releasing the whole shebang at once?

There is a very thin line between these 2 here, it makes it very difficult to deal with.

Honestly, I would find a licence that restricts people from even viewing the code (these are in abundance) and then if you want people to do things such as modding, make an API and make that open source or whatever.

But at the end of the day, if someone wants to get your code they are only 3 clicks away from getting it. So don’t panic as much.

I wouldn’t bother with publishing sources.
No offense, but who is crazy enough trying to understand the huge game codebase of someone else anyway ?
And preparing chunks of code for teaching eats a lot of time, which you could better spend for your game. :wink:

Too true. I can barely understand my own code, I’m not going to start looking at somebody else’s!

If anything, open sourcing an indie-game’s codebase is at best used for marketing and improving your public image. Crank up the goodwill. Like a pro.

Honestly? I wouldn’t even bother enforcing it. I (as a person) don’t care what so ever if someone uses parts of my code to make a game, even if they direct C/P’ed entire methods. If the intention is in good faith/honest. Have fun!

The only part I want to protect myself is from the greedy arsehats who would just be after a quick buck and blatantly steal the entire source code, slap some new graphics on it and call it their own.

But if someone came around and said “wow, I really like this pathfinding code!” and used it for their game with little to no editing, I wouldn’t care in the slightest. But sadly, a license has to be more stern than my actual philosophies, closing the gap for those gray areas.

To be totally honest, I personally don’t care what anyone does with any of my code or art assets, as long as it’s intention is in good faith to just make some fun games and not just trying to rip me off and make money. :slight_smile:

Get out of my head! :stuck_out_tongue:

What you’re saying hits pretty close to home. In fact, here’s a thread I started a few months ago asking the same types of questions: http://www.java-gaming.org/topics/open-source-licenses/34043/msg/320783/view.html

I run a little website called Static Void Games that consists of tutorials that teach novices how to program using game development, as well as an uploader that hosts games for people who don’t want to bother with that part of things. It’s got member registration, blogs, comments, everything you’d expect from a user-driven website.

Long story short, I decided to open-source the entire thing, half as an educational resource for people who want to learn how to build their own JavaEE websites, and half in the hopes that some of our members might start contributing to the project.

That left me with the terrifying decision of how to open-source my code. And I was exactly like you: I wanted to encourage people to learn from my code and even add to it or create honest derivative works from it, but I didn’t want to see somebody take the entire thing, slap another logo on it, and use shady SEO tactics to get ad revenue from my content.

The problem is, there isn’t any way to distinguish somebody with good intentions from somebody with bad intentions. How do you enforce something like that? What’s stopping somebody from saying “oh, I didn’t realize this was bad, my intentions are good”?

That’s why I eventually settled on the GNU GPL license: it’s a copyleft license, which means that anything that uses my code must also be open-source. It’s not optimal, but I think it’s the closest thing to what we were looking for.

But, if I’m being honest, there is still very little stopping somebody from doing exactly what I wanted to prevent.

However, since you’re releasing a client-side game, your decision is pretty much made for you: there is already nothing stopping the badguys from stealing your code and using it in nefarious ways. So your code is automatically “open-source” in that regard: people who would decompile a game and claim it as their own aren’t the type of people who would be stopped by a restrictive open-source license. I think as creators we’re a little more paranoid about this than we need to be: after all, how many people have decompiled Minecraft and tried to claim it as their own? (I think the answer to that is zero.)

So your only decision is how you want to release your code to the honest people who might use it to learn. But the sad answer to that is if all you’re doing is releasing the code, it really doesn’t matter what open-source license you use, since people trying to learn how to implement pathfinding aren’t going to trudge through your code just to find the piece they care about. If you want your code to serve as an educational tool, you’ll have to write tutorials around specific parts of the code you’re hoping people find interesting.

So you’ve got some options:

[tr][td]Option[/td][td]Can badguys steal my source?[/td][td]Will goodguys read my source?[/td][/tr]
[tr][td]Don’t release source[/td][td]Yup.[/td][td]Nope.[/td][/tr]
[tr][td]Release source under some open-source license[/td][td]Yup.[/td][td]Nope.[/td][/tr]
[tr][td]Release a series of tutorials about your source[/td][td]Yup.[/td][td]Maybe.[/td][/tr]

So it’s up to you: if all you want to do is say you released your source, then it doesn’t really matter. Badguys can get to your source no matter what you do, and goodguys won’t bother looking through your source. If you actually want people to learn from your source, then you’ll have to write some tutorials.

Edit: For the curious, here is my source: https://github.com/KevinWorkman/StaticVoidGames

I agree with KevinWorkman, whatever the license you choose, if someone doesn’t want to respect your right of paternity (right to be identified as the author), how can you expect her/him to respect a restrictive license?

I read the source code of others very often, even when they don’t provide any separate documentation. However, I have to admit that most of the developers don’t as far as I know. I have two concrete examples:

  • (JogAmp’s) Ardor3D (Continuation)
  • Truly Unusual Experience of Revolution®

The ancestor of the former has almost no separate documentation. The former only has a few pages in a wiki and I’ve been writing a huge tutorial about it (not released yet). It has been a problem since the very beginning of the project. Only a very few people use it and I really think that the main reason is the lack of documentation despite the fact that its source code is under an permissive open source license.

The source code of the latter has been publicly available since November 2006. Despite the absence of documentation (I don’t speak about the documentation in the source code) for years, tens of students read my source code, it was used for years as a concrete use case of JOGL 1 by the Regional University of Blumenau (Brazil). An Italian student used my source code for years too. I have done my best to ease the use of my project but it’s not very efficient without a real documentation.

I’m surprised to see some developers who spend tons of time in using a search engine instead of looking at the source code when something doesn’t work as expected.

Rayvolution, I advise you to release your source code and to write some tutorials about it if you have enough time to do it correctly. In my humble opinion, the source code that lasts is the source code in which you like spending your time, like a couple. Preparing your source code to be released shouldn’t be an effort only for others, it should be done for you too. If someone else can’t read it, you won’t be able to read it too after a stop of several months.

Finally, I have used tons of open source libraries, I have benefited of a few tricks and advises, I think that it’s fair to give back to the community. You can write good open source games :slight_smile: Writing better code is a good thing for you and for the others. I don’t see open sourcing projects as a waste of time except if your code is so crappy that you accept putting it into the trash bin extremely soon.