Open source GZDoom community splinters after creator inserts AI-generated code - Ars Technica
https://arstechnica.com/gaming/2025/10/civil-war-gzdoom-fan-developers-split-off-over-use-of-chatgpt-generated-code/
122 points · 30 comments · view on lemmy.world
30 Comments
etchinghillside@reddthat.com · 37 pts · 297d
https://github.com/ZDoom/gzdoom/commit/584af500736b0317e42824f39285ed3d954fc4e2
The commit in question.
mp3@lemmy.ca · 22 pts · 297d
Basically a nothingburger..
sauerkrautsaul@lemmus.org · -19 pts · 297d
dont use this term.
shiftymccool@programming.dev · 14 pts · 296d
Ok, random internet stranger, i won't use that term because you so eloquently stated why it's not good to do so...
sauerkrautsaul@lemmus.org · -19 pts · 296d
I just dont like it ok
punkibas@lemmy.zip · 14 pts · 296d
Please refrain from censoring other people just because you like to. I just don't like it, OK?
sauerkrautsaul@lemmus.org · -8 pts · 296d
The reason I don't like it is because its infantile. Fox News hosts use the term all the time to dismiss quite true statements about whomever they're defending because they're talking to stupid people who need to have things dumbed down in order to understand them.
beetus@lemmy.world · 10 pts · 296d
We aren't on Fox news here. Your concern trolling is also a nothingburger
kerrigan778@lemmy.blahaj.zone · 10 pts · 296d
Huh? Why not?
Outtatime@sh.itjust.works · 13 pts · 297d
Holy shit. It's the end of the world. AI helped code a few lines to detect dark mode on a Linux system!
LiveLM@lemmy.zip · 10 pts · 296d
The problem is here is not AI, the problem here is pushing code that didn't even compile straight to main. It's a huge collaborative project, running it as a one man show just doesn't work anymore.
Had he made a PR/Draft, none of this would have happened. Hell, even his commit message says "needs to be reviewed before being deployed"
ChairmanMeow@programming.dev · 6 pts · 296d
Which by that point they'd already fixed. They mentioned they also accidentally pushed to the wrong branch.
I dunno, this just looks like someone accidentally made a bad commit and instead of being mature about it and letting them fix it we get statements like "all bridges have been burned" and a split in the community. That's a bit overblown, and if at the first sign of disagreement the decision is to blow up a project you're making it very hard to work with you.
LiveLM@lemmy.zip · 3 pts · 296d
Well, in that case, fair enough.
However, given that a lot of contributors allude to "putting up" with him for years in the comments of the GitHub issue, it seems it wasn't just a bad commit that broke the camel's back
ChairmanMeow@programming.dev · 2 pts · 296d
That's fair, I don't know what other things have come before. It just seems really odd that there was such a severe reaction to what happened here.
Outtatime@sh.itjust.works · 1 pts · 296d
Gotcha
Markaos@discuss.tchncs.de · 8 pts · 296d
Well, the detection is broken for KDE and backwards in the XDG implementation (which is also only used as a fallback when the three DE-specific implementations fail, even though all of them actually support XDG so having separate implementations is pointless).
Also with the way it's implemented, it will have unexpected results for users who have both KDE and Gnome installed (or at least have leftover configuration files) - if you for example used KDE in the past with a theme considered to be "dark" by this and now use Gnome and have it set to light mode, you will get dark mode GZdoom with no obvious reason why.
Oh and the XDG implementation is also very fragile and will not work on everyone's system because it depends on a specific terminal utility being installed. The proper way would be to use a DBus library and get the settings through that.
And when somebody comes to fix it, they will have to figure out a) what's so special about the DE-specific implementations that XDG wasn't enough (they might just assume that XDG isn't supported widely enough), b) learn how to detect dark theme properly on the DE they're fixing, c) rework the code so that there is a difference between "this DE wants light mode" and "couldn't figure out of this DE is in light or dark mode" - both of these are now represented by the "false" return value.
I don't think a well written and functioning code made with AI assistance would get a response this strong, but the problem here is that the code is objectively bad and its (co-)author kept doubling down about something they probably barely even checked.
ferric_carcinization@lemmy.ml · 4 pts · 296d
I mostly agree with you, but this is not quite true:
Yes, the DE-specific implementations is pointless (as far as I know, I use a WM), but the XDG implementation is actually used first, and the function returns true if any impl returns true, like
xdg() || gnome() || gnome_old() || kde().This isn't that bad? Yes, having an enum with three variants would be better and more readable, but the code just defaults to light mode if nothing wants dark mode, and prefers dark mode even if separate impls want both light and dark mode.
With multiple impls, you have to resolve conflicts somehow. You could, for example, match on current DE/WM name, only using the current DE's impl, defaulting to XDG, avoiding the problem entirely or just use first impl that doesn't return "default" or "error".
I don't like AI generated code, having reviewed some disgusting slop before. But it's better to criticize the code's actual faults, like the incorrect impls (which you listed) or failing the Linux CI.
Markaos@discuss.tchncs.de · 5 pts · 296d
True, I must've read the code wrong when making the comment.
Yes, which is why I take issue with a PR (or rather what should have been a PR) that introduces crap code with clearly visible low effort improvements - the submitter should've already done that so the project doesn't unnecessarily gain technical debt by accepting the change.
Yep, that's why I think it's important for the implementations to actually differentiate between light and fail state - that's the smallest change and allows you to keep the whole detection logic in the individual implementations. Combine that with XDG being the default/first one and you get something reasonable (in a world where the separate implementations are necessary). You do mention this, but I feel like the whole two paragraphs are just expanding on this idea.
I made a mistake with the order in which the implementations are called, but I consider the rest of the comment to still stand and the criticisms to be valid.
JTskulk@lemmy.world · 35 pts · 297d
The fork is called UZDoom and it's already in the AUR. I read the Slashdot story on this today, and there's a little more going on here. AI code grosses people out, but the bigger issue is that it's being used in a GPL3 project which kind of isn't allowed. The lead dev was also being a bit of a twat and not cooperating with the community. Long live UZDoom!
chicken@lemmy.dbzer0.com · 12 pts · 296d
I followed the links and I think the original argument being referenced has been twisted around a bit game-of-telephone style, GPL prohibiting inclusion of LLM generated code isn't what it's claiming, it's more that they think AI trained on GPL code violates it when it happens to reproduce it exactly:
https://github.com/ZDoom/gzdoom/issues/3395
https://www.fsf.org/licensing/copilot/on-the-nature-of-ai-code-copilots#5.%20What%20About%20Copyright?
It might also be the case that the GPL prohibits LLM generated code somehow, I don't actually know, just want to point out that no one has made an argument for that.
criss_cross@lemmy.world · 34 pts · 297d
Like I don’t hate all AI coding but there are legit questions about using it in GPL projects.
Also “hey ChatGPT said this works but fuck if I know” is a big no no when coding. You still own what you ship and need to understand what you’re actually pushing.
LiveLM@lemmy.zip · 17 pts · 296d
Precisely on point. Lots of comments are talking about "Knee-jerk anti-AI" as if pushing broken code and washing your hands is ok.
Really wish the article headline was highlighting this issue instead of singling out AI.
milesluigi@programming.dev · 8 pts · 296d
One of the very first commits on the forked project UZDoom was to disable billinear texture filtering by default. That was a default setting that many in the Doom community wanted changed but Graf (the original maintainer) insisted on keeping it enabled.
stsquad@lemmy.ml · 6 pts · 297d
The article mentioned there is a long history of forks in the open source Doom world. It seems the majority of the active developers just moved to the new repository.
Lembot_0004@discuss.online · -12 pts · 297d
Truscape@lemmy.blahaj.zone · 18 pts · 297d
Hello again, inflammatory human utilizing a robotic facade.
Have you said anything positive in your post history? Or do we need to wait for rev. 10?
oeuf@slrpnk.net · 9 pts · 297d
I'm very tired and got mixed up for a moment about which of you was the bot and thought "Awesome! A bot that points out when someone is being continuously negative!"
I hope someone makes a bot like that. That would be a good bot to have.
Truscape@lemmy.blahaj.zone · 4 pts · 297d
Lol, sorry for not being a bot - this dude's just been posting the same shitty takes on almost all of my sub feed, so I enjoy calling them out. They're human tho, since they did craft responses that weren't slop at least.
oeuf@slrpnk.net · 3 pts · 296d
Jolly good, carry on!