Skip to main content

On Sale: GamesAssetsToolsTabletopComics
Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

There are two possible interpretations of “other”: generative AI output that does not fit in the categories (graphics, audio, text, code), and non-generative AI use. They are different. They must be treated differently.

Puzzle design and level design are not in any of the given categories unless you stretch the categories to the point of meaninglessness. Ask an AI to generate a Sokoban level for you. If you call the result graphics, you’ve stretched the definition of graphics to also include text. (After all, it’s all pixels on the screen.) If you call the result code, you’ve stretched the definition of code to include graphics, audio, and text. (After all, it’s all encoded information that the computer uses to produce some sort of output.) If you call the result text, then the entire game is text (which is how literary theory uses the term “text”). If you call it audio, then you’re just being an obnoxious and have abandoned all definitions.

Non-generative use of AI is something entirely different. It’s finding (not fixing) bugs with AI. It’s using an AI-powered search engine to look up information. It’s letting AI gamble on the stock market to fund your game. And yes, it’s letting using an AI to test your game.

Using non-generative AI is practically unavoidable and has little to do with the actual content of the game. It’s way to broad of a category to require disclosure. Disclosing specific, clearly defined subsets of this broad category may be useful, but Itch defines no such subsets, and they would have to be disclosed separately from generative AI.

Generative AI output that does not fit into the four categories, on the other hand, is common and should definitely be disclosed.

(1 edit) (+1)
Generative AI output that does not fit into the four categories, on the other hand, is common and should definitely be disclosed.

Care to name a few examples. If it is common, there should be plenty of examples. And only because something does not fit exactly in 1 of those 4 categories, does not mean that there is need for a 5th. You can just select both or the most fitting.

Also, if it is the output of a gen ai, but does not end up in the game, why tag it? There is no transitive quality asked here. To put forth an analogy: the cook of vegan food does not need to be a vegan, for the meal to be vegan.

About the puzzle. In case of a sokoban level generated with generative ai, it is code. It is literally a set of instructions. A level is basically code in an unnamed programming language that tells the game, how a level should look.

One might argue, that it is also narrative (dialogue) as well, if you think about puzzles as riddles. Riddles are a form of narrative, but their puzzle nature is more wordy. You could even argue it to be graphics, if you actually used the visual representation of sokoban levels to train an ai and produce more of such things. And if you used an essay generator or a code generator would answer the detail, if you would select text or code. But strictly, a level of any video game can always be considered code.

If the thing carries meaning, it is dialogue/text/story or code or a mix of those. If it is for looks, it is graphics, if it can be heard, it is sound.

(Yes, yes, images and sound carry also meaning. I meant abstract things that only bring meaning into the game. Like the game play, balancing, item stats and so on.)

If it is neither of those things, I am not sure, if you can call it an asset or a thing that is actually in the game.

I wondered about more categories a few times. But if there is one, it probably is not something common or intuitively understandable. And if there is, it probably can be seen as some equivalent of "code".

In case of a sokoban level generated with generative ai, it is code. It is literally a set of instructions.

There is a stronger argument for png files being code and you know it, so stop pretending otherwise.

For the less technically inclined, this is what a Sokoban level looks like:

#####
#@$.#
#####

Note how it’s literally just plain data. There are graphical Sokoban implementations that replace these text characters with graphics, but there are also text-based Sokoban implementation which use exactly these characters to represent the game. On a spectrum from code and data, this at the absolute far end of non-code data. If this plain data is code, then logically all plain data must be code, which makes the distinction of code and not-code meaningless in a game.

A png file, on the other hand, uses data compression. A compressed data file basically consists of a set of instructions for reconstructing the uncompressed data. On a spectrum from code to data, this is still comfortably on the data end of the spectrum, but not quite at the extreme end.

There is a stronger argument for png files being code and you know it, so stop pretending otherwise.

A video game level is always programming code. It literally is. Just not in the programming language you are familiar with.

A level for a game is a set of instructions. Not unlike a punch card for a mechnical piano.

It is a primitive type of https://en.wikipedia.org/wiki/Domain-specific_language 

So, why is the set of instructions in a png or jpg not a programming code? Because we encoded an existing image into that format. The set of instructions is only needed to decompress the image. What was the existing thing we encoded in case of a level? It was an idea, a puzzle, the game level's logic. And what do we call the thing that makes the game tick? Code.

On a spectrum from code and data, this at the absolute far end of non-code data.

You seem to understand that data and code is the same. Good. We just treat it differently in modern computers and impose a barrier on operating system level, if possible. It starts to get interesting, as soon as your game loads a file and starts interpreting that (plain) data. Then this data is literally code. No matter how human readable or "plain" it is.

And if you interpret data, it is not on the far end of non-code data, it is on the code site. You could hard code the instructions into the code. Grossly simplified, we did this: 1a + 2a + 3a = a (1 + 2 + 3). a is the code that is left and you saved 1, 2 and 3 as data to be interpreted later. Which also gives you easy ability to later add 4 and 5.

If this plain data is code, then logically all plain data must be code, 

That's a formal fallacy.

The difference between data and code is intention and word definition. We would call the literal programming card of a mechnical piano "code". But we would call the same music played as a wav file "data". We would call a programmed vector graphic procedural and code. But we would call a screenshot of such a thing an image and data.

And on a tagging mechanism like ai disclosure, if you procedurally create things like sound and visuals, but made the code for this with ai, you better explain this nuance in the description or tag all three, instead of only code.

which makes the distinction of code and not-code meaningless in a game.

That's not game specific. You cannot tell if something is code, just by having it compiled into an exe. And you cannot tell if something is data, just because you could read it with a text editor and is a file.

For some recurring things we established, that it is to be called data or non-code. Like image files. And there is an analog explanation for this. We just store the digitial representation of it. We can do the same for story and dialogue, or for sounds.

But back to the generative ai tagging categories. Those gen ai can directly generate visuals, sounds, text and code. Can they generate a thing that is not covered by any of those 4?

You seem to consider "data" as a 5th category, if said data does not fit visual, sounds or text. If that data fits the definition of an instruction set, I consider it code. And in case of a puzzle level, there is not even ambiguity.

 Generative AI output that does not fit into the four categories, on the other hand, is common

So I would be interested in more examples of these common gen ai outputs that do not fit. The ones I came up with, are things like smell, haptic and maybe motion capture. But as no player would understand this with simple tags, I would consider them part of visuals. And smell does not exist with current tech. Also, I have doubts, things like smell or haptic would be generated with gen ai. 

A level for a game is a set of instructions. Not unlike a punch card for a mechnical piano.

So you’re arguing that audio is a subset of code. Also, factually wrong. A level can be encoded as a set of instructions, but that’s not what a level is.

It was an idea, a puzzle, the game level’s logic. And what do we call the thing that makes the game tick? Code.

Personally I call an idea an idea, a puzzle a puzzle, logic logic, and code code.

You seem to understand that data and code is the same.

So you’re arguing that graphics, audio, and text are code.

And if you interpret data, it is not on the far end of non-code data, it is on the code site.

If it’s on a computer file, you cannot access the data at all without interpreting it. You can’t even download it.

That’s a formal fallacy.

If the least X-like out all of possible Ys is classified as X, then logically all Ys must be classified as X. That’s not overgeneralization, that’s literally how generalization works.

which makes the distinction of code and not-code meaningless in a game.

That’s not game specific. You cannot tell if something is code, just by having it compiled into an exe. And you cannot tell if something is data, just because you could read it with a text editor and is a file.

We’re past the point of comparing code with data, and have reached the point of comparing code with non-code in general. I am code. You are code. The color green is code. The act of eating is code. We might as well throw the words away, because it no longer serves its purpose of distinguishing between things that belong in its category and things that don’t.

You seem to consider “data” as a 5th category, if said data does not fit visual, sounds or text. If that data fits the definition of an instruction set, I consider it code. And in case of a puzzle level, there is not even ambiguity.

You seem to think that there is a meaningful definition of “code” that includes all computer files, and all data in general, except graphics, sound, and text. Try it. Post such a definition. I don’t even care if your definition includes the color green, all I care is that graphics and sound and text are excluded and all other data files in a game are included.

The only restriction is that you can’t explicitly mention the categories of graphics, sound, or text in your definition. Because if you do, you have a wastebasket taxon that is better called “other”, not “code”.

(+1)
So you’re arguing that audio is a subset of code. 

That's not what I wrote. No, audio is not code. Audio instructions can be seen as code and they basically are. The difference is this concept: the map is not the territory. If I give you music notes to play, did I give you music, or did I give you notes...

A level can be encoded as a set of instructions, but that’s not what a level is.

So. What is a level? Because it sure ain't "plain" data as you seem to claim.

If it’s on a computer file, you cannot access the data at all without interpreting it. You can’t even download it.

What the. What? You make no sense at all here. 

Interpreting is not displaying it to a user or downloading. Interpreting is a synonym for executing code that is human readable. Usually seen in scripting languages. But a video game does just the same. It interprets your "plain data" as a puzzle level. Which makes that data anything but plain.

If the least X-like out all of possible Ys is classified as X, then logically all Ys must be classified as X. 

In hindsight I linked the wrong fallacy, but your premise is wrong. Even, if we agree for it to be on the data side of the spectrum, it is not the most un-code-like data that can be.

Maybe it helps if we consider not a puzzle level, but maybe a quest module in a game like Skyrim. Such a thing is basically a script. 

Would you accept this as "code", so we can move on? Because I am still waiting for all those common examples of gen ai usage that do not fit into the 4 categories.

Meanwhile, here my definition of "code".

Code is an abreviation for programming code or program code. Coding and programming is synonymous because of that, and the reason why a code as in password or code phrase, means something different.

A program is a set of instructions. They might loop and can get very complex, or be quite primitve. But in the end it boils down to being a set of instructions, typically executed sequentially.

A program might be: lift the needle, shift the needle to start position, drop the needle, turn the disc, loop till the needle holder reaches the end position, lift the needle, stop the disc, shift the needle to rest position.

Another program might be: turn light on. wait 1 second. turn light off. wait 1 second. repeat from beginning.

Yet another program would be: place a block at position A, place a hole at position B, place player at position C, place walls at positions D-Z, wait for player input.

If you put parts of the program into variables and can load those variables at runtime, the line between program and data blurs. If and where you put an arbitrary line between data and code is just that. Arbitrary. There is no fundamental difference between data made to be used with certain code and that very code.

So what about general data? Like images, sounds, or plain text? Are those code, because, well, a jpg is made to be used with a jpg viewer? Depends on circumstances, like intent, prior conceptions and agreed meaning of words, context and perspective.

From the perspective of a subroutine that activates pixels, whatever it is fed, is a series of instructions, which pixels to activate. From our perspective it is just plain data intended to be displayed. This gets a lot more blurry if you consider vector graphics that are hard coded into program code and not loaded as a svg file. Is the instruction to draw a circle code or data? What if I write that instruction into a plain text file? What if I call a drawing function inside the code? This was just to show that there is no clear division and not questions that need an answer.

The color green is code

It is, if you are driving a car ;-)

So. What is a level? Because it sure ain’t “plain” data as you seem to claim.

It’s an idea. Two implementation of Sokoban can have the same level despite not sharing and code or any data.

What the. What? You make no sense at all here.

Interpreting is not displaying it to a user or downloading. Interpreting is a synonym for executing code that is human readable. Usually seen in scripting languages. But a video game does just the same. It interprets your “plain data” as a puzzle level. Which makes that data anything but plain.

Wait, you mean “interpreting” in the “interpreted (computer) language” sense, and not in any more general layperson sense? Really?

A unicode text file is a series of intructions that tell you which character to render where on the screen. A potentially fairly complicated set of instructions, when you consider RTL languages, combining characters, context-dependent character form, and so on.

The Sokoban level I posted uses a very, very primitive subset of that language. Every character in the example represents exactly that character on the screen. The game runs in text mode, so the characters are stored directly in video memory. There is no data representation of the game state beyond what’s in video memory.

Maybe it helps if we consider not a puzzle level, but maybe a quest module in a game like Skyrim. Such a thing is basically a script.

I consider the actual scripting part of a Skyrim quest module to be code. Not the images. Not the text. Not the sound. And especially not map or the stats of the enemies or the general idea of the quest, although all of these things can be encoded in the script.

When someone says that they used assistance for coding I assume that they mean that they came with the game design and used assistance for turning it into code. When someone uses assistance for the game design or any of its subsets (level design, puzzle design, world design, narrative design, whatever) but writes the code themselves, I don’t expect them to say that they used assistance for coding. I do expect them to say that they used AI assistance in general.

Here is an interesting thought experiment for you. Imagine an animated movie where the director is an AI. The artists are all human, so the graphics are not AI-assisted. The script is written by a human, so the text is not AI-assisted. The sounds are all produced by humans, no AI there.

The humans don’t even need to be aware of the AI director, if that awareness taints their work in your opinion. The AI director can come along later and cut the movie together from previously created assets. The AI director makes the ultimate decision about what goes where, but creates nothing.

So, how would you handle AI disclosure for the movie? The AI director does all of the things that you ascribe to “code” in a game, but there is literally no code in a movie. Unless you count the codec used to encode the movie as a computer file.

I thought about considering "ideas" to be a separate category. But I decided against this notion, because we do not even credit humans for ideas most of the time. You usually cannot protect an idea. The implementation of an idea is covered by copyright. But not the idea itself. Some big companies try to invoke patents there. And if your "idea" involves certain implementations you might touch on trademark laws. But anyone can implement a block pushing game and how levels look will overlap.

To elaborate, yes, ideas, story, game rules and other things would be a separate category that is currently not asked in the ai disclosure. But the dislosure question is quite specific about content. The idea of content is not the content itself. You cannot buy an idea asset in the store.

If you were to have an idea and implement it with ai tools, you would have to tag the appropriate implementation methods.

But if you were to ask for an idea and would implement it by hand, you would not have to tag this. You could ask an AI to create a reference image of how a pose looks, and then hand draw your original character in that pose.

--

Why I would allocate a game level under code, is because a level is the variable states for the code. It is made to be interpreted by that code. In a computer science way interpreted. Where you read an X or a O, the code will read a wall or a hole. And it will treat those as a wall or hole, no matter if you hold it in memory as a character in ascii. It is not merely displayed, it is symbols that literally codify the level. There is a pun here somewhere about literal outsourcing ;-) 

Even if you consider it to be of the idea category, the implementation of that level is still code.

 I do expect them to say that they used AI assistance in general.

You cannot do that with the Itch's questionaire if used as the thing tells you to use it. And most importantly, players cannot filter for this with the filters provided.

--

An interesting question. I shall counter with something similar I wrote a while ago.

There is a bucket full of machine made bricks. The kid toy kind. A kid builds a playhouse with those toy bricks. Is the house human made or machine made ;-)

To answer your question and solve the apparant paradox. It depends on the context and what you are asking specficially.

For one thing, AI have no agency. Your AI director does not exist. There needs to be a human operator telling the AI to do this and you can default to that operator as the director of the work.

For Itch specifically, the question is about content. It is literally about assets plus code. The meta content of how those assets are ordered or why you chose specific assets, is not asked. But if you fused them together with an ai (the cutting), that would be code.

If there were a thing like ai disclosure for movies, there would be all sorts of positions where ai could do things and thus be disclosed in credits. That would be director, editor, cinematography and such things in your example.

For the playhouse, the house would be human made. The assets that make up the house would be machine made. But no one credits the parents for encouraging the child to build a house and explaining how a house looks and that it will fall apart if you do not have walls to hold the roof.

There is a bucket full of machine made bricks. The kid toy kind. A kid builds a playhouse with those toy bricks. Is the house human made or machine made ;-)

That’s structurally no different than a game made with AI graphics assets. Machine-made doesn’t have the same stigma as AI-made and the kid isn’t trying to sell copies of the house while competing with fully hand-made houses, so nobody is going to call the kid out on it. Using machine-made parts is OK. Heck, I use a compiler (a machine) to compile my own code all the time!

When I download real world elevation data, it is just that. Data. When I then include it in a game, it is still just data. Even if this data makes up my entire level design. The choice to use that data is design. The code that turns the elevation data into a polygon mesh that can be displayed and interacted with is code. But the data itself is just data. And that is still true if I used AI-generated elevation data instead of real world elevation data.

And my Sokoban level is the same “kind of thing” as elevation data. If you only look at the walls, it literally is elevation data: high where the walls are, low where they aren’t.

Maps are data. When they are made as images to display, they are graphics data. When they are made of tiles and spawn points, they are non-graphics data. (And when they consist of height data, they can be either graphics data or non-graphics data, depending on how the data is used. Normal maps, created from height maps and used purely for display, are graphics.) My simple Sokoban level aside, they are made in specialized map editors, not text editors. They are not Turing complete. They do not contain more than the simplest “logic”. They are not made by programmers, but by level designers.

Even if you want to call them code, because that’s the hill you chose to die on, nobody else will do the same. They’re the kind of things that beginner developers create in so-called no-code game engines because they are too intimidated to learn an actual programming language.

(If you want to say that no-code game engines are an oxymoron, I say that it depends on how limited the game engine in question is. Visual scripting is still scripting and therefore coding. But map editing is not.)

And another thing: just because something is encoded in code, doesn’t mean that thing is code. Example script:

  npc.speak("Thank you for helping out.  Here's your reward.");
  npc.give_player_gold(10);

Taken as a whole, it’s definitely code. But the thing between the quotes, that’s text. Putting it in the script is a task for a programmer, but actually writing it? That’s the writer’s job. And the number 10 is just a number, i.e. data. Even if it is embedded in a script. And while a number by itself may not be copyrightable, a database consisting of labeled numbers certainly can. It’s just a matter of scale.

If I carefully design a reward schedule for quests in my game, that’s copyrightable non-code work. If I ask an AI to do the same, that’s non-code AI work (but non-copyrightable because of AI). And if I include this schedule in the game, whether it is as a standalone file or a bunch of numbers scattered across dozens of scripts, I am including non-code non-graphics non-audio non-text AI content in my game.

(2 edits)
Machine-made doesn’t have the same stigma as AI-made and the kid isn’t trying to sell copies of the house while competing with fully hand-made houses, so nobody is going to call the kid out on it

You did an interesting thing there. Bringing in morals. This is not about morals. It's about classification. And how you identify which class an object belongs to. It sounds to me similar like a vegan demanding vegan food, but upping it by also demanding that the cook is vegan.

Morals only come into this, if a user would use any filter for moral reasons. If I use a no-ai filter to avoid sloppy ai graphics, that's not a moral decision.

Is a game ai made, because the assets are ai made? No, of course not.

Is a game human made, if the assets are human made, but the game is assembled and "directed" by ai? Depends on your definition, since ai do not have agency. The assembling the bits part for games is called coding. And even if you would consider the game to be "ai made", you would default the agency to the ai operator and thus would need to call the game human made - if you were to even have that category. Maybe in the future there will be independently acting artififical life forms that can have agency. But right now it always falls back on the ai operator.

And my Sokoban level is the same “kind of thing” as elevation data.

Not conceptually. Yeah, yeah, you can do all sorts of shenanigans by interpreting raw image data as sound or interpret topological data as a level.

But your level would not be a level in the level kind of sense. It would be visuals. Oh, you could call it a level, if your game is a walking simulator. But conceptually, your game then acts as an image viewer. That you randomly select data just transfers some things. Like your choice of the topological map, which would then do things by that very choice. Similar as to how a photographer would chose which picture to use. There is still decision and not mere displaying things.

So, why does a block pushing game not act as mere image viewer and why is the level data not just data? And what happens, if you use "other" data as the level data?

Well, mostly you would have gibberish. A defunct level. And if you manage to have a transformation of something like topological data into a syntactical valid level, your accidental level probably would not make sense or would not be solveable. And if you keep selecting topological datasets until you achieve a valid level, a large part of your level design would be the selection process.

Note how I casually mentioned the syntactical bit? A level has syntax, even if it is primitive plain symbols. And if it has no syntax, but is just data that is shown, you would not call it a level for a block pushing game, you would call it a background image. Or you would call it an area "level" of your walking simulator game.

But all this is besides the point. A level is not something you would need to have a separate category or select none, because it does not perfectly fit. If you hand code a block pushing game and only make the levels with ai, I would expect a developer to select graphics, code or text, or a combination of it. Depends on how the level was made. If an image generator was used, graphics fits. If you asked a chatbot, it's text or code or both. And that will depend on the preconceptions of that developer, how they understand the continum between data and code. And users might disagree here.

But that's tags, there will always be disagreement. I saw a game get tagged as point & click by the developer. The justification apparatnly was, because you point and click .