If people want to develop games with AI, they’re welcome to. I don’t think anyone is saying otherwise here.
But some of us don’t want to, and that should be okay as well. That seems to be the motivation behind the thread.
If people want to develop games with AI, they’re welcome to. I don’t think anyone is saying otherwise here.
But some of us don’t want to, and that should be okay as well. That seems to be the motivation behind the thread.
That’s good to hear, though things so linked with life and death can’t be compared with art. It’s not life or death when we’re making games that we have to use LLMs or run out of time or fall behind. If folk want to make games with LLMs then it should be it’s own thing, away from fully manmade games.
Also, giving coding away to LLMs is bad, like it is to give away writing. Good code is pretty and an art, as far as I know. This is less of a bother for only coding for casual games, though, and moreso for bigger things.
Agreed, and I don’t say otherwise. In fact, I personally would not play a game that has been developed using an LLM. And to emphasize, my point was: what does that actually mean? Where is the line drawn?
For some people it is enough, if the text on screen is written by a human.
For some people the text on screen and the game’s code has to be written by a human. I consider myself actually in this range of the spectrum.
Some people seem to reject even if the compiler was written with AI, so a secondary tool that has nothing to do with the human made story other than compiling it to machine code. My determination was: if you are in this category, you are making a strong statement.
All of this is fine. I was just trying to bring the conversation into a direction where the community considers where the line for such a human made seal is drawn. And as @kamineko already mentioned, Henrik’s stated goals seem pretty unambiguous. I wanted to understand if these goals are in sync with the goals of the community.
Given the split here, I wonder if multiple distinctions would be useful or just confusing. Something like:
(I think of the different grades of egg labeling in the U.S.—Cage Free, Free Range, Pasture Raised—which have similar benefits and problems.)
One of the problems with AI is that there’s so many problems with AI. Different people find different problems more alarming, and want to set boundaries around those things, even to the point of brushing off other problems to keep focus on the problems they care about.
Some of these problems include:
And as always, some people don’t have a strong opinion themselves, they just copy the opinions of people they respect.
A guarantee like “no AI was used in the making of this game, its runtime, compiler, operating system, or hardware” is pretty extremist for somebody who just doesn’t want to read AI-generated room descriptions or solve AI-generated puzzles. On the other hand, for somebody who believes all the current AI services were built unethically, such a guarantee might feel like a minimum. It’s not even really a spectrum; since something like “ethically sourced training data” would satisfy some people but wouldn’t satisfy the “don’t want to read LLM slop” people or the “deep craftsmanship” people.
Like @HAL9000, I think the most effective slogans are positive, a rallying point, rather than a negative. If you don’t want to use AI on your project, think about what pulls you personally out of that particular low-energy state, and make that into a slogan. Or don’t — if you feel strongly enough about it, it’ll show up in your work anyway.
Maybe what you’re getting at here is that your part of the project is human-made, as far as was under your control.
Linus Torvalds has recently spoken out on this issue, making a point of the fact that Linux will not prohibit code made with the assistance of an AI. Plenty of other infrastructure libraries and tools will follow, if they haven’t already. It won’t be long before the text editor, OS, and web browser you use to create/test your games will have some AI touched code.
If you wanted to get really focused on this, you maybe could somehow get an AI free stack (in that there was no AI used in the creation of your whole software installation) but you could never rule out what your beta testers/collaborators are using.
Again, there’s nothing wrong with going 100% human-made here, and some folks will want that, but depending on your definition, that’s going to be exceedingly difficult to do going forward.
I read this as a simple question about self-authored text and code. I don’t think this is about a new fork of the Linux kernel.
I would want/expect “Human Made” to mean every single character of source code was typed by human hands, without the use of such digital assistants as IntelliSense, Bison, or Prettier.
If all you guys really mean by “Human Made” is that you didn’t use AI – just one of the many ways to have machines write code for you – then I humbly suggest sticking with something like “No AI”.
This is not simple to define where code is involved.
It hearkens back to the old problems of imposter syndrome and competence signaling. There should be specific rules, not a general statement that there must be no AI generated code.
All of this implicates the imposter syndrome question. Because what a label like really measures is the conscience of the people who utilize it. I think discouraging use of LLMs for code help makes the barrier to entry much higher, perhaps higher than before LLMs existed, because the Internet culture is different now. I remember how many people I annoyed on Linux forums trying to get newbie help over the years, but such newbie behavior was a part of the experience of being in any technical space on the Internet. These days, I instead see people asking for mentors in an almost corporate way. There is now even more of a feeling that one needs to go away and study very hard for a long time before you can try to earn a voice.
Now, the related slippery slope and imposter syndrome problems are certainly also present on the creative side, where the “human written” label seems much less problematic and more justifiable to me. There are some real ambiguities on the creative side, too – i.e., using graphic design tools for art that make use of the type of AI we’re all talking about – but the main problem again would be the line between ideation and generation. I would generally stand behind an author’s right to use an LLM chatbot to have deep discussions about their sci-fi world in order to flesh out the worldbuilding, but I could sympathize with people not wanting their authors to have done that, and with the utility of the label stating that such ideation didn’t happen.
I think this is clearer and less problematic for creative rather than code because the issues of conscience and competence are much stronger in regard to code.
And presumably also the C preprocessor and copy-paste, while you’re at it?
I don’t agree with the equivalency you’re trying to draw here. I would say there’s a clear and significant difference between Bison and ChatGPT. People don’t expect creativity out of Bison; they expect reproducible results, where they can recompile their project next week and get the same thing out. That’s not what people expect out of LLMs. People use LLMs specifically because they can be creative, and that’s also why I don’t like to use them for artistic purposes.
I don’t agree on this, at least for my personal use. In fact, it annoys me tremendously when the LLM gets creative.
The way I write prompts is to get extremely detailed, explaining to the machine how it should implement what I want and the exact algorithms I want it to use. I do this because for me, writing prompts is faster than producing pages of code, which the computer can do in seconds.
The AI can also point out where I’ve missed something. This prevents me from writing buggy code, which makes me more productive. In truth, my job is not to work out all that code by hand, but to solve problems.
I get it, though, everybody uses the tool differently, and some folks will indeed want their AI to come up with implementation details for them.
To zoom out a bit, given that several major community events require that entries not use LLMs to generate content (narrative text, images, etc.) but do allow them to be used to assist with coding, having a standardized, easily-understood label communicating that might be a helpful way of level-setting across various contexts.
Having a separate one that also extends to not using LLMs as part of the coding process also seems useful to me, as it does seem like there’s interest in it - I know having two different labels rather than one is kind of annoying though!
There will of course be ambiguities and edge cases when trying to apply any label to real life, but that’s just the way labels work so I’m personally not inclined to throw up my hands at the prospect; “hand-made” is a word that exists in the English language despite the fact that I doubt there’s a rigorous, universally-satisfying definition for it. Of course a label is different from an ordinary noun, but I don’t think anyone is volunteering to staff an accreditation committee here.
I’m willing to classify the preprocessor as part of the compiler and thus exempt.
And of course I’m willing to give the compiler itself a pass, but that’s probably because I grew up in the compiler era. If I had spent my youth writing assembly code by hand, I suppose I’d be saying the same thing about automating the assembly-writing part as I am about automating the identifier-typing, parser-writing, and code-formatting parts.
I wasn’t trying to draw an equivalency. I was trying to draw attention to the meaning of the words “Human Made”. If you relied on a machine to make the code for you, I contend that it’s dishonest to claim you made it yourself.
This is trying to draw an equivalency: letting Bison write your parser code for you cheapens the craft of parser coding in the same way that letting an LLM write general code for you cheapens the craft of coding in general, and is no less likely to result in you releasing code you don’t understand than using an LLM is. I certainly have a much better sense of how ZILF’s hand-written S-expression parser works today than I ever did about the Antlr-generated one it replaced.
I don’t think a label like “Human Made” belongs on code that someone let a machine write for them, or code they don’t understand, or code they can’t maintain without the help of that same machine to reinterpret or rewrite it for them. That code is machine-made. (Not that there’s anything wrong with that!)
If you upgrade Bison over the weekend, what you get next week might only be functionally the same, which is the same expectation I have of LLM-written code. (I never checked whether Antlr was generating the same code each time, although I didn’t upgrade it very often, so it probably was.)
See, personally I trust Bison to reliably, reproducibly turn my BNF into C in the same way I trust Clang to turn my C into assembly and…whatever assembler Clang uses to turn my assembly into machine language. Because I have that trust in Bison, I would be willing to only check the BNF into version control, and assume that BNF → C and C → assembly and assembly → machine code will all work the same in the future as they do now.
I wouldn’t be willing to do that with an LLM. If I had an LLM generate code for me, I would check that code into version control, not the prompt I used to generate it. That, to me, is the difference.
Others might disagree. You might very well be proficient enough with LLMs that you can make a repository that’s only the prompts and trust the LLM to turn them into working, reproducible, tested code every time someone wants to build the project. I use LLMs barely at all; maybe we’re at the point where they can be used as effectively a programming language in their own right.
And I do agree that writing your own lexer and parser is good for developing programming skills! But I also think that writing your own assembly code instead of letting Clang do it is good for developing programming skills. At the end of the day, I trust Bison enough to not check its C output into version control, just like I trust Clang enough to not check its assembly output into version control, and that’s where I would draw the line.
(Is it particularly relevant where I, specifically, would draw the line? Not really. I’m happy to play games where the code was LLM-generated, so I don’t really have a horse in the labelling race. But that’s my two cents.)
I respect this, and if LLMs have actually gotten to the point where we can consider their output reliable and deterministic—the same way we can for C compilers—then that’s a huge step forward in computer science. I have not personally seen evidence that we’re at that point, though.
I think the compiler analogy is good. Compilers didn’t used to be as good as they are today; it took decades of experience to get them to this point.
I can remember in the days of early “home computers” when programmers would work with straight assembly if they wanted very performant code. C wasn’t then known as “universal assembly language.” Sometimes if a developer used c, they might hand-tune some parts of the code in assembly to squeeze out a bit more speed.
Granted, computers are now a whole lot faster, but compilers are better-to the point where most people now consider C to be the low level language. Not to sound like an old man, but kids these days have never even heard of 8086 assembly.
Ok, this is a helpful point.
I don’t either. I set up a container directory surrounding the repository, containing stuff that I want my LLM harness to be able to access in order to execute my instructions within the version controlled repository subdirectory. In the parent directory goes my AGENTS.md, where I describe implementation loops – first prepare the project environment, then develop something that executes in this procedural sequence etc, then verify it works using the resources in the tests sibling directory outside of the repo, then report back to me by writing a summary of what happened this loop in the reports sibling directory.
This seems like a really capable way of guiding AI to implement technical architecture that I understand only at a conceptual level. I have felt that the AGENTS file is something of a program itself.
Is agentic shaping up to be the latest form of programing? See, that’s a huge question – I think I’m trying to do it that way, and I don’t think it’s yet possible to realize that level of control. I do think it is technically possible, but not currently economically feasible. It’s anyone’s guess whether the infrustructure and the conventions of AI wannabe devs are really going in that direction.
“No AI” definitely hits the nail on the head if someone is simply concerned about the presence of AI anywhere in the process. “Sans-AI” might work too.
@heasm66 For me, it’s about the content as well, and not so much the code. “Human Authored” would be attractive to me. But ultimately, I just care if I can get a sense of an author’s voice and style. I really need that human element to connect with, and I’m even okay if AI was used in the process as long as it’s not the AI’s voice that comes through.
“Human Vetted” might cover that last scenario more truthfully while still allowing some AI wiggle room to play with.
When you create a project on itch.io, there’s an AI generation disclosure. If you have used any GenAI at all at any stage of the process, you must select Yes. If you haven’t used any GenAI, you select No. If you select No, then your content label is listed as “No generative AI was used”. I think that statement is as close to perfect as you’ll get to answer the original question.
For me personally it would signal the authors ambition, more than how much AI actually was used. It’s almost impossible to guarantee AI-free in the whole stack and nearly impossible to write code and text in modern tools without any AI assistant in, for example, code completion and spell checking. I’m not religious and just want to know that the author made an effort. For me the artistic parts are the most important, in this case the writing of the text and puzzle design.
As a side note. When I started this thread I wondered if I should put the AI tag on it, but thought not. As the thread developed it might be time to add it maybe?