Live data from Hacker News

The PS1 Game Spongebob Squarepants: Supersponge Violates the GPL

twitter.com

141–150 of 165 posts

Re: The PS1 Game Spongebob Squarepants: Supersponge Violates the GPL

#141
post #134
post #93

Earlier quoted context omitted.

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.

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 th…

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.

Re: The PS1 Game Spongebob Squarepants: Supersponge Violates the GPL

#142
post #114

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.

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.

Re: The PS1 Game Spongebob Squarepants: Supersponge Violates the GPL

#143
post #110

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.

Re: The PS1 Game Spongebob Squarepants: Supersponge Violates the GPL

#145
post #141
post #134

Earlier quoted context omitted.

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 th…

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 conso…

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.

Re: The PS1 Game Spongebob Squarepants: Supersponge Violates the GPL

#146
post #7

Earlier quoted context omitted.

> 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?

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.

Re: The PS1 Game Spongebob Squarepants: Supersponge Violates the GPL

#147
post #107

Earlier quoted context omitted.

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.

Re: The PS1 Game Spongebob Squarepants: Supersponge Violates the GPL

#148
post #141
post #134

Earlier quoted context omitted.

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 th…

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 conso…

Obviously you know what you’re talking about, but this comment comes off as unnecessarily rude to me. And not befitting of Hacker News.

Re: The PS1 Game Spongebob Squarepants: Supersponge Violates the GPL

#149

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.

Yes, Twitter "threads" are annoying. It's just blog posts chopped into Twitter format.

Re: The PS1 Game Spongebob Squarepants: Supersponge Violates the GPL

#150
post #53

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.

Post reply on HN