Dev meeting minutes 2010-05-23
Re: Dev meeting minutes 2010-05-23
From what I can gather in GPLv3 there are no exclusions for AIs/related.
Neddie, it could be a bit problematic, since by GPL anyone who submits a single line to the spring repo can automatically sue any AI developer, indifferent to whatever contracts are signed between him and the other spring devs.
Hence a simple word from devs on the AI case that "release it after your degree, or get in trouble" is as sufficient as signing official contracts.
Neddie, it could be a bit problematic, since by GPL anyone who submits a single line to the spring repo can automatically sue any AI developer, indifferent to whatever contracts are signed between him and the other spring devs.
Hence a simple word from devs on the AI case that "release it after your degree, or get in trouble" is as sufficient as signing official contracts.
Re: Dev meeting minutes 2010-05-23
There are indeed no exclusions in v3, and no explicit exclusions in v2. I treat Spring as v2 because Spring was/is licensed as v2 or later, while v3 is written in an invasive manner and I have doubts about the legal validity of certain elements particularly across political borders.
Yes, it might be problematic, but the whole copyleft/copyright system is problematic. It is a provisional suggestion intended to establish an internal standard of behaviour which favours all parties. It is in no way meant to be legally binding, just to offer some informal room for academic research to occur given their requirements.
Yes, it might be problematic, but the whole copyleft/copyright system is problematic. It is a provisional suggestion intended to establish an internal standard of behaviour which favours all parties. It is in no way meant to be legally binding, just to offer some informal room for academic research to occur given their requirements.
Re: Dev meeting minutes 2010-05-23
More like, "when SJ and the SYs decided to change the license, the license changed, period, and all derivative works thereafter were affected".I suppose "since its release to the community" wasn't unambiguous.
Use a different engine then.I agree with open source AIs, but I disagree with forcing it upon AI developers.
We have been pretty nice about ignoring this issue in re: AI developers, but if we're talking about what's legal, that's where things stand. It's an even less tenuous situation than with Lua algorithmic development on this engine.
There is no such exemption in the source, and I would not agree to modifying the license in that way. If game developers are required to release all their code under the GPL, it certainly stands to reason that academic people who stand to benefit rather substantially from their research projects using this engine must share their work.That may be, but the GPL (irrespective of how you view it) as it currently applies to Spring in lieu of any official written exemption from its copyright holders does not offer people a choice in open-sourcing their code if they want to distribute anything.
This point of "oh, but I'm not supposed to let it out in public" needs further clarification.
The only reasons I can think of somebody advancing that argument are:
A. You never intended to release your source, because your advisors have informed you it has commercial value.
B. Your source makes use of materials covered by prior-art patent or copyrights which makes it functionally incompatible with the GPL. Not really likely that you've actually done that research.
I don't believe that your profs don't want your code to be public because of academic reasons. That doesn't make any sense to me. If that's really the case, I'd like to hear from somebody around here, preferably not AF, why this would be done- I've never heard of a project requiring that the student's code not be available like that, except in cases where the code may see commercial applications... which would be a flagrant violation of the GPL at this point.
So a bit of explanation as to why you're doing this might be warranted.
And I'm very inclined to check all the other projects out, to ascertain whether they're releasing their source with the libraries and project files intact, just to be fair- it's not cool for people to leech off the engine to further their careers while disregarding the license rules that we spent so much time, energy and research developing, especially when the core engine developers are absolutely required to give all their work away to the public forever.
Oh, and just to add a little additional controversy, let me add one other point: if we no longer allowed compiled AIs, and forced AI developers to use Lua like everybody else, this would be a non-issue, other than obstructionism and attempts to obfuscate. The only compiled AIs would, a priori, be off the reservation, on unofficial distributions of the engine, and would not see a wide audience.
There is no compelling reason why AIs should be in a compiled language, especially if LuaJIT was in place, and it's been a big issue ever since Krogothe sat on his source for the better part of a year.
Re: Dev meeting minutes 2010-05-23
oh yeah that's not shaky ground hereif we're talking about what's legal
unless, just maybe, you want more speed and flexibility than lua can offer.Argh wrote:There is no compelling reason why AIs should be in a compiled language
Re: Dev meeting minutes 2010-05-23
There is still some gray-area, to be sure, but not nearly enough for AIs to have any room to maneuver, given how they operate.oh yeah that's not shaky ground here
LuaJIT's speed isn't that terrible, and I have a hard time buying the "flexibility" argument, given what it can do- there's practically nothing that you can do with a compiled AI that can't be done with Lua atm, and if there is, it could be addressed.unless, just maybe, you want more speed and flexibility than lua can offer.
Anyhow, "we need speed" is not a compelling argument. I have an AI that can play P.U.R.E. at a basic level, and it hardly uses any CPU at all.
Re: Dev meeting minutes 2010-05-23
right. could be addressed by allowing lua to load compiled code.there's practically nothing that you can do with a compiled AI that can't be done with Lua atm, and if there is, it could be addressed.
specific case to general rule."we need speed" is not a compelling argument. I have an AI that can play P.U.R.E. at a basic level, and it hardly uses any CPU at all.
Re: Dev meeting minutes 2010-05-23
Which would make this situation worse, in the future, not better- it would create an instant arms race and raise the stakes considerably. Consider the reaction if we went this way, and I took most of my new code private and did not release instructions or source, for example. I do not think that that would be a good development for this engine, unless we'd really like to see it go the OGRE route, where the engine's free but most of the cool toys you actually need to make a good game are under expensive licensescould be addressed by allowing lua to load compiled code.

And there is certainly no "general rule" that says AIs need to be CPU hogs in order to operate, lol. That's probably the silliest thing I've read here in awhile

Aaaaanyhow.... all of this is beside the point. I think it's fair to say that none of us would like to derail AF's education or whatever, so we can probably reach a compromise, such as agreeing that unless we reach July and nothing happens in terms of sourcecode, that we quietly ignore it.
I'm just pointing out that this situation is largely caused by an engineering issue, and could be mitigated with an engineering solution.
Re: Dev meeting minutes 2010-05-23
entirely my point.Argh wrote:Which would make this situation worse, in the future, not betteraegis wrote:could be addressed by allowing lua to load compiled code.
Argh wrote:"we need speed" is not a compelling argument. I have an AI that can play P.U.R.E. at a basic level, and it hardly uses any CPU at all.
specific case to general rule - a single example is not equivalent to law.Argh wrote:And there is certainly no "general rule" that says AIs need to be CPU hogs in order to operate, lol. That's probably the silliest thing I've read here in awhile
Re: Dev meeting minutes 2010-05-23
What kind of reverse logic is that? Are you arguing for, or against, more inclusion of private code via libraries and other linkage? At least represent a consistent POV here, whether you want to play Devil's advocate or not.entirely my point
I do not see a large advantage by allowing more private code, or situations where it may arise- I don't think we have the audience for it, and it would turn the engine into a mere funhouse for coders to show off, instead of a practical engine to build games with, and it would skirt the intent of the GPL as applied to the engine. Therefore I do not support this.
Let me restate, then. I am stating that your argument about speed is largely fatuous.a single example is not equivalent to law
The smallish differential between LuaJIT and C++ is not a critical one for this purpose, as an AI should never require enough overhead for that to matter. No software engineer worth the title should be building an AI with such poor tolerances, as there are many other things competing for the available clock cycles. That's just common sense.
Re: Dev meeting minutes 2010-05-23
- Lua is a compiled language, all your points on this case are moot, the VM just happens to compile anything it's fed that hasn't already been compiled. I suggest you download a standalone lua install and look carefully at luac.exe as this executable should not exist according to your world view of what lua is.
Lua is implemented as a compiled, bytecode based language - Not everybody is interested in making bog standard AIs that play the game okayish. Some aren't even interested in playing the game as their primary goal.
- How would I SSH to a remote server and submit a slew of statistics in pure lua?
- How would I use a complicated library with extensive headers and APIs based in C for which, using the C dll exports was nontrivial?
- How would I demonstrate proprietary or patented licensed technology using spring in an AI the likes of which is unique and unseen elsewhere?
Plagiarism & cheating are the primary concerns. I had other students in my year doing other AI related work. What was to stop them dipping into Shard code to gain a foothold, leaving both of us infront of a board of examiners trying to determine who stole from who or whether we colluded?
We here in the spring community are in a unique position to foster a productive AI community. We can very easily chase away a veritable gold mine of developers and potential contributors by marching on the AI forums with big flaming GPL troll banners, rather than having the spring engine and the AIs in it being cited in AI research journals and taught in university degrees, because the preferred method of AI development, was enforced as the only method allowed. This is why the AIs are special case, and require special consideration for special circumstances.
KAI, AAI, OTAI, NTai, JCAI where all closed source early on in their lifetimes, primarily for competitive reasons. If this kind of hard line stance had been taken back then, I'm sure development of half of those AIs would have ceased, and numerous other AIs would never have been started because of the unfriendly stance. Instead under SY management, the AI developers chose to open source in goodwill, not under threat of GPL induced distribution bans and thread locks.
Re: Dev meeting minutes 2010-05-23
Well, hmm.We here in the spring community are in a unique position to foster a productive AI community. We can very easily chase away a veritable gold mine of developers and potential contributors by marching on the AI forums with big flaming GPL troll banners, rather than having the spring engine and the AIs in it being cited in AI research journals and taught in university degrees, because the preferred method of AI development, was enforced as the only method allowed. This is why the AIs are special case, and require special consideration for special circumstances.
Honestly, AF, I'm inclined to let you have a pass on all this, really.
Most of my arguments are meant more to cover the issues and to clarify what I think the GPL means here than to deal with your specific case. In short, I am in favor of "special consideration for special circumstances"- i.e., yours, and whoever else is currently not releasing their source.
However, since you've brought it up...
Basically, that whole paragraph is the height of hypocrisy.
Game developers aren't allowed to play by those rules. The engine forbids it, short of taking a build of Spring private and re-labeling it (which has probably happened at least once, but I don't have iron-clad proof).
And we have had to put up with the "GPL trolls" (including yourself, in case you've forgotten your role in the first great debate), and after much discussion and argument and references to higher authority, we've arrived at what's actually legal. I should also note that since then, further cases involving the GPL have given the arguments as presented greater weight, i.e., developing libraries of these kinds is definitely linking and creates a derivative work.
In short, no, I don't think we're allowed to give all you AI folks a pass on this stuff in general, for the sake of letting you practice your craft and then letting you take your algorithms elsewhere. That is contrary to the concept behind Spring. And of course, I'm the last guy here who will lose sleep at the thought of "losing the AI developers" due to this, because generally speaking, the AI community here has been very much less-than-helpful when it comes to games that aren't OTA or close clones.
You won't get an ounce of sympathy advancing that argument with me, because personally I think it creates a very dysfunctional and parasitic relationship- the only AIs available are for OTA games, therefore newbies can only play SP with AIs meant for OTA games, therefore they do not try other games that only offer MP. This has all changed a lot over the last year and a half- S'44's AI, zxswg's AI, the Chicken code, etc., have broken this cycle forever. In the process, though, they've also demonstrated how largely irrelevant the "AI development community" is to the needs of the rest of the community... and how much you folks depend on Spring continuing to rely on OTA as an audience draw.
While I've generally let this sleeping dog lie, because the AI developers have largely (and sadly) been entirely irrelevant to what I do, it still isn't right, and your expectation is not realistic. If I have to give away *my* algorithms, you certainly must... it's how things work, when dealing with the GPL. It is very interesting that now that you feel like you have something valuable, you're suddenly singing from a very different songbook though

I am willing to make an exception here and now, just as we've generally left well enough alone in the past, but I think that we require changes in the future to avoid this situation recurring. Spring is not a playground. It is either a public resource that comes with responsibilities to not abuse it, or it is not available to you folks. You don't get a free pass- that's a rabbit-hole that's neither legal, nor will it go anywhere healthy.
Re: Dev meeting minutes 2010-05-23
Argh wrote:Aaaaanyhow.... all of this is beside the point. I think it's fair to say that none of us would like to derail AF's education or whatever, so we can probably reach a compromise, such as agreeing that unless we reach July and nothing happens in terms of sourcecode, that we quietly ignore it.
Kloot wrote: so for my part an order to comply by the end of July (2010) is acceptable.
Tobi wrote: I agree with Kloot here.
I don't agree with this. Anyone new in the last 2-3 years or so would look at the license of Spring and conclude AIs have to be GPL too. So while this can be brought up as an argument to make an exemption, I don't think it applies to the past 2-3 years. Besides, GPLed code isn't mutually exclusive with academic environments, nor is it required to release code. (just don't release binaries if you don't release code)AF wrote: We here in the spring community are in a unique position to foster a productive AI community. We can very easily chase away a veritable gold mine of developers and potential contributors by marching on the AI forums with big flaming GPL troll banners, rather than having the spring engine and the AIs in it being cited in AI research journals and taught in university degrees, because the preferred method of AI development, was enforced as the only method allowed. This is why the AIs are special case, and require special consideration for special circumstances.
Re: Dev meeting minutes 2010-05-23
Just a random question, the GPL says all code that links into GPL code must have source available or also be GPL? If the former, what's to stop some one from just making an open source gateway that links into the AI API and then calls stuff in a separate binary? Would the answer differ from GPL v2 to v3?
Secondly a few observations from what I've read.
It seems to me that while open source is a great thing, spring has benefited a lot from the closed source development of the various spring ai's over the years. Players benefit from the multitudes of AI's, though I wouldn't call any of them ideal yet.
I know plagiarism is a huge problem in CS for academic institutions. So what would normally happen is students would develop the code internally and then never release it, and as players we'd never see what might be a really fun opponent to play.
There may be trade secret methods or patents that prevent the release of source code that someone might have written to make a nice spring AI, and again we wouldn't see it.
Given time, in an open source environment most closed parts get opened up anyway, usually when they're good and ready to be shown to the world, not when they're young and crude, and likely to be ignored for being as such.
It seems to me that the gpl may not be the perfect license for spring if it won't allow, from my point of view, a nearly completely separate piece of code from also being open sourced.
Correct me if I'm wrong, but ai's interface through an api, and under linux, programs also interface through api's, but they can still release proprietary programs for linux, can't they? So what's the difference?
Secondly a few observations from what I've read.
It seems to me that while open source is a great thing, spring has benefited a lot from the closed source development of the various spring ai's over the years. Players benefit from the multitudes of AI's, though I wouldn't call any of them ideal yet.
I know plagiarism is a huge problem in CS for academic institutions. So what would normally happen is students would develop the code internally and then never release it, and as players we'd never see what might be a really fun opponent to play.
There may be trade secret methods or patents that prevent the release of source code that someone might have written to make a nice spring AI, and again we wouldn't see it.
Given time, in an open source environment most closed parts get opened up anyway, usually when they're good and ready to be shown to the world, not when they're young and crude, and likely to be ignored for being as such.
It seems to me that the gpl may not be the perfect license for spring if it won't allow, from my point of view, a nearly completely separate piece of code from also being open sourced.
Correct me if I'm wrong, but ai's interface through an api, and under linux, programs also interface through api's, but they can still release proprietary programs for linux, can't they? So what's the difference?
Re: Dev meeting minutes 2010-05-23
That's unfortunate, but not a reason to ignore our FOSS stance. The GPL specifically will cause us to lose X and gain Y peripheral projects, but without knowing either X or Y such speculation is pointless.I know plagiarism is a huge problem in CS for academic institutions. So what would normally happen is students would develop the code internally and then never release it, and as players we'd never see what might be a really fun opponent to play.
There may be trade secret methods or patents that prevent the release of source code that someone might have written to make a nice spring AI, and again we wouldn't see it.
Again: by taking it to another engine.* How would I demonstrate proprietary or patented licensed technology using spring in an AI the likes of which is unique and unseen elsewhere?
Don't publically release the source until after your examiners are done examining it (and that of everyone else). Don't publically release the binary until you can release the source free of your local academic restrictions.As for academic restrictions?
Plagiarism & cheating are the primary concerns. I had other students in my year doing other AI related work. What was to stop them dipping into Shard code to gain a foothold, leaving both of us infront of a board of examiners trying to determine who stole from who or whether we colluded?
That applies to the engine itself just as much. And since it is Spring that ultimately enables these AI's being used for research purposes and as graduation projects in the first place, asking for their contribution is not unreasonable. (This is coming from someone who has invested thousands of hours in Spring and lives in an academic AI environment himself.)We here in the spring community are in a unique position to foster a productive AI community. We can very easily chase away a veritable gold mine of developers and potential contributors by marching on the AI forums with big flaming GPL troll banners, rather than having the spring engine and the AIs in it being cited in AI research journals and taught in university degrees, because the preferred method of AI development, was enforced as the only method allowed. This is why the AIs are special case, and require special consideration for special circumstances.
Perhaps. There are enough AI's being started these days under the implicit GPL banner to make this at least a shaky assumption.KAI, AAI, OTAI, NTai, JCAI where all closed source early on in their lifetimes, primarily for competitive reasons. If this kind of hard line stance had been taken back then, I'm sure development of half of those AIs would have ceased, and numerous other AIs would never have been started because of the unfriendly stance. Instead under SY management, the AI developers chose to open source in goodwill, not under threat of GPL induced distribution bans and thread locks.
Re: Dev meeting minutes 2010-05-23
In defense of AF, I recall there was an AI exception indeed. It wasn't even AF who demanded it. It was jcnossen, because jcnossen wanted to prevent AF from stealing his code. See this thread:
http://springrts.com/phpbb/viewtopic.php?f=15&t=3111
Uh, but there SJ actually post jcnossen is not right, so I'm a bit confused. Still, jcnossen was project lead between SJ and Tobi, it must be under jcnossen's reign that the AI exemption from GPL must have been added. I can't find posts about it, I only have my memory.

Almost all Global AIs are for *A games only, while other Spring games were left orphan (until Lua became used to build game/mod specific AI and chicken-like computer opponent). Though it's not fair to bring that against AF, since his NTai was the one exception to that rule, as it was a C++ AI configurable enough to play some non *A games. Also, there is no zwzsg's AI, it's KDR_11k's AI (that I expanded a bit).
http://springrts.com/phpbb/viewtopic.php?f=15&t=3111
Uh, but there SJ actually post jcnossen is not right, so I'm a bit confused. Still, jcnossen was project lead between SJ and Tobi, it must be under jcnossen's reign that the AI exemption from GPL must have been added. I can't find posts about it, I only have my memory.
Spring source was released as GPL several monthes after the first binaries were made public and got played. What do you mean, "since its release to the community"? Because if you mean the open source community, then your statment is tautologic. If you mean the TA fans community, or even the internet community, your statement is wrong.Kloot wrote:I suppose "since its release to the community" wasn't unambiguous.AF wrote:Spring was not released as open sourced originally, nor was it originally GPL. This came after the release.
I agree with this whole paragraph from Argh.Argh wrote:You won't get an ounce of sympathy advancing that argument with me, because personally I think it creates a very dysfunctional and parasitic relationship- the only AIs available are for OTA games, therefore newbies can only play SP with AIs meant for OTA games, therefore they do not try other games that only offer MP. This has all changed a lot over the last year and a half- S'44's AI, zxswg's AI, the Chicken code, etc., have broken this cycle forever. In the process, though, they've also demonstrated how largely irrelevant the "AI development community" is to the needs of the rest of the community... and how much you folks depend on Spring continuing to rely on OTA as an audience draw.

Almost all Global AIs are for *A games only, while other Spring games were left orphan (until Lua became used to build game/mod specific AI and chicken-like computer opponent). Though it's not fair to bring that against AF, since his NTai was the one exception to that rule, as it was a C++ AI configurable enough to play some non *A games. Also, there is no zwzsg's AI, it's KDR_11k's AI (that I expanded a bit).
I bundled KP with NTai (which I assumed was open source), but I never bundled KP with Shard (though it's only because I haven't yet managed to get Shard to play correctly, not because of open source ideology).AF wrote:And in the meantime, what do you intend to do about the likes of EvolutionRTS and Kernel Panic? EvoRTS uses Shard as its official AI, and Kernel Panic bundles versions with some of the newer installers.
Re: Dev meeting minutes 2010-05-23
Y'know, I remembered this coming up, but I wasn't going to bring it up, because there AF was arguing against precisely what he wants us to let him do here, lol.Uh, but there SJ actually post jcnossen is not right, so I'm a bit confused. Still, jcnossen was project lead between SJ and Tobi, it must be under jcnossen's reign
Anyhow, there is no such exemption (which has to be a separate document and other requirements must be met, one project member can't just arbitrarily say, "there is now an exemption"- even SJ gave that right up the minute other SY's contributed). And there is no "king" who gets to decide these things, the license doesn't allow for that at all. All that stuff is administrative and org details, it has no bearing on the license.
SJ's comment later was pretty much dead-on about linking and dependence on the interface, insofar as I understand that clause. It is quite clear that he understood what he was getting everybody into, and his intent is certainly clear.
Re: Dev meeting minutes 2010-05-23
AF there is a simple solution, since spring is GPLv2 at the moment, you can "not" release the source if your binaries are not released.
The loophole here is that you can use your "to be GPLed" code on your own machine, with only transmitting the commands from the AI to the other players (i.e. server-code which is not released publicly, can be closed source, even if the engine is GPL).
This loophole is addressed in GPLv3 (you cant do that there), but due to V2 nature of spring, if you want some testing, go on and connect to the autohost with your friends, and test it there, without releasing the binaries.
As of the remainder of the question about GPL, there must be no exemptions (neddie's proposal is completely fine IMO) to AI code in long term, and the only reason why some of them were closed, is NOT because devs allowed it, its because they werent bothered to look into it and actually fix the violation.
The loophole here is that you can use your "to be GPLed" code on your own machine, with only transmitting the commands from the AI to the other players (i.e. server-code which is not released publicly, can be closed source, even if the engine is GPL).
This loophole is addressed in GPLv3 (you cant do that there), but due to V2 nature of spring, if you want some testing, go on and connect to the autohost with your friends, and test it there, without releasing the binaries.
As of the remainder of the question about GPL, there must be no exemptions (neddie's proposal is completely fine IMO) to AI code in long term, and the only reason why some of them were closed, is NOT because devs allowed it, its because they werent bothered to look into it and actually fix the violation.
Re: Dev meeting minutes 2010-05-23
Im aware of the mechanics of GPL, and if the exemption was contested at the time, I would not have made Shard releases, instead I thought ti was okay given the exemption and the widespread acceptance of it by the community. We did fine allowing closed AIs, in that every single AI eventually open sourced itself and got bundled into the main spring svn repo under an opensource license.
Move to another engine
Why do you think people chose spring in the first place? You cant develop an AI infrastructure to encourage AI development on this engine, then tell people to go elsewhere as if its nothing when it doesn't suite you.
We didnt help non TA people
LIES
I went to great lengths to support non TA games. I was the first to support nanoblobz, the first native AI to play kernel panic (to varying degrees of success albeit), the first AI developer to make a serious attempt at EvolutionRTS, there are plenty of non TA games that NTai and Shard support, not by coincidence but by intention.
As I've said before, your referring to the time when the games of this engine deviated from TA more via lua gadgets, and the AIs did not follow. This is not because you were being ignored. If you look closely, what development there was, was almost entirely maintenance to keep the AIs from falling apart. We were struggling to support the games we already supported, and had no means of supporting the new content. When we did have the means, it was not documented, and we lacked the time and resources to explore it.
Now we have AIs like Shard and Imbaczeks kernel panic AI, and others, that focus on nonTA games. For these AIs, the game they excel best at is not a TA based game. Sure Shard supports TA based games, but its support is incomplete, whereas EvolutionRTS support is light years ahead, and I'm sure if you ask foreboding angel he'll testify that I've spent a lot of time with him making sure all the bells and whistles work.
Don't release binaries until your Academia allows releasing source
This is a fair request, but its a problematic one. As part of any dissertation of research paper, it becomes necessary to prove your point, or that what you've built actually works.
In my case doing this was helped greatly by questionnaires I asked people to fill out, and cooperation which would not have been possible if I had not released binaries. Doing it in private would have taken a lot longer, with fewer results, and a lot more effort necessary. There is also the benefit to those who now have a means of providing AI to their games, which they would have been waiting another 6 months for, and the development advantages of having a single player mode it provides.
Shard & GPL
All of this thread assumes that Shard is linking to GPL spring headers.
However, Shard does not link directly to spring code itself, shard links to the C API. This API was not written by spring developers, it was autogenerated by AWK. Under the GPL, anything that links to GPL code must be GPL compatible. But, anything generated by GPL code, 'output' does not become infected via the copy left license. Hence why all content generated by AWK is not GPL'ed, and why content built under Linux doesn't immediatly need to be opensourced.
This still leaves the handful of files at the bottom of the chain for which the C API headers inevitably pull constants and a few other small but vital components.
To which I say, write an AI that acts as a proxy to which closed source AIs can communicate with without linking via standard means such as sockets or pipes. Something I would be interested in developing regardless of Shards status as opensource or closed source purely out of principle.
Move to another engine
Why do you think people chose spring in the first place? You cant develop an AI infrastructure to encourage AI development on this engine, then tell people to go elsewhere as if its nothing when it doesn't suite you.
We didnt help non TA people
LIES
I went to great lengths to support non TA games. I was the first to support nanoblobz, the first native AI to play kernel panic (to varying degrees of success albeit), the first AI developer to make a serious attempt at EvolutionRTS, there are plenty of non TA games that NTai and Shard support, not by coincidence but by intention.
As I've said before, your referring to the time when the games of this engine deviated from TA more via lua gadgets, and the AIs did not follow. This is not because you were being ignored. If you look closely, what development there was, was almost entirely maintenance to keep the AIs from falling apart. We were struggling to support the games we already supported, and had no means of supporting the new content. When we did have the means, it was not documented, and we lacked the time and resources to explore it.
Now we have AIs like Shard and Imbaczeks kernel panic AI, and others, that focus on nonTA games. For these AIs, the game they excel best at is not a TA based game. Sure Shard supports TA based games, but its support is incomplete, whereas EvolutionRTS support is light years ahead, and I'm sure if you ask foreboding angel he'll testify that I've spent a lot of time with him making sure all the bells and whistles work.
Don't release binaries until your Academia allows releasing source
This is a fair request, but its a problematic one. As part of any dissertation of research paper, it becomes necessary to prove your point, or that what you've built actually works.
In my case doing this was helped greatly by questionnaires I asked people to fill out, and cooperation which would not have been possible if I had not released binaries. Doing it in private would have taken a lot longer, with fewer results, and a lot more effort necessary. There is also the benefit to those who now have a means of providing AI to their games, which they would have been waiting another 6 months for, and the development advantages of having a single player mode it provides.
Shard & GPL
All of this thread assumes that Shard is linking to GPL spring headers.
However, Shard does not link directly to spring code itself, shard links to the C API. This API was not written by spring developers, it was autogenerated by AWK. Under the GPL, anything that links to GPL code must be GPL compatible. But, anything generated by GPL code, 'output' does not become infected via the copy left license. Hence why all content generated by AWK is not GPL'ed, and why content built under Linux doesn't immediatly need to be opensourced.
This still leaves the handful of files at the bottom of the chain for which the C API headers inevitably pull constants and a few other small but vital components.
To which I say, write an AI that acts as a proxy to which closed source AIs can communicate with without linking via standard means such as sockets or pipes. Something I would be interested in developing regardless of Shards status as opensource or closed source purely out of principle.
Re: Dev meeting minutes 2010-05-23
Basically, the difference between V2 and V3, if I remember correctly:
V2: The person who _runs_ the app can request the source
V3: The person who _uses_ the app can request the source (EDIT: no it doesn't - this was in an early draft, but was removed). Also, the platform you provide the app on must not prevent the user from replacing it. So if you release a GPL-software-based box, you can't have firmware that does a hash-check on the kernel to prevent running an alternate version.
And as always, if you link to a GPL app, you must conform to the GPL.
So Shard is legally required to conform, but only if you let other people download Shard.
And saying that the C API is somehow *not* GPL is some crazy legal gymnastics. The opinion of the EFF is that even interpreted languages are covered by the GPL, for which the coupling is even looser than the autogenerated C API. The "Generation" argument of the GPL only exists so that you can make a GPL-based compiler but still release proprietary software.
The simpler, legal, approach: keep the Shard binaries to yourself until you're done. Anybody who will be running the Shard binaries needs the source, but that's really just you and your supervisors.
V2: The person who _runs_ the app can request the source
V3: The person who _uses_ the app can request the source (EDIT: no it doesn't - this was in an early draft, but was removed). Also, the platform you provide the app on must not prevent the user from replacing it. So if you release a GPL-software-based box, you can't have firmware that does a hash-check on the kernel to prevent running an alternate version.
And as always, if you link to a GPL app, you must conform to the GPL.
So Shard is legally required to conform, but only if you let other people download Shard.
And saying that the C API is somehow *not* GPL is some crazy legal gymnastics. The opinion of the EFF is that even interpreted languages are covered by the GPL, for which the coupling is even looser than the autogenerated C API. The "Generation" argument of the GPL only exists so that you can make a GPL-based compiler but still release proprietary software.
The simpler, legal, approach: keep the Shard binaries to yourself until you're done. Anybody who will be running the Shard binaries needs the source, but that's really just you and your supervisors.
Last edited by Pxtl on 25 May 2010, 15:34, edited 1 time in total.
Re: Dev meeting minutes 2010-05-23
If your opinion would be correct, any GPL code compiled with gcc wouldn't need to be open-sourced, sorry but that's just crap.AF wrote:Shard & GPL
All of this thread assumes that Shard is linking to GPL spring headers.
However, Shard does not link directly to spring code itself, shard links to the C API. This API was not written by spring developers, it was autogenerated by AWK. Under the GPL, anything that links to GPL code must be GPL compatible. But, anything generated by GPL code, 'output' does not become infected via the copy left license. Hence why all content generated by AWK is not GPL'ed, and why content built under Linux doesn't immediatly need to be opensourced.
This still leaves the handful of files at the bottom of the chain for which the C API headers inevitably pull constants and a few other small but vital components.
To which I say, write an AI that acts as a proxy to which closed source AIs can communicate with without linking via standard means such as sockets or pipes. Something I would be interested in developing regardless of Shards status as opensource or closed source purely out of principle.