Closed eliasnaur closed 11 years ago
1) The runtime license is simple enough, I think it is easy to understand. You're right that it is not an off the shelf license, but I don't think it has to be.
2+3) I have developed the runtimes for use with Spine. The license enforces the "for use with Spine" part. What would not be fair is if my work was used by others to compete against me. If I wait until this happens, it would be too late to change the license. It is true that OSS and third party runtimes that want to benefit from my runtimes become "encumbered" by my license, but I feel it is fair that if my work is being used then it is being used with Spine.
If you are really using Spine, the license doesn't bother you at all. I guess the part that you don't like is that if you build OSS based on Spine, then anyone using that OSS needs to purchase Spine. The way around this is to build your own, clean room Spine runtime without using code from the official runtimes. The official Spine runtimes are really meant to be used by those who have purchased Spine.
I contribute to a lot of OSS (libgdx, kryo, kryonet, etc): https://github.com/NathanSweet https://code.google.com/u/111140558169510542790/ I'm all for giving my efforts to the programming community, but not everything I do can be free. I've chosen Spine to be a commercial project and I feel the license is necessary to protect it.
Contributions to the official runtimes have been minor thus far. If someone does contribute something more significant, they will need to sign a CLA for the contributions to be merged.
In the future I don't see the community needing to support the official runtimes. That is what I'm here for. :) The effort put into the current 18 official runtimes has been considerable: their design, implementation, and maintenance. It's important to me that Spine works well from the editor all the way through to the runtimes.
Alright. I never intended to bring down your commitment to open source software in general or your right to develop Spine as a commercial project. I bought Spine, I like it and I'm using it to create my next game. I try to argue as a legitimate customer with concerns about the license. Although I appreciate the fact you spend quite some effort to implement the official runtimes, I had the impression that they were created to bootstrap Spine uptake.
I also appreciate your desire to keep the runtimes high quality, but you're just one programmer with 24 hours a day. Do you really intend to spend nontrivial amount on time on the plethora of runtimes indefinitely? Even if you do, you admit the scaling problems of that approach by offering generic runtimes. You rely on third party support to close the (small, but numerous) gaps between some generic every game engine or framework out there and the closest matching generic runtime.
I also never meant to imply that the license, as you intend it, wasn't easy to understand. I argue that the legal ramifications are harder to understand. Did you consult a lawyer specializing in IP rights before you amended the license? I am not a lawyer, but consider a larger game company with many employees. Will everyone need a Spine license to work on a game that includes an official runtime, even though they never use Spine itself?
You say that OSS projects and third party runtimes benefit from your work. Of course! I think that benefits Spine and, indirectly yourself. Do you really want to force a Spine license (or clean room implementation) on every third party tool/engine/game developer wanting to add support for Spine files? In my eyes, you want to allow more widespread use of Spine animations, not limit it. You state that contributions have been minimal so far. Cultivating open source contributions require time and initial effort, and you've only existed for less than a year, let alone seen widespread use.
No worries, I realize I gave more information than was requested. :)
I believe maintaining the runtimes is doable. Most of the work is adding new features, then it is just fixing bugs as they crop up. The generic runtimes are to bootstrap those who use their own, internal runtimes. There are a surprising number of people doing that. It also helps those who use runtimes not yet supported officially.
A company (of any size) needs only one Spine license to use the official runtimes. They also need to properly license based on how many people are actually using Spine.
OSS and 3rd parties are welcome to use the official runtimes, they just need to consider the license. I don't think this is insurmountable and I think Spine's adoption is doing fine.
You compare Spine's runtimes to OSS, but you might consider other, similar software which does not provide the runtime source at all (Unity, SmoothMoves, etc). From this perspective, having the Spine runtime source to edit to your heart's desire is quite convenient.
On Wed, Oct 30, 2013 at 12:50 PM, Nathan Sweet notifications@github.comwrote:
A company (of any size) needs only one Spine license to use the official runtimes.
Ok, but that is not clear to me from the license. A license is a legal document, with different requirements for clarity :) I'm sure there a quite a few larger game companies that would be nice to adopt Spine but that also have a somewhat itchy legal dep.
OSS and 3rd parties are welcome to use the official runtimes, they just need to consider the license. I don't think this is insurmountable and I think Spine's adoption is doing fine.
You created many runtimes with significant effort, but only one such runtime is needed and will usually be a minor part of a given game engine or framework. As soon as an engine developer includes a Spine runtime, the entire engine is limited to being distributed by people owning a Spine license. I think that affects the decision of whether to adopt Spine file support in a negative way.
You'd like to require Spine licenses from the ultimate consumers (game developers), not the (OSS) tooling devs.
You compare Spine's runtimes to OSS, but you might consider other, similar software which does not provide the runtime source at all (Unity, SmoothMoves, etc). From this perspective, having the Spine runtime source to edit to your heart's desire is quite convenient.
With all due respect, Unity is a much larger runtime covering a lot more than the Spine runtimes. And SmoothMoves seems to build upon that.
How much of a Spine runtime is spent on the file format (data structures, parsing, converting to internal representation, possible integration with game engine API) compared to actual work (animation)?
We are happy to answer questions about licensing. It has not yet been an issue.
An engine developer could make the part of their engine that uses Spine a separate module, so users that don't use it are unaffected by the Spine runtime license. EDIT: Spine licensing is now more friendly for OSS developers! http://esotericsoftware.com/blog/Our-new-licensing-explained http://esotericsoftware.com/spine-editor-license http://esotericsoftware.com/spine-runtimes-license
The Spine runtime is very core functionality in many games that use it. Not providing the source is a significant hindrance for integration of any tool, no matter how much value you think the tool provides.
I encourage you to evaluate the official runtimes yourself. They are designed to be low level and flexible enough to handle many use cases.
The official runtimes are still listed under a "Like all the official runtimes, these are open source under the BSD license" introduction on http://esotericsoftware.com/spine-runtimes. I assume that's incorrect?
Fixed, thanks!
I question your definition of "liberal license".
FWIW, it wasn't me who said "liberal". :) The runtimes aren't free (a Spine license grants usage), but at least they are open source. You can see how they work and try them out. This is much better than having to purchase before seeing the code, or worse, closed source where you have to use the libraries as a black box without ever seeing the source (Unity, SmoothMoves, etc).
FWIW, it wasn't me who said "liberal"
Qoth http://esotericsoftware.com/spine-runtimes :
The official runtimes are on github under a liberal license
I think that statement is at least misleading, since it suggests a BSD-like license, which this is not. Yes, I am aware "liberal license" is not a strongly defined term, but I would claim the BSD license is what most people think of when they hear that term. I certainly did.
Personally, I would have liked to see the runtimes licensed under a strong copyleft license, like, say, AGPLv3, with BSD-like terms available for people who paid for a Spine license. That way, you wouldn't have to fear commercial competitors, while still providing a service to the FLOSS community.
Ah, since your comment had no context, I assumed you were responding to the OP, which used the "L" word. I've changed the text on that page, which was leftover to when the license was a lot more like BSD.
Using a copyleft license with separate terms for Spine licensees is an interesting idea. From a business perspective it seems a FOSS competitor to Spine is just as bad as a commercial competitor, possibly worse since we would be literally helping a free alternative so people don't need to license Spine. We also can't match the potential manpower of FOSS developers. The majority of my work is on FOSS, but for Spine I've chosen to make it a business so I can pay my bills. For this particular project I have to do what makes sense for the business. The runtimes were developed to be used with Spine and the license enforces that.
Hello @NathanSweet , actually what I don't get here, is how would you protect the runtimes with the licence (just curiosity) ? since the only role of runtimes is to read a format produced by Spine. suppose there is some software that is able to produce the same format, your runtimes will still allow its usage, without any need to modify/repack the runtimes ...
If another tool outputs Spine's format, the Spine runtimes can certainly be used to load and render the data. This is totally fine, as long as whoever uses the Spine runtimes licenses Spine. The Spine Runtimes license allows use of the runtimes only for personal use. If you want to distribute the runtimes, use them in your apps or otherwise create derivative works then you need permission, which is granted by the Spine license, section 2.
The runtimes are open source. If someone grabs the source from GitHub and uses it in their apps without licensing Spine, that violates the license and is illegal. Nothing stops people from doing that except the law and their honor.
TLDR; anyone who licenses Spine can use the runtimes as they wish, anyone who doesn't, can't.
I don't think the benefits of the recent requirement of purchasing a Spine license outweighs the negative.
In short, have faith in your ability to build and maintaining an excellent tool and keep the runtimes clean and simple licensed. If you really want to complicate the licensing for little gain, do it when you're already industry standard not when Spine is still gaining traction.