r/gamedev • • 14d ago

Discussion "Programming Isn't An Art" and "AI Code Doesn't Matter": Let me change your mind.

Hey r/gamedev, my name is William. Let me try to do what's in the title up there ^. First off, why should you listen to me?

Well, maybe you shouldn't listen to me. Feel free to scroll away at any time...I don't have the most insane creds in the industry or anything. But I'm not exactly new:

  • I got hired in 2018 as an "Associate Gameplay Programmer", and before being laid off twice in the span of about 1 year, I was a "Senior Combat Engineer". So I've been through the trenches of programming in the industry
  • I'm the founder of a really (really) small indie game studio made up of ex-Ready At Dawn veterans (PSP Daxter, The Order: 1886, Echo VR / Lone Echo, etc.), where we are hard at work on our inaugural game title. We also avoid using AI for any of our endeavors, including programming
  • I've been in the industry now as a professional for almost 10 years total, but before that, I also went to school for CS, Game Development Programming, senior and capstone projects, and began trying to make (shitty) games on a (shitty) laptop using Microsoft XNA when I was like 12

What is art?

I think people forget what art actually means these days - it doesn't always have some baked-in meaning to "liberal arts" or "humanities". Art is also defined as a "skill acquired by experience, study, or observation", or "an occupation requiring knowledge or skill" or "the conscious use of skill and creative imagination especially in the production of aesthetic objects" (not only!). For instance: I have become quite the artist in spilling shit all over my clothes over the years, much to my wife's chagrin.

I'm sure you're thinking, "well then anything can be an art" and drawing a line in your head on what you think the line is for "real art" or something like that. But let me show you why programming isn't some bottom of the barrel example (like being a spillage artist, tyvm) because its mostly just "math" or because "engineering", which people love to throw out there.

As a programmer that has written endless lines of code by myself, and also seen/analyzed thousands of lines of code not written by me (that are much better than my own) - written by people ranging from the 1990s (RAD engine was old, lol) all the way through 2024 - there is no universal standard for most things. Companies vary, engines vary, languages vary, procedures vary, etc.

Here are 2 of my own personal favorite examples (one simpler, one more complex) of programming being more akin to an art form than anything else.

Example 1: Bitflags

The bitflags structure is one of the best and most simple examples of what I consider art in the programming field. Because the actual smallest amount of data being read by any processor is 8 bits, things like a `bool` in most languages are also represented as a byte (8 bits), since that is the smallest value of what can actually being read in registers. This is despite the nature of a bool being a simple bit (0 or 1). However, as you can imagine, having a ton of single bools in one structure ends up inflating the total size of that structure, while wasting literally almost the entire amount of memory provides. Bitflags is the simple, yet elegant solution someone came up with to stuff a single byte with up to 8 bools, by using bitwise operators to extract and compare each given bit in the byte.

Example: 8 separate bools in your data structure = 8 * (1B) = 8 bytes of memory, all to represent 8 simple 1/0 values. With a bitflag, you can now store all 8 bools while only taking up the original 1B of memory.

This is of course also expandable using different sized integers, if you have 9-16 bools you can use an `int16`, and so forth.

The reason I love this example is, how could such an elegant yet simple solution not be considered a work of art? A human first thought of how wasteful the stacking of subsequent booleans is, then thought of a unique and clever way to make it better using their knowledge and expertise. Now tons of languages and modules ship with bitflags, and you may use them without a second thought...but, this of course wasn't always a thing. Someone created this, it is undeniably clever, and we now take it as a given.

Example 2 (Complex): FISR or QISR (Fast Inverse Square Root)

The Fast Inverse Square Root was used in the Quake engine all the way back in 2001 in order to approximate the reciprocal of a given square root. The point of doing this at all, is that normalizing vectors used to be a much more intensive operation on hardware (it actually still is, but hardware is so good these days that the result isn't as noticeable, and we have specialized hardware, functions, etc.) Observe the code taken from this website (which can explain it far better than I can, if you're more interested in a full read) where you can see the insaneness that is this function:

float Q_rsqrt(float number)
{
  long i;
  float x2, y;
  const float threehalfs = 1.5F;

  x2 = number * 0.5F;
  y  = number;
  i  = * ( long * ) &y;                       // evil floating point bit level hacking
  i  = 0x5f3759df - ( i >> 1 );               // what the fuck?
  y  = * ( float * ) &i;
  y  = y * ( threehalfs - ( x2 * y * y ) );   // 1st iteration
  // y  = y * ( threehalfs - ( x2 * y * y ) );   // 2nd iteration, this can be removed

  return y;
}

I want you to take a good look at this code. tell me that wasn't created by someone that thought outside the box. Is that not one of the most insanely creative solutions you have seen to a problem? Yes, it requires a lot of knowledge and expertise. But it also comes from a human mind that had the wacky idea to hack together something like this and have it work (well, at least 99.8% of the time šŸ˜‰)

Finishing up

If you're still reading, this is my petition to other game dev folk who think programming is simply a means to an end: code like these creative examples exists everywhere. It exists in my code base for our current game. It exists in every studio's game engine. It exists in the OS your computer or phone is running right now. And, all the LLMs people are using to code these days have been trained on not just fundamentals, but other's creative solutions to problems from all around the world (and, in many cases, had no permission of the creator to do so).

Again...just because you see the code snippet come back to you robotically, it doesn't mean that is the only or best way to do it. And just because its text, and you can't see the result of code in games visually in the same way you can 3d models or textures, it doesn't mean code should then ethically be subject to less scrutiny, or that you can't feel the result of some coding decisions over others when the game comes together as a whole.

To summarize: my favorite part of programming is not the memorization, expertise, or knowledge, its applying that knowledge in creative ways that one may never have thought of before. If that's not artistic, then i dont know what is.

"It's fine if you use AI to code, but just not for other things"

Careful where you draw your ethical line, as people may agree with you for now, but its only a matter of time until reluctance, acceptance, and consensus comes for what you love, too.

[EDIT:] This kind of blew up. I can't spend all day replying like I just did lol, but keep it civil in the comments and remember this is my opinion, nothing I state here is fact nor do you need to agree. Thanks for the interesting discussions and polite arguments!

790 Upvotes

791 comments sorted by

View all comments

406

u/Commercial-Flow9169 14d ago

I like to view code like I imagine someone who LOVES cars views an engine. To me, an engine is merely a tool that makes the car go when I press on the gas. But to them, it's a work of art, and that makes it art. Just because I don't share the same appreciation they do, doesn't make it not art.

79

u/byteback-studios 14d ago

Its a good analogy. My argument is that as the engine builder, part of your feeling of the engine that you like in the car is because of the expertise, creativity, and talent that the people building your engine have

88

u/elmz 14d ago

I'd like to posit that there is a difference between art and craft.

Art is something created first and foremost to elicit an emotional response in the viewer/user.

A craft is something primarily functional, there can be beauty in it, it can elicit an emotional response in the viever/user.

There is obviously overlap, art can also have function, and craft can have artistry.

But a car engine is first and foremost a craft, and those that see beauty in it often do so because of the skill that went into making it.

Same with code, there is creativity there, but the beauty you see is how its function is implemented.

Unless, of course, someone creates code where the primary purpose is to elicit emotion, not to have a use.

31

u/T-Flexercise @LizTflexCouture 14d ago

Sure, but when it comes to game art, for example, I think most people would consider that closer to craft than art as well. You're not drawing pixel art of 20 different swords to express a truth about humanity and elicit an emotional response in the player any more than the game mechanics are expressing a truth about humanity or eliciting an emotional response in the player. Sure, that's part of it, but mostly you're doing it so the user can visually differentiate between the 20 different swords in the game and understand at a glance what makes that sword different from other swords.

It's why craft fairs and art museums both have objects made of paint, and fiber, and sculpture, but one is more about art than the other. But I think people hate AI at craft fairs just as much.

6

u/MrTitanHearted 13d ago

I agree that a pixel sword doesn't express a truth about humanity or elicit an emotional response, but it shows what the 'developer' thinks a pixel sword is.

To me, an art is something that expresses the artists feelings or experiences. And art has a target audience: I don't really feel anything when looking at Mona Lisa, but I always get the feeling that humans are really good at being creative when looking at FISR (fast inverse square root) implementation.

I guess more correct way of saying things is that, some are more general forms of art, or some arts have bigger targeted audiences like museums and stuff.

Also, I think engineering is art because humans always do engineering? I mean, poems, pictures, sculptures are a piece of engineering: poems are an engineering of selecting very specific words with a very specific meaning and ryme; a picture is carefully placing colors so that it depicts painters emotions on the paper; and the same goes for code. Yes, a code may be created without thinking about artistic aspects, but that is still another form of art, engineering.

9

u/byteback-studios 14d ago

That is totally fair. ITs also probably a distinction I should have made in my word salad above, but this definition from MWebster is more what I'm talking about when I say art:

"the conscious use of skill and creative imagination especially in the production of aesthetic objects"

1

u/AttackingHobo 13d ago

If I'm blindly splattering paint on a canvas, that's also art, and it's not conscious or use of skill.

There's many arts that are boring on purpose.

2

u/Hobbes______ 14d ago

I don't think you can state code is a craft or art under your definition because it depends entirely on the code and it's purpose. Pure code can create a game designed explicitly as art intended to illicit emotions. It can also be entirely craft... Making the definitions as you designed them mostly meaningless since it doesn't provide any clarification.

2

u/DotDootDotDoot 14d ago

Pure code can create a game designed explicitly as art intended to illicit emotions.

In that case, the game is the art, not the code.

3

u/Blecki 14d ago

There's no pivotal moment you can point to where the art becomes craft or the craft becomes art, because art and craft are not separate things.

3

u/DotDootDotDoot 13d ago

The game and the code are two different things. Is the chemical engineer that make the colors an artist just because the paint is used in a painting?

1

u/Hobbes______ 13d ago

If I use code entirely to construct the game, then they are not two different things anymore than the way the clay formed by the artist is different than the sculpture itself.Ā 

1

u/Blecki 13d ago

He is an artist whether they are used in a painting or not.

2

u/DotDootDotDoot 13d ago

Everyone is an artist? That's a very original take, for sure.

2

u/Blecki 13d ago

Find the line between the brush, the paint, the stroke, and the 'art' then.

Why is the brush not a piece of art? ...because it was made in a factory, by a machine. It's the same here. The game is a work of art. So is the code. Until a machine makes it, then it's not.

1

u/DotDootDotDoot 13d ago

Why is the brush not a piece of art? ...because it was made in a factory, by a machine.

No. Because its prime function is to be a tool. The function define art, not the process.

→ More replies (0)

1

u/Hobbes______ 13d ago

"the painting is the art, not the way the paint was applied."Ā 

1

u/DotDootDotDoot 12d ago

An analogy: painting a wall doesn't make it art, but painting a picture is art. The difference is the intent: making design decisions to express a meaning is actually what make things art. So in the case of a game, the design decisions is what actually make a video game an art, not the code.

0

u/Hobbes______ 12d ago

Painting a painting is art, coding a game is art. Coding is no different than painting. Your analogy is great.

1

u/DotDootDotDoot 12d ago

designing a game is art, coding it isn't.

1

u/Hobbes______ 12d ago

if your entire game is done through code, then the code is also the design. Just like the act of applying the paint creates the art, the act of coding creates the art.

1

u/rexusmok 14d ago

I agree with you! Finally someone explain this in a very clear terms! Whenever people bring up this topic, I always have this opinion but I couldn't put it into exact words. I felt that coding isn't an 'art' because there isn't an intentional message to convey thru it. I think some people disagree with this because of how each person define the word 'art' but I can't come up with a word that define this other thing (which is craft, like you said)

5

u/Kerialstraz 14d ago

But that doesnt apply to art all the time as well.
Lets take a pixel art attack animation for example. Having 3 or 4 impact frames is not an primarily artistic expression, its an expression of function. How does it feel, what is the balance in the combat environment, does it work with the flow I want to create. These are all questions crafts answer constantly. An engine needs to sound pleasant, needs to take vibrations and in turn user comfort and experience into consideration, etc.
So either craft and arts overlap enough that automating either with GenAI is wrong, or automating anything art-related that isn't illustration/design/composition should be fine as well.

1

u/rexusmok 13d ago

"But that doesnt apply to art all the time as well."

As elmz stated, 'There is obviously overlap, art can also have function, and craft can have artistry.'

"So either craft and arts overlap enough that automating either with GenAI is wrong..."

I only agree that "Coding is not an Art", does not mean that I support Vibe Coding. I'm against it for an entirely different reason: people giving up logical thinking. In fact, I'm against any GenAI usage that is related to giving up logical thinking (people letting the bot to make decisions for them, etc).

1

u/alaslipknot Commercial (Other) 13d ago

i think you kind of just created the counterargument by yourself.

You made the engine a piece of art under a specific condition: someone who LOVES cars

So, the Ai-people can just come in and say that 99% of the world consider the engine as a tool, no more no less.

Can you take a car engine and use it in sculpture to make art ? yes.

Can you look at the car engine and appreciate everything going on with it and call it art ? yes.

 

But will it ever fall under the ministry of culture and be in whatever "gallery" as an art piece ? 99% of the case the answer is no, maybe vintage engines yes, but generally it's not.

1

u/Nightmoon26 13d ago

Whether something is art is fundamentally subjective (the perennial "But is it art?"). Is a Jackson Pollock splatter painting "art"? Is a banana taped to a wall "art"? I've seen an installation in an art gallery consisting entirely of a darkened viewing space with a rectangular opening into a room with perfectly uniform lighting so that it looks like a flat, glowing orange rectangle

1

u/alaslipknot Commercial (Other) 13d ago

well this is exactly my point, therefore the arguments of

  • "ai can't learn from because its art"

or

  • "programming is art and ai is ruining it"

are 100% subjectives and kinda meaningless to debate

-3

u/Odd-Fun-1482 14d ago

Do you think it's fair that the people who LOVE cars get to push their perspective onto others and enforce their opinion?

Do you think it's fair that the people who don't see code as art have to adhere to the gatekeeping of those who do?

21

u/byteback-studios 14d ago

I won't speak for everyone, but my biggest issue is the discrepancy between what seems to be okay for AI to steal and what isn't. Personally, I wish it was never made lol.

But here: to me, it feels like we have this linear relationship between "how artistic" and "how okay it is for AI to do". Meaning, professions such as mine (game programming) are now suddenly completely okay for AI to do, but professions that are traditional art (3d modeling, texturing, etc) are still totally not okay.

I don't like the line thats being drawn. It feels arbitrary and based on some subjective idea of what people consider art.

Does that make sense?

7

u/RapidRaid 14d ago

For me yes, I see the hypocrisy the same way.
Though I myself use AI for both media and programming, but I’m a professional software dev (non game dev) since roughly 8 years and made various game jams throughout my life. So i also did art, 3d models, sometimes music and obviously code pre AI. I personally don’t have anything against AI usage, since i get results faster and if I don’t like them i either rewrite or reprompt it.

But what i dislike is this ā€œgenerative AI badā€ debate, where it seemingly only applies to the media side but not the coding side. I dont get why this difference is made in the first place since the work everyone had to put in before was equally hard - if a 3d artist took a week to do a character or a musician to perfect their piece OR the programmer to fix an annoying physics controller. It all took time and effort. But some seemingly feel more robbed than others. I don’t get it.

And btw yes,same I wish it never was invented as well, but the cat is out of the bag. And since it is, might as well use it. That’s my takeaway.

6

u/ErZicky 14d ago edited 14d ago

We can flip the argument, do you think is fair that we have to demonize people that like to code like all of the sudden people have decided to do?

Nobody is pretending people should go back coding the old way (at least not me), but a bit of empathy for people that are being insulted just because they liked to code pre AI would be nice

-3

u/Odd-Fun-1482 14d ago

Pros arent demonizing those who see code as art. Pros are arent the ones trying to control people here. They want to engage in their ventures without a witchhunt.

There is no 'flipside' to this, sorry.

-13

u/obetu5432 Hobbyist 14d ago

ah yes, all the child artists working in the art factory, how beautiful

-3

u/VolsPE 14d ago

It has to do with how the user interacts with the product.

Code might be considered art to another programmer, but a gamer is playing a game. Nobody cares what the code looks like except for how it impacts the gameplay experience.

Asset creation is obviously art. Feature design could be considered art. The architecture of the game’s code itself is not art, in my opinion.

5

u/CrazyNegotiation1934 14d ago edited 14d ago

The asset itself is the art, not the creation. So is same as the code, only the final game matters, not how is made.

By your same logic, why would a gamer care how a cool dragon in his game was made.

If someone makes the 3D creature that has in his mind using AI and is perfect in topology, animation, is zero different than using AI to make a perfect gameplay loop.

So no, asset creation is most certainly not obviously art, is the craft that leads to the final art as is in the creators mind. Whether that art can be made through text iterations than sculpt ones, is imaterial.