site banner

Friday Fun Thread for August 2, 2024

Be advised: this thread is not for serious in-depth discussion of weighty topics (we have a link for that), this thread is not for anything Culture War related. This thread is for Fun. You got jokes? Share 'em. You got silly questions? Ask 'em.

1
Jump in the discussion.

No email address required.

I generally agree with the effort to preserve games. If you also agree I think you should do the following things:

  1. Buy games from companies with a reputation for preserving or releasing games. Bethesda open sources their games after some amount of decades.
  2. Don't buy games from companies that have a reputation for locking them or destroying them after some period. Review bomb any games that get locked.
  3. Go on patreon or other crowdfunding sites to pay money towards people that preserve games.

The thing is I strongly doubt legislation is going to get them what they want.

There are a few paths this goes down:

It immediately starts too harsh and too broad. Gaming market in Europe is generally destroyed except for the largest games. No one else can afford the compliance or lawyers for what is already a hard market to serve (non-english translations for small player base). It never gets fixed because gamers aren't a strong enough political entity, and mostly it just enshitified the market, so it screws over niche gamers in niche markets. And everyone else thinks it worked and any attempt to reverse it will be an uphill battle.

It starts too narrowly. The rules are easily dodged. This could be like some exception written for MMOs and then every game puts in a dumb feature that allows them to be an MMO by whatever standards the law has laid out.

It stays too narrow and continues to do nothing or it gets expanded into the first scenario.

At no point do I think the EU will be "too lenient". They'll use their regular fee structure which is % of global revenue or instantly crippling payments for a small business. Not that the size of the punishment for small businesses will ever matter. The legal hassle alone won't be worth it.


I'm also surprised from a programmer/coding perspective. Surely this guy must know what it's like messing with old code? Maybe I'm super ignorant or an absolutely shitty coder. But I'd say it's almost an order of magnitude harder to write code that can work in two decades then it is to just write code that works for two years.

I'm also pretty certain that any games with live services and large companies might be a mess of dependencies on external proprietary 3rd parties. Say a game company works with a hosting company for the online aspects of their game. The hosting company does a bunch of optimizations for the game company as both a service and lock in effect with that game company. The game is nearly unplayable without these improvements from the hosting company.

I basically see most programs that work for ten years as minor miracles. I'd compare them to buildings, but that they age way faster. A ten year old software program that does a significant amount is like a large fifty year old building. Probably with similar maintenance costs. The parts are no longer standard. The people that built it have long moved on. No one would build it the same way if they started today. And while the structure is still sturdy and fine, all the piping and internals that move stuff around is really starting to show it's age. If it wasn't built to last this long then its probably getting to the point where you could tear it all down and build it from scratch for cheaper.

If you aren't a programmer you are probably rolling your eyes and thinking "how does software wear out faster than copper piping". And I'm shouting "it's the demons!" with a crazed look in my eyes, cuz I don't fuckin know how it happens. Better people than me have written about how programming sucks.

The people at valve are top level geniuses in their field and they've written stuff that is still chugging along as some of the best modding software 20 years later. Maybe this petitioner got their start on valve related stuff, so my best explanation for him is that he is super spoiled. But if you wrote the perfect law that basically said "be like valve" it would still basically destroy the gaming industry, because no one can meet that standard. (Unless the valve devs released some super amazing software to make it easier for everyone, and they probably would if it meant saving Steam).

Sorry that rant got way longer than expected, also typed it on my phone, so it might have more spelling and grammar mistakes.

And I'm shouting "it's the demons!" with a crazed look in my eyes, cuz I don't fuckin know how it happens.

I shout "it's the demons!" all the time because that's the traditional example of how it happens.

A coworker writes code with Undefined Behavior. I point out that the C or C++ standard says the compiler is now allowed to let their executable do anything, including make demons fly out their nose. They point out that their code passed a couple tests. I point out that the nasal demons are actually still a best case scenario, because "anything" also includes "passing tests selectively or temporarily".

The worst case scenario is also a typical scenario: the UB works at first, but then in a couple months or years someone uses a different CPU type, or a linker goes to a different object file first, or a compiler gets a more aggressive optimizer, or an updated library leaves the heap in a different state, or a different thread starts winning races, etc. and then the code starts obviously breaking, out in the wild, where if we're lucky it is now crashing and making users scream at us or if we're unlucky it is just producing silently corrupted results, and where in either case the original concern has long been forgotten and the debugging will have to rediscover it from scratch.

And one might read that and smugly think "so don't use C/C++", but they're actually much better about UB than most dependencies. UB in C++ is "you wrote code clearly described as UB in a 300 page standards doc", but in most libraries it's "the API and the scraps of documentation said you needed to do 'X' but the developer really meant you needed 'W,X,Z' and if you did 'W,X,Y' instead you'll start breaking after the update next July, which you can't avoid because it's the only bugfix for a corner case your users started hitting in May"!

(I try to explain this without getting a crazed look in my eyes; success rates vary.)

As an example, I'd point to City of Heroes as kinda a best-case scenario: an employee of the studio operators for an MMO leaked pretty much everything (source code, development tools, even player data!), the code ended up being relatively drag-and-drop for standard off-the-shelf desktop machines (modulo a pretty steep RAM cost even by the standards of 2020), and the dependency list wasn't that bad while the paid dependencies were scaling up their free versions rapidly.

((And, bluntly, NCSoft pissed off almost every single person at Paragon Studios, in ways that they were quite willing to hurt NCSoft for so long as they couldn't get sued over it.))

But it still had people working on it had to do a ton of tweaking work, either to get it to run even moderately stably without dedicated staff, to update the client to handle arbitrary server addresses, and a decent amount of other black magic that SCORE wasn't talking about publicly. And it is a best-case scenario, without much in the way of middleware, jealously protected internal code for other competing products, or obnoxious infrastructure asks. If rather than free(ish) MS-SQLExpress it'd been some weird solidDB bullshit, or if the instances required some goofy mess of microservices as a minisharding behavior? What if some code dependency had license that couldn't be passed to users or resold?

By contrast, take Glitch. Not only were its assets in a much more complicated state given the development of the game, it depended on Adobe Flash. Some of it was open-sourced, surprisingly, but even before the death of Flash and ActionScript it wasn't anywhere near usable; now, much if it's barely useful. Even had every single part of the game leaked, it'd be a significant project to convert. ((And then OddGiants moved to Unity, right before the license rework.))

In practice, this puts really strong pressures toward either leaving MMOs in maintenance mode forever, breaking them off into other companies that go completely can't-punish-us bankrupt, or not releasing anything but what their investors are absolutely sure will be a forever hit. Maybe that's worth it, or there are ways to reduce these pressures by careful framing of the regulation.

But I'm not optimistic, and too many responses just feel like kicking the can down the road under the assumption someone will fix them, or make them not count.

I had close to zero knowledge of game preservation efforts, but what you describe is exactly what I would expect given my history in software.

Buy games from companies with a reputation for preserving or releasing games. Bethesda open sources their games after some amount of decades.

Huh? What games did they open source?

Search engines suck nowadays. Can't find source. Chatgpt agrees with me that they've released source code for TES 2, 3, and 4. I think they do so after they drop all support for the game.

If TES3 refers to OpenMW, that's not Bethesda opensourcing their game, that's a bunch if fanatics rewriting the game from scratch, after reverse-engineering the game's data files. If the other TES games have their own FOSS versions, I expect them to have come about the same way, rather than being released by Bethesda.

Big studios releasing their code happens, but is very rare.

Ya I got a few things mixed up. Bethesda released Arena and TES 2 as freeware, and I must have mixed that up with hearing about the open source projects for Morrowind and Oblivion.