Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

License clarity. #213

Closed
ghost opened this issue May 10, 2019 · 23 comments
Closed

License clarity. #213

ghost opened this issue May 10, 2019 · 23 comments

Comments

@ghost
Copy link

ghost commented May 10, 2019

Hi and great project here.

I have been poking around the commit history for a few days now and finally think it is time to ask a few questions about a possible license conflict with distributing a modification of this work on Steam.

The thought I had was to go back to the first commits and slowly walk forward to the latest and greatest commit over summer. We currently have our project in a lot of pieces and have had a hard time solving multiplayer greater than a 5000x5000 space. We can do it single player with floating point origin or similar, but our vision is to build a community around fun games and software on linux and a community means more than one person :-)

At any rate, the place where the GPLv2 may conflict is noted here:
https://partner.steamgames.com/doc/sdk/uploading/distributing_opensource

These two lines especially:
Which Open Source Licenses are problematic for shipping on Steam?

Generally, any license that has a so-called “copyleft” element will be problematic when combining code with the Steamworks SDK. The best-known example is GPL.

But I saw a GPL-licensed application on Steam!

This can happen if the author of the code that is GPL-licensed has given the permission to do so. The author can of course always (a) decide to grant Valve a different license than the author grants everyone else or (b) decide that what the Steamworks SDK does is just a communication with a service that does not invoke the copyleft requirement of the GPL.

Mainly before we began looking deeper into getting involved here, using the code in a binary on Steam even if only as a free release and adding new features to the code in our own fork or PR. I wanted to see if Steam needed for you to clarify a section about the license so it was compatible with Steamworks etc. as stated above if you would be willing to discuss their concerns and possibly allow a one off tweak of the license on a case by case bases.

I also felt it was a good general ask for others stopping by.

@smcameron
Copy link
Owner

Well, it's GPL for a reason. You'd need not only my permission to have the game under a different license, but the permission of every contributor. And you don't have my permission.

And, I'm not sure about this, but I believe the game would need to run on Windows before Valve would accept it on steam. It currently does not run on Windows (except in the linux subsystem for windows on Windows 10, but it runs like garbage on that due to using a software renderer instead of the GPU hardware.) Porting it would be a pretty big job. It uses POSIX threads (pthread library) a lot, and if I'm not mistaken, that will make porting somewhat difficult. And of course there are a few other unix-isms and linux-isms it's using. And I might be wrong about the windows requirements. Of course, feel free to send patches to help port it to windows. See CONTRIBUTING.md

had a hard time solving multiplayer greater than a 5000x5000 space.

I'm using doubles rather than floats for coordinates, and at some critical points within the renderer, and have a fixed origin (doesn't move with the player), so I don't think 5000x5000 would be a problem, but I have seen issues if you get too far from (0,0,0), like 1000000 units away or so, vertex positions might start jumping around a bit due to lower precision as you get farther from 0... haven't really tested recently to find the point at which it starts getting problematic since we mostly solved this to our satisfaction some years ago. However the main focus of the game is not PvP anyway, as it's hard to get enough people together for a single crew, much less multiple crews, and no real attempt has been made to balance for PvP, so likely two player ships fighting each other would find each other to be too powerful, and whoever managed to get a shot off first would have a huge advantage.

The game is also meant for LAN play and not meant for internet play and requires about 100k/sec of bandwidth between the server and each client. This could no doubt be reduced, but doing so would be non-trivial.

@ghost
Copy link
Author

ghost commented May 10, 2019

Thank you for the quick reply. I had looked over the CONTRIBUTING.md, the first line "Nobody seems to know this game exists." is what prompted the issue post in fact. Trying to think of ways to make the project known. Perhaps the project and contributors would consider launching it on steam as own entity, and then offering a different license to steam directly from the authors and not as a third party (CommunityUs trying to launch it with significant contribution) as i first suggested.

We have recently revisted Steam and found it to be the most libre platform out there still doing innovation with a huge audience. The windows first possible problem is not a thing. In fact we are launching 4x linux only games first, then going back and adding other OS support once we have a strong linux base. Our desire to increase linux OS as a option for games is one of our core values. (here SteamOS aka Debian)

If you do have interest in distruting on Steam for linux only as your own entity, or at least having that convo with Valve to discover their issues with the GPL specifically and what in practice if anything is the issue here. I can say having explored the platform from the backend there are options to solve issues that would typically cause the license conflict. i.e. simply don't check the DRM box, but I digress.

At any rate getting back to the 1st line in CONTRIBUTING.md and expressing our desire to help with this. If you are interested in working with another entity (us or others reading this) to try to increase exposure, and amenable to the concept of working together on Steam using the platform concepts of projects as either a Publisher and us as the Developer or reverse. (In practice Publisher/Developer both accomplish the same thing and at least to us we don't care about having the publisher title if you wanted that) Anyways, this is about as far of an olive branch i think we can make to try to help gain visibility while still respecting the nature of the GPL and the contributors thus far to the project.

This is what I am trying to do, find projects that deserve notice and raising them up to be found and played/enjoyed. I will add if you were fine discussing this in more detail, our contribution if we can resolve the steam distribution question whether using developer/publisher relationship or whatever works. Our contribution would be adding PvP feature (opt in style), reducing the LAN req. (100k/sec is approaching first person shooter standard though so this is another topic), PvE coop without lan support with different combos here same bridge coop no lan req./different bridge-ship coop no lan req./space station etc., creating a server web api, solving the player base problem and using Steam workshops we tap into the Steam community to help us solve PvP with AI enemies too powerful player balancing etc. Lastly, use a high end render client like.

In fact this just came to mind, perhaps the way in to Steam - if there is no flexibility between SNIS and Valve as discussed above - perhaps the path of least resistance forward would be porting the project to Quake another GPL, then move it up to HalfLife 1 sdk then on to Source 1 released as perhaps a version 2 of SNIS or maybe simply out of beta/game preview.

And finally to cover all the options here, what about a client that was written in Unity for the HDRP (high def render pipeline) that did with permission draw influence from this code with the idea keep the GPL or LGPL but as Author of the SNIS Unity 3d Client we would have the option to offer a different license to Valve correct? (hopefully with SNIS blessing and working together, well not hopefully we wouldn't do without the blessing :-)

The server would then still be GPL, and it would be a whole other thing to work out how to distribute using SteamCMD (but this would be key to user base growth) as the thread requirements would quickly enter into a raw server cost barrier to roll out. Have you done container testing to see if able to run more than 1 instance in docker/container that share the cpu usage. (Mainly is this a hard requirement?)

Thank you for your time answering these. As you can see we are geniunely interested in helping, and getting the project out there.

@smcameron
Copy link
Owner

smcameron commented May 10, 2019

If you do have interest in distruting on Steam for linux only as your own entity, or at least having that convo with Valve to discover their issues with the GPL specifically

Pretty sure that their issue is that you would need to link their proprietary code in to GPL'ed code, which is an obvious no go. They wink and nod, and tell you to get your own lawyers and indemnify them if you choose to ignore the obvious and proceed anyway. To me, this incompatibility with proprietary libraries is a desirable feature of the GPL, and not any sort of "issue".

the path of least resistance forward would be porting the project to Quake another GPL, then move it up to HalfLife 1 sdk then on to Source 1

Wat.

And again, you must have missed the point that I do not own the copyright to all the code, only to a significant fraction of it. You would need agreement from all the copyright holders, many of whom I do not know. Since the code is GPL'ed, I was free to borrow from other GPL'ed code (to name one example, most of the quaternion library was written by two other people who aren't me, and there are other examples). If you want to re-write the SNIS client from scratch and remain compatible with the protocol, you must do a clean-room re-implementation, like Compaq did with the IBM BIOS back in the early 80's. Have one team reverse-engineer and write a specification, and have a 2nd team that only implements something new which meets the specification the first team writes. I have done some of it for you, here's the protocol, although I'm sure that document is only mostly accurate. I expect it would be far easier for you to take the bare idea of "a multi-player spaceship bridge simulator", and write your own from scratch (this is exactly the relationship between SNIS and Artemis Spaceship Bridge Simulator, btw).

You're of course free to fork the project and do what you like with it provided you meet the terms of the license -- which is of course exactly the point of the GPL.

If you really want to help, I think the easiest thing would be to automatically build and host up-to-date binaries for the various linux distros out there, perhaps using SuSE's build service, which is something I might eventually get around to doing. My approach to that is to make the game good enough that someone else gets fed up and does that part for me. Maybe that is happening right now, and you guys are about to do it.

Besides that, another thing which is needed is more mission scripts. Feel free to send patches.

Another point is, this game isn't finished, and may never be. One reason I don't build binaries (besides the main reason that it's a right pain in the ass) is because the game and the protocol are still changing. The current version is always just whatever's at the top of the trunk. The distribution/update scheme is pretty simple:

cd space-nerds-in-space
git pull
make mostly-clean
make update-assets
make

If your main interest is in making money selling the game, then I think we're at cross purposes. This is my hobby, not my job, and I'm not very interested in wrecking my hobby and getting a new job.

@ghost
Copy link
Author

ghost commented May 10, 2019

If your main interest is in making money selling the game, then I think we're at cross purposes. This is my hobby, not my job, and I'm not very interested in wrecking my hobby and getting a new job.

Had to laugh. I appreciate the candor, there is a term on Steam called "asset flipping" where mostly younger devs grab a project and flip it as their own on Steam. We are not intersted in asset flipping or making money from your work. What our business model is, is building communities -> gaining an audience and fan base and then carefully finding creative ways to fund like you say our hobbies but still keeping it in the realm of hobby because that is where originality comes from in gobs. IMHO.

If you really want to help, I think the easiest thing would be to automatically build and host up-to-date binaries for the various linux distros out there

Ok, we will look into this more.

Related - what is your take on AppImage, FlatPak and Snap? Would you be interested in those at some point? I do see a lot of the GPL games going that route.

They wink and nod, and tell you to get your own lawyers and indemnify them if you choose to ignore the obvious and proceed anyway. To me, this incompatibility with proprietary libraries is a desirable feature of the GPL, and not any sort of "issue".

(Below: Please bare with the perspective setup as I get to [1])

While I generally share your cynicism, in light of what we are trying to do (and after trying to do it on Azure and OpenStack/OpenShift) Steam has been the most open "walled garden" we have found that still has a huge feature set. They also have major GPL works like the famous Blender software on their store.
https://store.steampowered.com/app/365670/Blender/

We also found you through @mdeguzis work on SteamOS Tools here:
#77 (comment)

Our perspective is simple, now more than ever privacy and dispelling the illusion of freedom and replacing it with actual freedom of ones stuff and liberty is a cruicial concept we want to illuminate in todays society. We understand and support the ideals of the GPL and how it helps achieve this freedom. We also want to get more people on linux, we think SteamOS does that. It provides a good first experience for new users to the linux way of doing things. And they have done great work with proton to enable wine windows games to run natively on SteamOS (effortlessly) using Vulkan. We also have VR on linux in a good way due to their effort. So to me they are on the side of GPL movement, on the side of freedom as much as a business like Red Hat is on that side in my opinion. Are there other examples?

[1] I say all this, because the stuff like the features you are in need of mission scripts/lua stuff for the dung. master screen is all built in to Steam through workshops and the it is made simple for people to collaborate, right guides and articles about the game. I believe all this would benefit your game. That is where they say if Steamworks - the stuff that gives you access to the platform is seen as a service and treated as such by the GPL comes into play. I do not get the sense they take it with a grain of salt.

I also see your work here esp. as it is LAN first, plays well as an introduction smart things, i.e. your radar feature works well to introduce smart homes to the concept of sensors. I agree here also GPL is important, very important in the IoT (internet of things) land of things. Steam also has made their steam link app (allows streaming from a computer to your tv and handles input) available on the rasp. pi, I saw that you had planned effort to support ARM in future. So to us it is a great fit, this is why we wanted to spend this time reaching out.

So perhaps there is another way to approch the solution. If the main concern is liberty and purity to the license (we admit we are noob on GPL, even though been studying it for a while now and kinda get it), and there isn't a real "issue" with what we have invisioned as the next few feature sets pvp, coop, no lan req., client upgrade etc. And distribution is fine, and welcomed assuming X. (you define X) If the only problem here is not including the Steamworks code, we can just do a wrapper for that api that is GPL.

If that solves that problem, and we can move forward to a common agreeable shared goal starting with SuSE build tools or similar and begin contributing to missions and general game content. And for us, begin gathering data and releasing it on Steam to the linux user base we digest all this and just have chats on here or somewhere more fitting keeping this as a hobby and share user experiences. (honestly that is what Steam is great for collaboration)

If now that we have removed the Steamworks SDK issue by simply doing a GPL wrapper for the api we can proceed let us know.

In practice, I would recommend we putting it on steam as is. We just launched a title that is linux only, we only got 32 unique impressions we had 8 people join our steam chat and now new interest has dropped to zero. So in practice strictly speak about the game and not other services Steam does nothing except make it easy for the user to manage their library. Where it does shine is with that GPL steamworks wrapper, enabling workshops and guides it would be a great fit for exploring new solar systems and the import feature would be great for the workshops, esp. new gas planets using your innovation there and the like.

Hopefully we have conveyed our hopes and intentions and how we see everything fitting without turning your hobby into a job, we have just found a few of these works. Another one is DFUnity, and then 3rd party GPL version of Hammer (steams 3d editor) that I just feel compelled to clearly outline the benefits, maybe get cynics to take a second look at Steam like we did after trying to do our real vision of waking people up through software and hopefully shedding light on the fact Steam is on this side of things as much as a big biz like that can be and without a paywall as found in enterprise stuff.

@smcameron
Copy link
Owner

smcameron commented May 10, 2019

The GPL is pretty clear about what it allows you to do and what it does not allow you to do. You are free to do what it allows. If you can accomplish your goals within those confines I can't stop you.

What I've found is that among real linux users, if they can "apt-get install ..." or "yum install ...", or "rpm install ...", then they're happy. Among gamers, nothing will make that lot happy, they are intrinsically and hopelessly miserable.

@rexmortus
Copy link

rexmortus commented May 10, 2019 via email

@smcameron
Copy link
Owner

Oh, and I would not be happy about changes that would require steam. The game should always be runnable stand alone, and that should be the preferred method. Steam is tantamount to facebook.

@smcameron
Copy link
Owner

I'm not really interested in helping you subvert the intent of the GPL. So, if you can find some loophole that lets you do what you want, I can't stop you, but neither will I help you. While it would be nice if the game were more popular, I'm not interested in abandoning principles to achieve such a goal.

@ghost
Copy link
Author

ghost commented May 10, 2019

I'm not really interested in helping you subvert the intent of the GPL. So, if you can find some loophole that lets you do what you want, I can't stop you, but neither will I help you. While it would be nice if the game were more popular, I'm not interested in abandoning principles to achieve such a goal.

I don't fully understand. First, its cool we can just stop here. Thanks for your time hashing that out.

I am trying to comply with the license and discern your personal wishes. I also wanted to gauge your interest. Steam allows distribution on other platforms. I am not understanding the conflict with the license and Steam. If you have a personal issue with steam please share maybe you can save us a world of hurt and we can get off the platform. Again our intent was to help and not hurt. It is clear you don't want the project on steam, this is a seperate thing and we are happy to just not do that. I don't understand how the license does that is the real question. I would rather it just be stated like that, or what in the GPL prevents it. I am trying to understand the GPL, we are new to it.

[updated above]

If you can accomplish your goals within those confines I can't stop you.

The desire is a positive addition. Hopefully the feeling isn't you want to stop us but can't. We are reaching out specifically to avoid negative reactions

Oh, and I would not be happy about changes that would require steam. The game should always be runnable stand alone, and that should be the preferred method. Steam is tantamount to facebook.

Yes we have no intention of only having it run on steam.

@rexmortus
Copy link

rexmortus commented May 10, 2019

Can I just say, as an observer of this thread, I have to say that @smcameron slam dunked it.

I agree that Steam IS tantamount to Facebook and the consequences of porting it are at cross-purposes with the raison d'être of SNIS.

More broadly, I am sick to death of good, principled projects being corrupted by the pursuit of popularity & profit. There is plenty of that to go around, already!

To consort with the crowd is harmful; there is no person who does not make some vice attractive to us, or stamp it upon us, or taint us unconsciously therewith. Certainly, the greater the mob with which we mingle, the greater the danger.

Some people seem to hold the flawed belief that popularity is innately good, and thus desirable. Correct me if I'm wrong, but that seems to be the basic position @communityus. But those who have been around longer know that is simply not the case.

@ghost
Copy link
Author

ghost commented May 11, 2019

Our position is simply to increase the user experience on linux and options. There is a transition period for a new user that is scared of "apt install" and when to use sudo. And all the other pitfalls that are not smoothed out for you by a large corp. trying to do a one size fits all OS.

That is it, this was an exercise for us trying to learn more about the GPL side of things. Prompted by this article:
https://opensource.com/article/17/2/decline-gpl

Can I just say, as an observer of this thread, I have to say that @smcameron slam dunked it.

If by slammed dunked it you mean alieniate well meaning folks for no reason and never really get into a real discussion but just have GPL thrown at me over and over with no explination. Then sure 2 points. yah

@rexmortus
Copy link

Well, I'm sorry that my remarks made you feel alienated. I try to be helpful, obviously they were not helpful. Perhaps "slam-dunk" had the wrong tone.

That said, I support what I perceive to be @smcameron 's position: there are other ways to lower the barrier of entry to playing SNIS short of porting it to a distribution platform like Steam, ways that do not involve sacrificing the core principles of the project.

Also @smcameron, FWIW I think a day WILL come when someone takes on the burden of generating binaries. The game is good, it's fun, and there's an audience. Everything in its own season!

@ghost
Copy link
Author

ghost commented May 11, 2019

Some people seem to hold the flawed belief that popularity is innately good, and thus desirable. Correct me if I'm wrong, but that seems to be the basic position @communityus. But those who have been around longer know that is simply not the case.

The reality is very simple. I have kids, we have neighbors that have kids. I wanted to see them playing this game and learning how to code. It is not about popularity but is about awareness through a shared goal. While i can do that for my children, the only way I could get a neighbor to install linux would be SteamOS which is not = facebook. Maybe steam app is like facebook in some world but whatever i am not here to defend steam. I have friends that I am worried about vendor lock in with at the OS level, or game console level I am doing my honest best to provide options. Suggesting SteamOS for the average user new to linux.

You are saying you don't want linux to be a dominate OS i guess. Which is common amoung the GPL group I imagine. I am trying to protect people in practice and slowly increase popularity and adoption through bringing forward good projects to a younger generation that can start adopting now, so that when it becomes a problem they are already free.

@smcameron
Copy link
Owner

The GPL has been around in one form or another since 1989 -- 30 years. I don't think it's unreasonable to expect a passing familiarity with the GPL and its goals, especially if you're proposing major modifications to a GPL'ed program, and talking about linking to proprietary libraries and talking about a GPL wrapper API to link to a proprietary library. Suggesting such a thing in fact demonstrates a passing familiarity with the GPL and the desire to essentially circumvent it via a technicality.

Basically, after thinking about it for a bit, I came to the clear realization that steam is not a good fit for this project and I'm not interested in having the game on steam. In retrospect, I should have realized it even sooner than I did and shut the discussion down even sooner than I did. The link in the first post in this thread to the Steam FAQ should have been enough to deter me. https://partner.steamgames.com/doc/sdk/uploading/distributing_opensource

@ghost
Copy link
Author

ghost commented May 11, 2019

That said, I support what I perceive to be @smcameron 's position: there are other ways to lower the barrier of entry to playing SNIS short of porting it to a distribution platform like Steam, ways that do not involve sacrificing the core principles of the project.

I am being geniune here. Is there some place not off topic i can chat to find out why steam is so evil. I am either missing something, or maybe you don't know something. But we plan to support steam and partner with them , if they are bad and we are missing something that really makes steam = facebook i would be open to changing our view. i am serious. our biz model is based on steam but we are fresh enough we can pivot.

@smcameron
Copy link
Owner

Basically, steam is closed source. That's it. It's that simple.

@ghost
Copy link
Author

ghost commented May 11, 2019

..familiarity with the GPL and its goals..

So the true principles of GPL are open source or die basically. Freedom or die, liberty hard core basically. I mean i get it. Just seems for biz there needs to be a way to work together which i thought GPLv3 / LGPL did so it could work with Apache 2 and others.

@smcameron
Copy link
Owner

smcameron commented May 11, 2019

Well, as I said, this is my hobby, not my job. It's not a business, so I'm free to ignore the usual concerns of a business. No sane business would produce a GPL'ed LAN game that only runs on linux. That you can't find a way to make a buck off my work is no concern of mine.

@ghost
Copy link
Author

ghost commented May 11, 2019

That you can't find a way to make a buck off my work is no concern of mine.

its these side comments that i don't get. i can find lots of ways to make a buck off you work. i won't because those are my principles. however this comment makes me at odds with GPL as i think this is what i will get over there.

@smcameron
Copy link
Owner

That you can't find a way to make a buck off my work is no concern of mine.

its these side comments that i don't get. i can find lots of ways to make a buck off you work. i won't because those are my principles. however this comment makes me at odds with GPL as i think this is what i will get over there.

Takes a lot of nerve to look at 100k+ lines of C code written over 6 years and then bitch about the fact that you aren't permitted to use it in a proprietary way. I mean seriously, go fuck yourself, you jackass.

@ghost
Copy link
Author

ghost commented May 11, 2019

i don't think you read anything i said. i had a small idea to support your community.

@smcameron
Copy link
Owner

smcameron commented May 11, 2019

I read this:

Just seems for biz there needs to be a way to work together ...

and this

If the only problem here is not including the Steamworks code, we can just do a wrapper for that api that is GPL.

The GPL already gives you all the permission that I am capable of giving you. There is no extra permission beyond that which I am even able to give you, even if I wanted to.

@ghost
Copy link
Author

ghost commented May 11, 2019

Takes a lot of nerve to look at 100k+ lines of C code written over 6 years and then bitch about the fact that you aren't permitted to use it in a proprietary way.

Apologies if it sounded like I was complaining. I was simply doing a litmus test before we commited resources to this. We work with many open source libraries that are not GPL and the spirit there is much more permissive and encouraged to use the code as a library. The thought of having nerve thinking of using your code in some way took me by surprise and admittedly is foreign to our internal concept of open source so this has been an eye opener. Just like comparing Steam to facebook has been an eye opener. Thank you for these insights.

I did try many times to state clearly our intentions up front, I admit I could of worded our possible use cases better. But I figured us asking directly how you felt about something would be welcomed, sorry it god so toxic.

As the main author I felt it was important to see how you felt about the end goal, and despite the toxic end I am sure both parties are glad we did that. I can see that you don't want your code reused by the quote above. And an aside is letting me know why GPL is not compatible with Steam and thank you for taking the time to explain it where you did. I get this is your hobby, time is short. thank you for it. but that there may be some fringe use case where it is allowed but is not within the spirit of GPL, and on top of that it is not desireable by the main author. got it.

and lastly you even did us a solid and let us know you couldn't give us more freedom even if you wanted, which you don't lol. good on ya for going that far in the other direction for clarity sake. we now know how GPL impacts everything and also how you feel about possible use cases which is what we wanted to feel out. sorry it took so long.

We will move on thank you for your time. Perhaps this is characteristic of the GPL community. (not wanting code to be used in other libraries, i guess that is why things end at GPL and don't go the other way - noob mistake I guess) Again we are new here sorry for rocking the boat. Our concept of open source is working together and sharing resources so each project can do more together and not everyone be on an island.

We wish you guys and gals the best.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants