NightDive-Studio / shockmac

System Shock (PowerMac version / Official GPL Release)
GNU General Public License v3.0
1.44k stars 182 forks source link

Asset resources are missing #6

Closed pyalot closed 6 years ago

pyalot commented 6 years ago

It appears that assets are missing from this "release". Without assets the application cannot be run. This should be fixed by including the assets.

thdankert commented 6 years ago

This is expected, as explained in the README. The assets are not part of this release, and NightDive still holds the copyright.

pyalot commented 6 years ago

They also still hold the copyright to the source. I fail to see any difference other than that there's an incomplete application published.

When was the last time you ran an application that wasn't published in executable form?

randriese commented 6 years ago

You should see this code as reference code, not as a complete application or game. If you have the original assets you can compile / run this code, which isn't any different compared to the ID-tech source code releases.

phillippi2 commented 6 years ago

The original Devs did a livestream of S.Shock on its' 20th anniversary. They talked about why they didn't distribute the code/editor. What it boils down to was ensuring that only the people that paid for the game could run it (no unlicensed copies)

This is most likely the same reason for the assets being excluded.

However, the code here is likely being used for reference for a new engine/source port.

pyalot commented 6 years ago

It is a possible interpretation that an application forms a combined whole together with the data that is required to run it (data linking).

Under such an interpretation, it would then be illegal for NightDiveStudios to use any code derived from the GPLv3 version of the source, and package it with the proprietary data to a combined whole and ship it. It would be illegal because it would be an an attempt at "soft" Tivoization (making it impossible for the recepient of the software to modify and/or redistribute it).

By doing what you do, you lose the ability to distribute an improved whole (i.e. put it in the mac app store, put it on steam, put it on the ios app store, put it on the windows app store, offer it for download or put it on a medium and ship it to a user, etc.), even if you're NightDiveStudios. Good job.

Should you attempt to make improved releases, I will be bringing it to the attention of the FSF and EFF so they can decide if they want to litigate to define if a program and its data are a whole under GPLv3.

pyalot commented 6 years ago

I also find it extremely poor form to release half-baked software as "open source" that's lacking half of everything required to run it. Imagine if other open source was shipped this way.

Here is your browser. But it doesn't come with any UI. You'll need to buy the UI separately and combine it with that browser. We can't ship the browser to you in complete form. Please choose our browser over the competition.

It'd be patently absurd. Yet game companies somehow seem to think that's appropriate.

randriese commented 6 years ago

You really don't get it, right? The source is completely open, the art is not released. What is so difficult to understand here? If you have the original CD, you have the original art. If you don't, it just seems like you're trying to get a free copy.

It seems like your interpretation of released game code is a bit off... Releasing code, doesn't make it a free project. Nowhere does it say that by releasing the code, the developers should also release the assets. They never stated anywhere that this code should be seen as a complete product, they even said multiple times that they will not release the assets and that the code for referencing and/or improving if you have the original cd or replacement assets.

But let's ignore that for a moment and just focus on your statement that the devs should fix the release by adding the art assets. I don't think the dev should do anything but focus on the remake of System Shock and make that as awesome as possible.

kannes commented 6 years ago

Don't feed the troll.

pyalot commented 6 years ago

You really don't get it, right?

Sadly you don't get it. I'm trying to ensure that:

Clearly you don't want to do any of these things. If you want to remedy these, you'll have to release the entire application with everything required to run it. You can also address at least some of these points by picking a different license.

If you don't, it just seems like you're trying to get a free copy.

That is what a free software release is for in the spirit of the GPLv3. If you don't get that I can't help you.

call-cc commented 6 years ago

Do you realize that it's a non-free software, whose source code was released to the public? I for one am very happy to see it and peek into the source. It was already a generous move.

pyalot commented 6 years ago

@call-cc If you don't read my comments your contribution to that debate is zilch.

call-cc commented 6 years ago

In theory, you're right, but practically the company doesn't want to release all the assets of the game. That's a fair decision on their part in my opinion. We've already got the code for free.

phillippi2 commented 6 years ago

It's possible that Nightdive does not actually own the assets. A lot of that stuff ended up in various people hands when Looking Glass folded in 2000. This is why part of the I.P. was owned by Star/Meadowbrook Insurance for a while.

pyalot commented 6 years ago

That's why it's important that a complete release is made. To my knowledge the original isn't sold anymore anywhere. And in a few years obtaining a "CD" by some means will be about as useful as getting music on a wax cylinder, people just don't have the equipment to do anything with it. You could download a rip from some torret site, but we don't really want to encourage that now do we?

If you can't bring everything releasable under one release, then it's just doomed to bitrot and be lost.

Plloi commented 6 years ago

@pyalot if you look at the GNU GPL FAQ page here Specifically "In what cases is the output of a GPL program covered by the GPL too?" and "If a programming language interpreter is released under the GPL, does that mean programs written to be interpreted by it must be under GPL-compatible licenses?"

You will find that interpreters and what they interpret are able to be licensed separatly and without issue.

Which is what a game engine is, an interpreter for the games assets. there is a history of separating the games engine and assets as mentioned by @randriese since this allows the community to improve the underlying framework of the game as well as port it to new platforms. Additionally, if the game engine is released under a permissive license, a new game can be made by including new assets to cover from the ground up.

Even if the engine isn't released splitting the engine and assets allows quicker internal development of new and similar titles internally.

TLDR: The game engine is not the the game. The assets are not included for a reason.

Toxe commented 6 years ago

Game source code usually gets released without the assets because of licensing issues. That's just the way it is, and that's fine. Buy the game if you want the assets, for example from GOG or Steam.

But it is better to release the code this way instead of no release at all. The world isn't perfect, deal with it.

pyalot commented 6 years ago

The world isn't perfect, let's not try to make it any better

-- @Toxe 2018

Toxe commented 6 years ago

How edgy.

pyalot commented 6 years ago

@Plloi Games are not sold as an engine to which you then obtain an asset pack that you need to execute the game with. They're sold as a whole entity. It's generally accepted that no matter in what way your program forms this entity, it is subject to the GPL.

Your analogy is therefore incomplete, and you would have to consider what applies if you redistribute an interpreter that you obtained under the terms of the GPL and used that interpreter to make a whole program including scripts that you also supply. You are making a mixed rights composite which the GPLv3 is specifically designed to prohibit.

Plloi commented 6 years ago

In cases such as this, the rights holder dual licenses the code, the game engine source is provided to the community under GPL, but the version released with the game is commercial/proprietary. This is allowed. The rights holder does not lose the ability to provide copies under any license they choose, or even sell another company a licence to release a closed source version.

thomas-w-holleis commented 6 years ago

Under such an interpretation, it would then be illegal for NightDiveStudios to use any code derived from the GPLv3 version of the source, and package it with the proprietary data to a combined whole and ship it. It would be illegal because it would be an an attempt at "soft" Tivoization (making it impossible for the recepient of the software to modify and/or redistribute it).

The owner of the source code is Night Dive Studios so they can distribute/sell an updated System Shock 1 under an proprietary license and/or release the source code under an completely different license. They also can release only a single source file under the GPL, it's legal, ask the FSF.

The user/programmer of this source code can use/distribute/sell it under the terms of the GPLv3 (without original assets). If someone want to ship a full playable game, some new assets have to be created (as mentioned by @Plloi ) and release it under an GPLv3 compatible license.

I think nobody here said that System Shock can be distributed with the original assets, only Night Dive Studios can do this.

pyalot commented 6 years ago

The owner of the source code is Night Dive Studios so they can distribute/sell an updated System Shock 1 under an proprietary license and/or release the source code under an completely different license.

They cannot if they incorporate changes made to the GPLv3 version into their proprietary version.

They also can release only a single source file under the GPL, it's legal, ask the FSF.

They can. But they cannot take changes to that source file back into their proprietary version and release that.

The user/programmer of this source code can use/distribute/sell it under the terms of the GPLv3 (without original assets).

He can, but Night Dive Studios cannot take that change and incorporate it into their proprietary program and release it with assets.

If someone want to ship a full playable game, some new assets have to be created (as mentioned by @Plloi ) and release it under an GPLv3 compatible license.

This seems like a collossal waste of everybodies time and an impossiblity. You can't accurately recreate System Shock without accurately recreating the assets. If you accurately recreate the assets, they're essentially copies of the assets. Copyright does not differentiate origin stories of data (it doesn't matter how you created it, if it's identical, it's a copy).

Plloi commented 6 years ago

They cannot if they incorporate changes made to the GPLv3 version into their proprietary version.

Typically in a commercial project you would have to sign a CLA granting those rights to the project holder, and only if such a change is submitted to the Project repo. At present no such CLA is present. In the event of a fork improving on the engine NightDive could license (or even outright buy) the rights of those changes if the wanted them in the mainline commercial product.

You can't accurately recreate System Shock without accurately recreating the assets.

This isn't a release of the game, and as such it's not meant to recreate the entirety of System Shock.

thomas-w-holleis commented 6 years ago

The owner of the source code is Night Dive Studios so they can distribute/sell an updated System Shock 1 under an proprietary license and/or release the source code under an completely different license.

They cannot if they incorporate changes made to the GPLv3 version into their proprietary version.

Night Dive Studios can update the program and/or assets with there own developers and release a new version (proprietary and/or GPLv3) at any time. If I, or someone else, would contribute source code to this repository, Night Dive Studios is NOT allowed to build and release a proprietary version (except with a Contributor License Agreement but this is an other discussion).

Plloi commented 6 years ago

@thomas-w-holleis are you copying my replies over my shoulder?

thomas-w-holleis commented 6 years ago

Haha, no, you where only 30 seconds faster.

madame-rachelle commented 6 years ago

The engine is GPL, meaning you can create your own assets to work with it, thereby "completing" the software. Have fun with that! (Something similar to what "Freedoom" did for Doom after Doom's source was released GPL)

But otherwise, this whole ticket is a load of bollocks - sorry to be so blunt.

pyalot commented 6 years ago

@raa-eruanna apparently the concept of releasing complete applications and of the concept of the GPL prohibiting you from bundling GPL with proprietary bits is too much for you to grasp. Maybe delete your github account?

You cannot take this source (GPL) make some assets (proprietary) and put the resulting application up for download anywhere. Not you. Not Night Dive Studios. Nobody. That's a great shame. But you probably don't give a shit about System Shock either, so that shouldn't come as a surprise.

madame-rachelle commented 6 years ago

The dangerous assumptions are real here.

Also, I will respectfully refuse your request to delete my Github account. I am not here to please you.

Toxe commented 6 years ago

But otherwise, this whole ticket is a load of bollocks - sorry to be so blunt.

@raa-eruanna: It is. Someone should close this, it's ran its course and nothing good will come of it.

Maybe delete your github account?

@pyalot: You sound like a fun person...

pyalot commented 6 years ago

@raa-eruanna Well then if you insist on keeping your github account then go educate yourself about the GPL, software preservation and curation as well as nuances between licenses and the purpose of free software as well as the importance of non programmers in software projects and the dearth of complete open source releases of games.

madame-rachelle commented 6 years ago

@pyalot After even minimal research, it's not hard to come across people talking about this very issue. From what I can gather, the general consensus is while the program CAN be covered under the GPL, any data that it processes is NOT by definition covered under the same license.

In other words, the GPL only really covers the functional portion of the program. If you take a screenshot that contains, for example, a texture generated by GPL portions of the program, that might be subject to the GPL, but if the textures are sourced from non-free data (i.e. a commercial game) then neither the textures nor the screenshot are covered by the license - however the program, itself, is.

To claim that I have not actually done my research is yet another dangerous assumption on your part - something you seem to do a lot of, at the risk of looking foolish. (Hey, who am I to judge? ;) But if you are so sure of it, link the relevant portions of the license and how they apply - and I'd also like to see a licensed lawyer's statements which are backing up your's as well. I will bet that there are none. This claim has absolutely no grounds and no merit.

pyalot commented 6 years ago

@raa-eruanna the GPL concerns itself with how things are distributed. Not with how they're created.

For instance take linux (GPLv2) which cannot legally be shipped with proprietary device drivers. You can download those proprietary drivers and combine those on your machine with linux, which is perfectly legal because you're not engaging in a redistribution. What you can't do is take the GPL linux kernel and bundle it with the proprietary device drivers.

Now take for instance this program:

# GPL
message = 'Hello world.'
print message

If you where to GPL that, all of it is GPL'ed. It's source and data. But it's not the case that the "Hello World" string isn't GPL'ed somehow.

Now let's modify that program slightly:

# all rights reserved
Hello World
# GPL
message = open('message.txt').read()
print message

Now the message.txt sits in another file. If you just distribute the program, but not the message.txt, on which the program relies, it absolutely does not matter what rights the message.txt have. However if you where to ship both the program and message.txt together as a unit, you can't do that, it would violate the GPL of the program.

From what I can gather, the general consensus is while the program CAN be covered under the GPL, any data that it processes is NOT by definition covered under the same license.

The distinction must be made between data that a program processes, which is not a prerequisite for the program to run (i.e. the program and data are not an inseparable unit that needs to be distributed together to work), or if the data and program form an inseparable unit which is distributed together in order for it to work. A word processor falls in the former category (you do not need to distribute a word file for your word processor to work). A game falls in the latter category (a game is all the bits that make it work, and if a bit is not there, it does not work as a program).

In other words, the GPL only really covers the functional portion of the program

Missquoting the GPL is the first step to violating it. There is no such distinction in the GPL, and all parts of a program are "functional portion of a program" both data and code.

To claim that I have not actually done my research is yet another dangerous assumption on your part

It's not an assumption, you've shown this to be a fact just now.

something you seem to do a lot of, at the risk of looking foolish.

Looking foolish. Please use mirror. Repeat until done.

This claim has absolutely no grounds and no merit.

If you don't understand the GPL, don't use it.

P.S.

There is a good reason why game engines are usually not licensed GPL. They use the LGPL (which is permissible to link to proprietary bits such as data) or another more permissive license (like MIT or BSD). The good reason is that if a game engine where to use the GPL, then it would make it impossible to create a game and retain proprietary rights over some parts of the game (which can both be code and data) and use the engine at the same time, if you intend to ship it as a complete unit. Most people would like to ship a game as a complete unit (because users are not very good at reinterpreting a game as a productivity application they've somehow got to obtain "documents" for from another source).

madame-rachelle commented 6 years ago

Okay armchair lawyer, where's your REAL lawyer to back up everything you just said?

I can wait all day.

pyalot commented 6 years ago

@raa-eruanna if you don't read my comment, your contribution to this thread is zilch. Please ask your lawyer why most open source game engines aren't distributed as GPL.

madame-rachelle commented 6 years ago

Just what I expected - you have absolutely nothing solid to back it up.

You know, I wonder: Why has id Software and Raven released Doom, Heretic, Hexen, and Quake Engine game engine sources all under the GPL, and have thus far encountered no problems with it? Other than Freedoom that I mentioned earlier, none of these games have viable "open content" assets and each of these source distributions come without assets anyhow.

As I previously stated, the GPL applies to the program (engine) ONLY, not the data. No amount of arguing on your part is going to magically make any of those games, or System Shock for that matter, magically appear as "free license" games.

By your logic, everything from source to compile to screen must be free. Does this also apply to the OS the game runs on? Does this mean that Windows and Mac OS X must also be GPL in order to release GPL games for these operating systems? Does that mean that the drivers which run the keyboard, sound, and display (including the GPU) must also all be GPL as well? Admittedly, as nice as it would be to have Mac and Windows be GPL, that's utterly ridiculous.

The source is GPL under the assumption that you can feed assets to the program. The assets do not have to come from the official System Shock discs (or Steam distribution) itself. You can feed it garbage assets, enough that the program simply starts, and as long as it does, it's a complete program nevertheless. It just "happens to work" with non-free assets, which can easily be replaced by aspiring artists.

pyalot commented 6 years ago

@raa-eruanna

Why has id Software and Raven released Doom, Heretic, Hexen, and Quake Engine game engine sources all under the GPL,

None of which have been used to release a game with non GPL compatible bits in it.

As I previously stated, the GPL applies to the program (engine) ONLY, not the data.

There is no functional difference between code and data, and the GPL certainly does make none.

No amount of arguing on your part is going to magically make any of those games, or System Shock for that matter, magically appear as "free license" games.

No amount of plugging your ears and singing lalala will make your GPL violation go away.

By your logic, everything from source to compile to screen must be free.

Everything you (re)distribute together as one functional unit with a GPL licensed program, must be under a GPL compatible license. The license can grant more rights than the GPL does, but it cannot grant less.

The source is GPL under the assumption that you can feed assets to the program. The assets do not have to come from the official System Shock discs (or Steam distribution) itself. You can feed it garbage assets,

As I've mentioned the GPL covers distributing, not what you do with various bits on your computer as long as you don't distribute them together yourself.

It just "happens to work" with non-free assets, which can easily be replaced by aspiring artists.

What they can't work with is if you distribute it as a complete unit, such as, you know, ordinary people usually consume software.

madame-rachelle commented 6 years ago

Everything you (re)distribute together as one functional unit with a GPL licensed program, must be under a GPL compatible license.

Well, boo hoo then, I guess you're going to have to report both Steam and GOG for distributing DOSBox - a GPL program - with many old DOS games, such as those I listed above. Like I said - you are being absolutely silly about this.

Plloi commented 6 years ago

@pyalot From the GPL itself: https://github.com/NightDiveStudios/shockmac/blob/07194d0e6ebcbbba70bb9db45d50d727ca4654d7/LICENSE#L235

A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate.

The work is the game engine, and the Assets are separate independent works

pyalot commented 6 years ago

@Plloi

https://github.com/NightDiveStudios/shockmac/blob/07194d0e6ebcbbba70bb9db45d50d727ca4654d7/LICENSE#L237

The work is the game. The game engine and the assets are separate independent works. And they are combined such as to form a larger program.

You can do that on your own machine with whatever rights under the GPL, because you're not distributing it. You can't distribute the larger program (the game) that way.

By far and large the "culture" of running a game involves download, install and run. It does not involve obtaining several independent packages from some or other internet location, combining them on your machine and have it run. In part because ordinary users don't want to bother with that (or can't be bothered to learn how that works), and in part because you can't do that on some platforms (such as iOS or Android).

Plloi commented 6 years ago

The asset are NOT part of the program they are inputs to it.

pyalot commented 6 years ago

Why do you choose to quote the relevant license bit if you're then going to flat out ignore what you just quoted?

  1. Is a game a program? [YES]
  2. Is a game distributed as a single volume, distribution or medium? [YES]
  3. Does the game engine and assets form the game as a larger program? [YES]
  4. ...
  5. But I'm not right because... reasons
Plloi commented 6 years ago

Find me a single example of the licence being interpreted that way for game distribution. And as a counter point from my view ScummVM

pyalot commented 6 years ago

See the anecdotal evidence that most game engines intended to be used are not released GPL (but rather LGPL, MIT or BSD), that the only free software release of a game the FSF publicized so far is Saga of Ryzom which licensed the assets under CC-BY-SA 4 (which is GPL compatible) and that the free software developed game Wesnoth is released completely as GPLv2 and that the GPL allows to define specific exceptions (for instance the font exception) exactly for cases where a composite or resulting work is not intended to be all GPL compatible.

It's not an unreasonable interpretation to regard a game as a whole program, to see the assets as part of the aggregate of that program (or even to be derived from the engine since there's no program running without the assets).

You can ignore that interpretation at your own peril.

Toxe commented 6 years ago

Releasing engine/game source code without the assets has been fine for years and years and years. And now all of a sudden this is supposed to be a problem? You should seriously get a reality check and stop living in your dream world.

By releasing the source code of a game it is never ever about releasing a complete and working version with all the assets so that some random guy can download and play it for free. Look at Doom: If you want to play a Doom source mod, you still have to buy and own the original game, you need to find and download that mod yourself and you need to combine it with the assets yourself. And this has always been fine and will always be fine.

This is not about giving some cheap people a free version of the game, it is about giving the community and interested people a) the possibility to study and learn, b) provide some insights into the history of game development and c) allow the community to adapt, improve and mod the original game. But still you need to own the original game, this isn't a free license.

Honestly it is bloody fantastic that we now have the source code at all. The System Shock community has been asking for it for ages but people always got told that it was lost in EA's vaults or whatever and that no one knew where it was, which was a tragedy.

And I honestly think that people should be bloody grateful that we get this opportunity at all and don't behave like entitled children who take something, that was given to them for free, and instead of being grateful are outraged that they don't get more stuff for free. Be happy with what you got, this is the real world and not some perfect fantasy world!

Must be fun for a dev to release something for free that people people have been asking for ages, only to be told "What, is that all?! This is worthless, give us more of your stuff for free!"... Fun times.

pyalot commented 6 years ago

By releasing the source code of a game it is never ever about releasing a complete and working version with all the assets

Apparently releasing complete applications has fallen out of fashion somewhen.

so that some random guy can download and play it for free

And why shouldn't it be about that? Why shouldn't there be free (in all variations of free) software?

you still have to buy and own the original game, you need to find and download that mod yourself and you need to combine it with the assets yourself. And this has always been fine and will always be fine.

If you can't see how that's a problem with bitrot, complexity, preservation nightmare and the attention span of the millennial generation I don't know what.

This is not about giving some cheap people a free version of the game

Free software advocates are now "cheap people", got it.

a) the possibility to study and learn

And by that you exclusively mean programmers since non programmers apparently have nothing to study and learn and just get born into this world with all the skills required to make games.

b) provide some insights into the history of game development and

Which apparently is exclusively code based since non programmers evidently don't make any history.

c) allow the community to adapt, improve and mod the original game

But only if it's code. Which is after all all a game is right?

And I honestly think that people should be bloody grateful that we get this opportunity at all and don't behave like entitled children who take something, that was given to them for free, and instead of being grateful are outraged that they don't get more stuff for free. Be happy with what you got, this is the real world and not some perfect fantasy world! Must be fun for a dev to release something for free that people people have been asking for ages, only to be told "What, is that all?! This is worthless, give us more of your stuff for free!"... Fun times.

Because something is not as bad as it used to be, you shouldn't be allowed to discuss some points of view how things could be better than that. Got it.

Toxe commented 6 years ago

Stop your bullshit and playing dumb, you know exactly what I mean.

You can play like an entitled child all you want but stop annoying other people if they don't see the world like you want it to be in your dreams where everything is perfect. It is not. In the real world things are difficult and more complicated than you want them to be.

Deal with it, just don't be a jerk.

Plloi commented 6 years ago

By releasing the source code of a game it is never ever about releasing a complete and working version with all the assets

Apparently releasing complete applications has fallen out of fashion somewhen.

The engine is complete without the assets. arguing otherwise is like saying a media player is incomplete without video or music files.

Start up of the engine requires that valid assets exist, but not specific assets. this makes it no different then a program that requires input to run.

pyalot commented 6 years ago

@Plloi

The engine is complete without the assets. arguing otherwise is like saying a media player is incomplete without video or music files.

The game is not complete with engine and assets to form a larger program.

Start up of the engine requires that valid assets exist, but not specific assets. this makes it no different then a program that requires input to run.

I'm pointing out a couple of simple, easy to understand and obvious things.

  1. Complete applications are more useful than incomplete ones.
  2. Game development is more than code
  3. You can't combine GPL'ed parts with non GPL compatible parts into a larger program (it's why things like the LGPL exists, and why game engines meant to be used overwhelmingly pick LGPL, MIT or BSD rather than GPL).

But in the topsy-turvy world of gamers and game development companies, these self-evident are apparently not. Which is why I pointed them out, explained them at length, and still, you keep arguing as if those wheren't self-evident. It makes me lose faith in humanity.

sneakernets commented 6 years ago

Do what Doomers did, make your own "dummy" placeholder assets. Won't help much, but at least the game would run. And besides, IF you wanted to make an "OpenArena" style SShock, what's stopping you?