164 comments

[ 4.3 ms ] story [ 235 ms ] thread
I wonder if this will impact game archival efforts. Companies may be less likely to permit release of old source (or more likely to take action against those who do release source) knowing legal issues like this may be inside. Is there a statute of limitations here? Could the owner the violated code sue? What happens it they succeed, monetary compensation?
> I wonder if this will impact game archival efforts.

Just one more area where piracy has our backs.

How does piracy aid in convincing companies to release the source code for games?
It doesn't help in convincing them to release things, but the cracks and other things that the pirates develop help the archival purposes. Because a number of the DRM and other anti-piracy stuff that's bundled, once a company goes out of business it's nearly impossible to run some of these games if they had to call home to verify the copy of the game. People removing these checks helps preserve the game for future use once the company is no more.

For a great example of this, take a look at City Of Heroes, and MMORPG that's had a relatively recent revival after someone, somehow getting a hold of the data/code for the server and managing to get it running again. https://www.pcgamer.com/a-fully-functioning-city-of-heroes-p...

The company itself went out of business back in 2012, and otherwise the game itself was just gone.

Problems with licensing can make it impossible to sell an artistic work. Even when it may be possible, it can easily be considered too costly in terms of time, money, and/or effort to be worth it to the company currently holding the copyright. In either case an artistic work and a piece of our culture is locked away forever from anyone who isn't interested in breaking the law.

Even in a case like this where copies of a game were already released eventually the existing CDs will all be lost, degraded, broken, or unusable. Piracy solves this problem by maintaining playable copies and making them available so a creative work can delight, offend, and inspire indefinitely.

In cases where a released work has to be modified to be legal to sell again and a company is willing to make the effort piracy can preserve the work exactly as the artists originally intended. Pirates can do the same in situations where changes are made for other reasons and only the modified works are officially made available. For a great example of that look at the incredible work fans did to restore the original Star Wars.

"will"? This is why game archival efforts are difficult. Companies already know that this kind of thing goes on, and that's why so few games (or commercial software of any kind) get their sources released.
(comment deleted)
The most likely outcome is not a chilling one: they comply by releasing their code officially under a compatible license, and hope they don't upset anyone else by doing so.
Not sure there's a "they" anymore. THQ went chapter 11 and liquidated.
"Someone" owns the rights.

They too bought the burden of copyright violation.

Assets do sometimes just go nowhere.
Especially when they're heavily encumbered assets, e.g. when they're part of a licensed game whose license expired long ago. (Like this one!)
Well, the license to the publisher may have, but the license from the publisher to the consumer is perpetual, and subject to the first sale doctrine.
That's not how asset sales work. The new copyright owner wouldn't be liable for the previous copyright owner's actions. And if the new copyright owner isn't distributing binaries that include the GPL code they haven't violated the GPL.
> That's not how asset sales work. The new copyright owner wouldn't be liable for the previous copyright owner's actions. And if the new copyright owner isn't distributing binaries that include the GPL code they haven't violated the GPL.

Interesting, so even if the new copyright holder profited off of the asset, they wouldn't have to comply with the GPL? This is an interesting parallel to real estate, where the last person holding the bag has to perform environmental cleanup, etc.

The violation is in the distribution. If the current copyright holder distributed copies then he violated the license but more than likely they simply own the copyright to the code and other IP but haven't distributed anything.
So form a company Profit from blatant copyright infringement When the court case eventually comes, wind up the company, move the assets to another company, and you’re quids in
The law does not work like technology and code. A judge would see through that in a heartbeat and go “You thought that would work? You’re kidding, right?”.
Tell that to the construction industry. This is incredibly common behavior for industries and housing construction - its what gets you out of superfund sites and repairing the subpar housing you threw up in 2010.
I woud assume that to be a case of:

1. Big Company gets what it wants because Big. Everybody pretends it’s a loophole, in order to get out of having to get in trouble with Big Company.

2. Smaller later companies uses same “loophole” and nobody can say anything, because that would be tantamount to accusing Big Company of misdeeds, and get into trouble.

I suspect these kind of situations are unstable, since as time goes by, the “loophole” will be abused more and more, and eventually it becomes untenable, and a judge will rule the “loophole” moot, (especially if the statue of limitations has conveniently expired for the crimes of Big Company). This process might be slowed in slower industries like construction and pollution, but I would imagine it to be inevitable.

My point is, since this probably only works because Big Company, it only works in similar situations where point 2 applies. It does not validate the general theory of why such things would be judged to be legal in other situations in other industries.

Exactly how @teddyh wrote. Make sure you don't tell anyone, don't write it on emails, don't even sleeptalk about this. A judge will get to decide if you were geniunly unknowngly broke some rules, or you are messing with him/her. I will assume that judges don't appreciate being messed around with :)
Not exactly. If you close a company with the intention to avoid legal consequences of your actions only to then spin up another company, there's often some kind of law in place to prevent you from benefiting.

In the UK, these are generally called "phoenix companies" and courts can step in to stop the abuse of limited liability and can apply civil penalties and criminal sanctions to company directors.

I would bet money against this being true.
what's the consequence if someone's product violates GPL ?
If the copyright-holder of the GPL'd work doesn't do anything, the consequences are... nothing.

The owners of lots of GPL'd works such as the GNU project tend to take an approach of quiet negotiation. They will contact the violators and attempt to inform them about their responsibilities when distributing GPL'd software. They want software to be free for examination and modification and many violations are unintentional.

GPL violations are extremely common, especially with Linux. For example every ip surveillance camera runs Linux/Busybox/etc and I have never seen one that provides source.

I believe your last statement is incorrect. Applications written entirely by your developers that merely happen to run on a Linux-based operating system, distributed in conjunction with those works (Linux/Busybox/etc), are separate works within the meaning of copyright law. GPL requires you to provide complete and corresponding source for the GPL’d components and your modifications thereto, but not for independent proprietary applications.

For example, programs compiled by gcc (GPL) are not considered derived works and therefore don't need to also hold the GPL license.

In the case of the topic, that appears to be a violation as the game can be considered a derived work. Most violations are handled on a case by case basis if there is legal action due to the nature of "derived work".

> I believe your last statement is incorrect.

If you distribute binary GPL'd software such as the Linux kernel you also have to provide the exact source used to generate those binaries.

Because ip cameras are shipped with binary Linux kernel images they should also provide either the exact source used or an offer of how to get the source.

> For example, programs compiled by gcc (GPL) are not considered derived works

Yep you're right. We probably just misunderstood each other. I was specifically referring to GPL'd components like Linux & Busybox, not any applications that happen to be running on top of them.

> If you distribute binary GPL'd software such as the Linux kernel you also have to provide the exact source used to generate those binaries.

In this case, the kernel source could be unmodified, which could mean that they could just refer you to where they got it.

Surprisingly, i was happy to see both the bridge saw and the line polisher at my work both conform to the gpl and provide a link to the source code. It pops up on boot. Every time I see the 'this device is powered by free software message' when it powers up it makes me smile.
Correct, they can provide the source for linux, or point you to where you can view the source for linux. The software running on the camera on top of linux does not have to be provided under GPL (in the majority of cases). You would have to prove the software on the camera is a derivative work of Linux to fall under GPL.

edit

> Yep you're right. We probably just misunderstood each other. I was specifically referring to GPL'd components like Linux & Busybox, not any applications that happen to be running on top of them.

Yeah misunderstanding there, my apologies! Modifications to the Linux source would require them to also release those under GPL.

> Because ip cameras are shipped with binary Linux kernel images they should also provide either the exact source used or an offer of how to get the source.

These kind of devices can lead to an interesting situation.

Let's say you make Linux-based IP cameras. You accompany every single one you ship with a CD-ROM containing the complete source code. This completely satisfies your GPL obligation with regard to that unit.

As a consumer, I buy one of your cameras. I have no use for the CD-ROM, check my trash collection company website to find out if CD-ROMs go in trash or recycling, and come next collection day it is gone.

A few months later I don't need the camera any more and sell it used on eBay.

The buyer eventually realizes it is a Linux-based camera and wants the source code.

Q: Who, if anyone, is obligated to provide that source code?

A: As far as I can tell, no one!

You are off the hook because you accompanied every binary copy you distributed with the source code. You would only be obligated to third parties if you had elected to distribute the binary without source and accompany it with a written offer to provide the source.

I'm off the hook because my distribution falls under the first sale doctrine, which basically says that if you own a lawfully made particular copy it is not a violation of copyright to sell that particular copy.

> > Because ip cameras are shipped with binary Linux kernel images they should also provide either the exact source used or an offer of how to get the source.

> These kind of devices can lead to an interesting situation.

> Let's say you make Linux-based IP cameras. You accompany every single one you ship with a CD-ROM containing the complete source code. This completely satisfies your GPL obligation with regard to that unit.

> As a consumer, I buy one of your cameras. I have no use for the CD-ROM, check my trash collection company website to find out if CD-ROMs go in trash or recycling, and come next collection day it is gone.

> A few months later I don't need the camera any more and sell it used on eBay.

> The buyer eventually realizes it is a Linux-based camera and wants the source code.

> Q: Who, if anyone, is obligated to provide that source code?

> A: As far as I can tell, no one!

> You are off the hook because you accompanied every binary copy you distributed with the source code. You would only be obligated to third parties if you had elected to distribute the binary without source and accompany it with a written offer to provide the source.

> I'm off the hook because my distribution falls under the first sale doctrine, which basically says that if you own a lawfully made particular copy it is not a violation of copyright to sell that particular copy.

You must also make the source available upon request under the GPL.

To anybody who possesses a copy. If you distribute the source with the binary, you have absolutely fulfilled your part of the GPL. Strictly speaking, if one does not have a copy of the binary, they're not entitled to the source.
No, you either have to distribute the source with the binary, or provide an offer to ship the source upon request. You don't have to do both. (See section 3)
Ah, I stand corrected. Thank you!
This is interesting.

I think the correct interpretation is that you are not “distributing” the software at that point. Distributing implies making a copy of the software itself, whereas here you’re strictly transferring your ownership interest in the device and existing binary blobs.

I don’t believe this class of transfer is actually subject to copyright terms.

That’s a really interesting theory. It’s probably more iron clad than most schemes because of the video rental case law.
I'm bad at open source licenses, but wouldn't they need to make modifications to the Linux they're running on to be required to distribute their source?
No, the whole binary this code was compiled into needs to be GPL licensed in its entirety.
Because they are distributing GPL'd software they also have to at least offer the exact source they used. If they are using an unmodified kernel, giving users a link to a git tag would satisfy this.

In practice, every embedded use of Linux I've seen has included at least some modifications.

Cynically, I would guess just about nothing. If it could be proved that the GPL'd source was compiled in the real game, and was knowingly taken from a GPL'd source, I suppose whoever holds the rights could sue. I think it'd be difficult to prove sufficiently.
It depends on if and who pursues the violation. For example, apple is violating the GPL with bash by distributing a binary but not distributing all the source code used to compile it.

I believe there are also violations by vmware and lots of others (I believe ubiquiti?)

That said, there are legitimate ways to distribute GPL code, such as a dual license.

You could write code and license it to company A under one license, and release it under GPL to company B.

company A could have any rights or responsibilities you grant, while company B would have to comply with the distribution restrictions of the GPL.

It's also worth noting that the GPL does not restrict how anyone USES the software, it only restricts how the software is redistributed.

Does this mean that any GPL project could reuse source code from this game, under the logic that it all inherently must be GPL licensed?

I'm pretty sure the answer is "no", but I'd like to know why, it makes logical sense...

I'm pretty sure the answer is "yes" if the violation is true and the game has been distributed. Tit for tat.
IANAL but I don’t think this is true.

A person or company that violated the GPL would void the permission granted to them by violating the license and would be liable for having done so. But it would take a court ruling to decide what that means for the parties involved.

For example, the court might give the violating party the choice to either release source, OR to keep the source closed but to financially compensate the copyright holder(s) of the code that they violated the license for. For example. Another possible outcome could be that they could say that the violating party is given the choice between releasing the source OR recall the product and financially compensate the copyright holder(s) of the code that they violated the license for.

Like I said though, IANAL.

So there's two options, either the software is released GPL or they have no right to use the source and it's in violation and has to be resolved?
Either they distribute the source code under a license compatible with the GPL (not necessarily the GPL itself), OR they are committing copyright infringement and must,

- negotiate a license,

- pay damages,

- some other remedy, OR

- nothing at all, if nobody with standing (meaning an author of decides to sue.

This last option is by far the most likely.

I don't get how anything "has to be resolved". The most likely outcome from this is "nothing changes from yesterday".
In practice, letting things run their own course ("nothing changes") one of the methods of resolving the issue, indeed.
I think the answer depends if you can afford a lawyer or not.
The terms of the GPL apply if you have access to the game aka you bought it. You should have access to the code. Catch being you ask for it. Nobody installs Ubuntu and is forced to have all the source.... But it is available as per the GPL.
I don't think that's quite true, based on my reading of it:

> Accompany it with a written offer, valid for at least three years, _to give any third party_, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange

The company accepts the licence by using the code (or don't accept it, in which case it's copyright infringement), so they must offer it to any one.

No, release under the GPL could be (part of) a way to settle a lawsuit for infringement, but it's not automatic.
In fact, under GPLv2 you can no longer distribute the code at all (even unrelated to the original infringement) until you are forgiven by the original copyright holder. This clause was removed in GPLv3.
IANAL.

I believe the answer would be "no". Essentially, the owners/holders of the copyright could, in theory, reach an agreement that would permit the publisher to keep publishing the game under a commercial license. That is, just because the code was licensed to you under the GPL (or available to you under that license), that doesn't mean that it had to be that way for everybody if the copyright holders struck some other deal.

Of course, here, the copyright holder is … everyone who has made changes to the kernel? Significant changes¹ to the kernel? (And see a court for the definition of "significant"?) IDK. For proprietary stuff owned by a single entity it is more straight-forward, but the very nature of FOSS makes this more interesting.

I wonder if it would only require those that worker on that file? (Can it be separated from the rest of the project? Again, IDK, ask a real lawyer!) At least that might be a shorter list of authors, and presumably you only need to involve those up to the point where the code was copied.

¹I say significant because I believe that "significant changes" is what would cause the work to become a "derivative" work, and that person to be the author of that derivative work. But in Oracle v Google, rangeCheck was sufficient for a copyright violation despite being a "trivial" function to most of us, so the bar seems pretty low?

The copyright owners here are only the people who wrote the specific function in question. Additionally, I believe you'd only need one of those people to bring a suit or other legal action.

Note that some FOSS gets around the problem of multiple owners by requiring an attribution (e.g. GNU).

> Does this mean that any GPL project could reuse source code from this game, under the logic that it all inherently must be GPL licensed?

No, this only means that the game developers are violating the copyright of the copied code. The GPL is not "viral"; including code under the GPL in a project without following the GPL only means that the GPL doesn't apply to it anymore ("[...] and will automatically terminate your rights under this License"). Since there's no longer any license allowing it, the default restrictions of copyright apply, and the result cannot be distributed without the permission of whoever holds the copyright to that piece of code under the GPL.

Two wrongs don't make a right. The way the GPL works is: you are given permission to redistribute someone's copyrighted work provided you comply with particular conditions (such as providing similar permission to your end users). If you don't stay within those conditions, then you're violating that person's copyright (you're redistributing their work without permission) and they can sue you. But that doesn't mean that I can distribute your work without permission, any more than you assaulting my neighbour means that I'm allowed to assault you.

Now the makers of this game and the copyright holder for the GPL work might end up reaching a settlement where the game engine is released under the GPL. (I know of one case of this happening: a Japanese visual novel producer, Leaf, released their engine as used in several games e.g. Kusari . As a result of this there's an open-source engine that you can use to play those games on linux). Equally they might end up reaching a different settlement that involves e.g. withdrawing the game from distribution (this happened with the Wii ports of some classic SCUMM games - they used ScummVM in violation of its license, but could not release their code under the GPL without violating the conditions of the Nintendo API they were using).

As a note, the FSF says on their website that their primary goal in any GPL litigation is to get the company to release the source under the GPL.
True, and in practice most copyright holders who release their work under the GPL feel similarly. However, in general a copyright holder is under no obligation to accept such a settlement, and in principle if you distribute GPLed work without conforming to the GPL terms then you are liable for statutory damages (in the US, $50k for accidental infringement and $150k for wilful infringement, per act of infringement) just like for any other act of copyright infringement.
Is that any copy sold, or eg any release of your software?
That's up to the courts to interpret. I don't know what the precedents are.
Would this mean that only their changes to the GPL would be forced to be made public or the whole piece of software using it?
The whole thing.
This is one reason I hate npm. Who really checks that sprawling byzantine dependency tree to make sure that there isn't some micropackage that has a GPL license that could get included and taint the whole thing?

I just have the horrors when I look at the package.json file after the front-end folks have been allowed to run free...

Shouldn't this be something that npm could support checking as a first class feature?
(comment deleted)
There's tools [0] to help check the licenses of all your dependencies. I think larger companies build up a whitelist of libraries as they're reviewed and approved.

[0] https://github.com/davglass/license-checker

Yep. When I was at IBM, part of releasing something was a review every of dependency and it's license. The stuff I worked on wasn't allowed to include any GPL code. (Or WTFPL, for that matter, but I think that had more to do with curse words than actual license issues.)
Couldn't you just "relicense" WTFPL code as MIT code (or proprietary code, for that matter) and call it a day?
Haha, probably, but it wasn't a big deal to replace it with something else.
Shouldn't you be more concerned about the quality of the code? If no one has bothered to check the license, I'm sure nobody has studied it for a backdoor.
There are many reasons. That is another huge one.

Most of the time, nobody even is aware that including some new widget code ends up downloading half the internet, making our code size increase, our build times extend, and opening up a huge volume of attack. No one has any idea what dragons might lurk in that mess, or sometimes even that there might be dragons at all.

one can hope that front-end and back-end are truly separated
Correct and if nobody asks they are fine in doing so. But they must comply if possible. If the code is gone then I am not sure they can be forced to give it.
> Correct and if nobody asks they are fine in doing so. But they must comply if possible. If the code is gone then I am not sure they can be forced to give it.

There must be some kind of remedy available in that event.

Money
Usually to the original developers (Authors of the licensed works) from which the GPL code came from.
They would have to release the whole thing to come into compliance with the license, but they are not obligated to do so.
Part of me wants to express the irritation that people being neurotic about the GPL could cost us access to old games like this. I worry that someone overzealous would take down source for an 18 year old PS1 game over it.
The archivist in me loses this fight, I feel general adhering to software freedoms is more important and the greater good compared to a single game.
A "single game" is unlikely to be affected. Many games are likely violating the GPL, and it's likely that if there are takedowns because of it, there will be a chilling effect on future source code release.

Are you really protecting software freedoms if it ends up, in fact, discouraging the process of freeing more software?

Well, it's not freeing software unless they release the game GPL, if they don't then they're just illegally using GPL source code making the source far from anything free.
You talk about software freedom, but I think there's no greatest freedom than being able to use whatever software I want to create something humanity will enjoy.
Yes, of course. It's just that if the software you use (well, incorporate) is GPL-licensed then you also get to release the source code for something humanity will enjoy:)
GPL is harmful to software freedom.
GPL is harmful to developer freedoms but incredibly beneficial to user freedoms. Please do not conflate the two.
Why would this cost access? It's leaked source code of something that we thought wasn't permitted to be released, which we've now learnt was supposed to be accessible.
People aren't going to take down the source for a GPL violation. If anything, this will cause the source to be released under the GPL, so it's not illegal to use/host the source code.

Surely the idea of checking other games for GPL violations has the potential to open more codebases, lest the offenders risk financial penalties.

Your qualification of "neurotic" is entirely non-warranted IMO. As far as I can see so far all that's happened is that the source code of that game got leaked, somebody stumbled upon Linux code while perusing it and pointed it out.

Besides I think you're being ridiculously alarmist because for one thing archives of the PS1 library (including this game) are trivial to find online, so there's basically no chance for this game to disappear forever and on the other hand if this GPL infringement makes the owner release the source code under the GPL it will make the game more available than ever since it could potentially be ported to any computer you want (although you'll still have to buy the game for the assets).

Now you may argue that having potentially illegal downloads of PSX archives is not the same thing as having some legit source for getting the game, but then I think you're in a catch 22:

- If you think that the owner's IP should still be respected and enforced even though it's an almost 20 yo game, why shouldn't the GPL?

- If you think the GPL shouldn't be enforced because it's an almost 20 yo game, why do you care about the owner's IP?

I'm more of a BSD kind of guy but I really think it's unfair to blame the GPL or its defenders for what is a fuck-up by the original devs. Introducing a huge chunk of GPL code in a proprietary codebase like this is frankly a rookie mistake.

I'm guessing nobody ever asked for the source code, so maybe it wasn't that violating, and now we know it's GPL. ;- )
Well, the GPL requires that they have the license text available somewhere.
I wonder if there’s an ML approach that could be used to fingerprint binaries compiled from GPL code. Then I wonder if that could be used to justify discovery / win a suit.

I have no idea how this would work, but it strikes me as plausible?

That strikes me as sort of like dmca spam you see from music companies...
> fingerprint binaries compiled from GPL code

I think it's actually a good idea for discovering GPL violations, but false-positives are a real issue: it's trivial to reuse public-domain or BSD code and relicense them in a GPL program, and it's not uncommon obtain a separate license/exemption from the copyright holder. Also, some things are not even copyrightable (e.g. a lookup table of generic data). Discovering identical code snippets don't always mean a GPL violation.

But as long as the threshold is not too low and a real human (instead of a robot) is reviewing them case-by-case, I think it's okay.

You could use it for discovery. To win a suit you still need to get someone with standing to sue in the first place. That's often harder.
What are the violations? The twitter post just states that GPL was violated, but no evidence offered.

Edit: I'm looking at it on mobile, and the only link seems to be a self referential link, not to anything of substance.

If you read the full thread they took the vsprintf() implementation from the Linux kernel circa year 2000.
The proof for that seems to be the existance of 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz

I guess this comment is now a) vsprintf and b) a gpl violation, too.

Surely your comment isn't a GPL violation! If so then I am going to release a GPL project with every word in the dictionary, so that all comments are GPL violations.
There’s a whole thread below the top post.
Yes, Twitter "threads" are annoying. It's just blog posts chopped into Twitter format.
A page with other prototypes and builds from this company may be seen here:

https://hiddenpalace.org/Climax_lot

From the looks of it, Climax Group primarily developed licensed games and shovelware. Say what you will about the quality, but from the number of build dates for each game, they clearly had their shit together with respect to version control.

>A page with other prototypes and builds from this company may be seen here:

That is an insane amount of data! Very impressive.

Super cool that the entire soundtrack is a bunch of FastTracker 2 XM files.
I'm surprised that no comment has extrapolated that since this was a vsprintf implementation copy, the final binary would be non compliant only if the machine code generated for it was distributed, but if it was only used for debugging internal builds (as I would assume), then the original developers didn't run afoul of the license. Am I incorrect in my understanding?
(comment deleted)
The author notes that they were able to find constants that the code uses in the binary, so odds are it was at least partially distributed.
The constants mentioned are the following:

"01234567890abcdefghijklmnopqrstuvwxyz" and "01234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ"

It's very possible that separate implementations of this function would use those same constants. It's not as if they're some completely arbitrary strings.

When these constants don't appear elsewhere in the source?

And what, they'd have another implementation of this function, but have a different one with their code because... reasons?

I mean, if you got "the source code" for a project at my work, you might get the raw source for Project A and then a bunch of already compiled libraries we put together for use, some of which could do similar things to existing code.

But yah it's probably from Linux, I just don't think the constants alone are a smoking gun.

These constants should appear in most arbitrary-base-integer-to-string functions. I wouldn't say that this proves anything.
Isn't it common to leave debug code in production software?
Not on the PS1 with 2M of RAM.
I work on AAA games and we definitely don't leave any debug code in production copies of the games. It's all #ifdef'd out in Retail builds.
I’m always surprised when I see you here but I’m not sure why.

Anyway. I can corroborate this. Debug code is /really/ harming performance in AAA games. Also, you want to remove your “cheats” that QC use to skip chunks of the game.

Older games are known for still containing various cheats to skip chunks of the game or make them easier. I'd guess a PS1 game might still have debug left in along with cheats simply either due to time pressure or someone forgot.
In my experience, we would leave the cheats in retail builds of those old games mostly because leaving them in was less risky than removing them. They had been there during all of development and testing, and we were reasonably certain of the build’s stability, but.. pull them out and your compiled code layout changes, data layout potentially changes, and who knows whether it’ll expose a new misbehaviour we’ve never seen before or know to regression test.

It’s just much much much safer to leave the debugging assistants (level skip, etc) in place. Especially back in the days when we couldn’t issue patches after release!

(Also, depending on era, you could feed a cheat code or two to magazines/websites/etc to get another article written about your game.. doubt that trick works any more, though!)

As a kid from the 90s, I can confirm that I purchased more than a couple PS1 games that I learned about by reading their cheats lists! I wouldn't have found out about the games any other way, since we didn't get reliable internet access until much later. Those game magazines were a big influence on my younger years.
It really depends on what you mean by "debug code". If you mean special versions of the code built with "-O0 -g" (or the equivalent in whatever compiler/toolchain they're using) then obviously that's going to be a problem. If it's just helper methods like "go directly to section X in the game", "spawn any monster" or "if global variable DEBUG is 1 then log this" then that can easily make it in the final product if they're not optimized away in production builds. Those won't seriously harm performance either, just bloat the binary a little (which will most likely be totally negligible since modern games routinely end up using dozens of GB).
I’m sorry, I don’t know what statement you’re making really.

Maybe (uncharitably) you’re trying to look smart or maybe you’re also in the industry and I just don’t understand what you’re saying :/

When I talk about “debug” builds it’s actually a large thing; Not _only_ is it switching the compiler (Microsoft C++ compiler ofc) to build stripped/optimised binaries, it’s also removing things like, built in command consoles, logging subsystems and “phase handlers”, budget profiling for subcomponents of the game (AI, lighting/shadows, props) and also removing all assert statements.

Simple things (like asserts, which are essentially switch statements) need to run in tandem with other processes, when you’re trying to push 60/120 frames per second nearly every switch statement is going to “cost” something. That cost can be high very quickly. So, you don’t tend to leave things in which check conditions of various environment variables.

I'm always trying to look smart but I don't always succeed.

Anyway, I'm not part of the industry but I do hack around in emulation circles and I've dug pretty deep in some of these old games, my point was that you can definitely end up with dead or almost-dead debug code that doesn't harm performance significantly (because it's never or almost never called) and lingers in the final binary.

>when you’re trying to push 60/120 frames per second nearly every switch statement is going to “cost” something

I mean it obviously depends on the frequency of the test. If you have some check every second that reads like:

    if (dump_stats) {
      dump_stats_to_stdout();
    }
Then it's obviously going to have a negligible impact performance-wise as long as enable_stats is false. Then if this code is not explicitly disabled in the production build you might be able to use a memory hack to switch enable_stats to true and get some potentially interesting output out of it.

This is not (just) me trying to look smart, it's stuff that you can actually encounter in some games and firmwares in the wild.

Obviously you know what you’re talking about, but this comment comes off as unnecessarily rude to me. And not befitting of Hacker News.
Maybe it's less common now that tooling and frameworks are more standardized but having spent quite a lot of time messing with the PSX and its emulators I can vouch that it's fairly common to find debugging code and strings in production versions. Simply using an emulator to enable the debug UART will spew quite a lot of debug infos for some games. FFVII has a "debug room" that you can't normally access but is present on retail copies. I also seem to recall that the PC version shipped with full debugging symbols which gave reverse engineers a field day.
(comment deleted)
Isn't it fine since they've released the source?
They didn't release the source.
Plus that wouldn't be enough, it'd have to be released under a license with the same rights (lots of source out there is just for viewing, and can't be reused).
Love clicking on twitter links and being completely confused. They've just stopped showing threads and replies on the non-JS page anymore. This is what we see, and this does appear to be a recent change: https://imgur.com/94u95no there's nothing below this, this is the full page.
But imgur works without JS?
I don't understand what imgur has to do with Twitter deciding to stop serving content to browsers with JS disabled?

I was just trying to explain why some of us were confused -- until I tweaked NoScript, the first tweet is shown by itself and is sort of perplexing without the rest of the thread as context.

Funny, I had a feeling foone had posted this even before I clicked on it. Seemed like their sorta thing. :)
When I was in games the moment I saw the letters GPL was the moment I closed the tab. GPL code is too dangerous to even read. Stay far far away and hope no one screws up and poisons your entire codebase.
But that's the point, isn't it? Are you developing free software? By all means use this GPL library! You are developing proprietary software? Well, too bad, you don't get to use this code. Either develop it by yourself or look somewhere else. Not that what I'm saying is contrary to what you said, I'm just pointing out that it's by design.
What the parent poster mentioned is not using a GPL library, but merely looking at its code. The thinking is that once someone reads some piece of code (no matter its license), they're "tainted" forever, and any code they ever write in the future could be treated as "subconscious copying" of that code they had read. If one is afraid of including any code under the GPL (or any other specific license), and one subscribes to that "subconscious copying" theory, it makes sense that one would avoid even getting near code under that license like the plague.
Does this mean they can open source the Spongebob game to port it to different platforms?
How does using GPL impact a SaaS product?
Depends on which GPL, basic GPL can be sidestepped. The Aferro GPL (AGPL) was made specifically to handle the SaaS case.
Can you explain further what you mean by sidestepped?
The more we harp on license, the less we can actually save. The problem isn't that it's GPL. The p problem is that GPL is as much a part of the copywrong system as any other license. Three years is inordinately long to support an offline game like that, especially a licensed one. And frankly, I think in the license wars, I have to back Nickelodeon over GNU-GPL folks.
You can avoid the requirement to offer it for three years by shipping the source along with the binary. It's one or the other, not both.
There are plenty of BSD licensed implementations of this surely. There was no need to use GPLed code in this context.
I agree but most PS1 games were compiled using GCC. The developers probably got used to using GPLed tools and forgot something like this would change the license of their software (even if it wasn't actively used).
I'm less interested in the GPL violation aspect, and mot excited to get an insight into what it was like to work on that team, 20 years ago. Minutiae like how to burn a build to CD https://twitter.com/0xGradius/status/1137123492329951232?s=1... feels like a window into the past.
Burning a build CD wasn’t anything special, the PS1 dev kits read normal CDs (didn’t have the copy protection). Burning of any CD was flaky back in the day (lack of decent buffering)
I remember having an old 2x Traxdata drive with almost no buffer - so I certainly lived through the hassle of early drives. It's just exciting to read about other peoples' work flows.
Maybe it's a wake-up call for the contemporary prissy developer blogging about coding font ligatures, to learn that whatever masterpiece games they enjoyed in their youth were made in crappy OS using crappy tools and with dodgy coding styles.
Absolutely - I think we could all benefit from being more pragmatic and not sweating the small stuff.
I hate all this stuff, I wish Google just blocked all GPL code for me so I never had to see any of it. I have committed to many open source projects and have open soured my own projects. Of course I appreciate anyone is free to use what ever license they like but I do find is frustrating that a game (which is a complex piece of software taking lots of development time) gets picked apart because of a string formatting function, which should really have been available in the system libs, but as it wasn't a quick replacement was grabbed, with a small amount of extra time I suspect a replacement could have been found which wasn't GPL. But due to the lack of care, understanding, appreciation, someone could get their meathooks into the developer/publisher and cause harm. The software didn't sell because of this stupid function, the stupid function almost certainly existed, GPL free in many places, the GPL version had no value at all over any other version, yet where the developer cut and pasted from can have such catastrophic consequences. If it makes no difference to the end binary I feel like a dev should just be able to find or write an alternative and say you are right, that slipped through, sorry, we have now replaced it in our code tree with this version, it makes 0 difference to the end product, so building and shipping a new version would make no difference, simply making this change in our source tree effectively resolves the issue.
In this particular case it seems fairly unlikely that there will be any significant consequences. At worst, the game source code might now be forced into a GPL license. It's mostly worthless at this point anyway.

It is interesting to wonder how this case may have been handled if it was overall more relevant, though. I think a court might assess the actual value of that one function and say that it was something like fair use. Might be a bigger problem if there's a lot more, though.