(a quick note: While I post some WIP images in here along with my blog entries, I have an image gallery of both more WIP and laughable failures here, as well)
So that last entry got the debate going, didn't it! I swear, if good debates were easy to start, we wouldn't even need an education system. I learned a lot, and got a bunch of inspiration. But one thing also cropped up a bit, and I even think some of my commenters held back, to be respectful of me. While I appreciate that immensely (nice people are such an underestimated resource in modern society), I feel a need to tackle one big issue head on. That issue is the almost divine ordained chasm between "art" and "code".
When we hear about triple A studios, we usually hear about people doing the code, people doing the art, and people doing the business stuff. Coders, artists and suits. Some revolutionaries (and some "revolutionaries", in sarcastic air-quotes) do both hardcore coding and business stuff. But the artists are an odd duck in all of this. Maybe it's because art has always been surrounded with an air of "oh, you're getting paid (or not paid...) to doodle/scribble stuff?", under the notion that it's something anyone can do. That is an arrogant idea, of course. My arrogant view of the matter is somewhere between "artists are just slackers" and "art is divine". I personally believe that anyone can do art, even great art. I have learned and taught both traditional drawing and 3D animation, and I feel my experiences with that back me up. But the issue isn't whether you can do great art. The issue is whether you can do art that is both great, useful, and efficient. Being able to paint a marvelous fresco of dragons and unicorns matters little when it takes you three decades and has no purpose. Even the great artists like Michaelangelo and Da Vinci did their great art on commission. True, Van Gogh never earned more than a pittance for his art in his lifetime, but that should make you think twice about wanting to be the next Van Gogh. The ones that really make an impact in their lifetime tend to be not just great artists, but efficient and goal-oriented. If you want to become famous long after you die, I will not hold it against you. But it's pretty damned hard to debate the merits of people in a society, if those people are long dead.
Okay, I'm going to take flak for that one. I don't mean to berate any artistic souls, but we're talking about art within the perview of industry, here. So, yeah.... no hard feelings, okay? I love crazy, unrelated art. But we all need to serve a purpose, society dictates it :(
The point where it starts to get weird is when the border between art and coding starts to get eroded. Art is by many considered an intrinsically human thing, whereas coding is more logical and mechanical. You would probably have a much easier time convincing people that there are computers that can create new software from scratch, on their own, than trying to convince them a computer could do art. Funny enough, both those things are true, even though both are (as far as I know) in their infancy. Long ago, I saw on a science show how a professor had programmed a computer to draw like a child. Not that it was the goal to draw like a child, but that was the level it could work at. Google's Deep Dream project is also creating things that some consider art, even though I believe the project was meant to teach machines to recognize objects more effectively. And while software is writing a lot of your sports, business and similarly "hard fact" articles these days, people are still working hard at making computers do more creative writing. The results are a mixed bag, but if you want something fun on the (very) simple end of things, I always enjoyed Seventh Sanctum.
Which brings me to the title of the entry. No, it's not a typo, I'm not asking if programming is art. I'm asking if art is programming. Crank up your average high-end 3D editing suite, and you won't be met with a ton of bedazzling inspirational imagery and deeply spiritual guidance to getting out your inner muse. You will be met with a lot of tools. Hardcore, mathematically driven tools. Long gone are the days of using lines and circles to do things from the ground up. These days, 'style' is getting more and more quantifiable as a selection of techniques and components that can be crudely reproduced from demand, not inspiration. Free online tools let you turn photos into semi-artistic paintings, using math to reproduce art styles of some of the old masters. Art is not an isolated enclave of crazy visionaries anymore. Art is becoming a science.
The key phrase here is "becoming". It's nothing to publish in galleries yet, and unlike to be for decades. But that's not what interests me, honestly. Take a look at the image at the head of the entry. That's a mosaic of four test screenshots on my game work, showing a sun/star, an Earth-like planet, and a, uhm, Moon-like moon (can we please start calling the Moon Luna in modern parlance, society? Please??), and then a shot of all three seen from the orbit around the moon. It is, and I cannot stretch this enough, a laughably simple test run. Colors are applied according to a random palette algorithm that is about four lines of code. It's the equivalent of a kid learning to color inside the lines. But this was not a great leap of logic to make, and it is, if nothing else, a bit pretty (opinions may freely vary, no offence taken). If this is easy to make, what is hard, then?
I am fairly obsessed with procedural generation. No, not the adorable Spelunky type, or the overhyped, underdeveloped No Man's Sky type. Those, in my opinion, put the emphasis on "generation". As in, "we need to generate some content, stat!". I'm very much on the "procedural" side of the matter. Mix-n-match creature creation like in NMS borders on offensive to me, when someone claims it to be procedural generation (PG). There is no real procedure to that, it's just dice rolls on random tables, and then some digital glue to stick the results together. Again, go to Seventh Sanctum, it's also a lot more funny to read (again, my opinion, yours may vary). PG, to me, is about understanding the complex process of something being brought into existence. Yes, it's about understanding that process with mth and SCIENCE (biatch), but it's about the process. If you want to make PG animals, don't photocopy a horse's head onto a giraffe's body and call it a new thing. You have to understand how creatures evolve and diversify, how they react to their environment and evolve to fit its resources and hazards. Math, yes, but also biology (and arguably chemistry and at least biophysics). Which is where we enter programming territory. When you're sitting there, wanting a computer to "roll you up" a new animal, you don't just need to know programming, or even math, SCIENCE (biatch) and art. You need to know something that seems rare, to the point of non-existant: You need to know how all of them interact!
I won't ramble on too much longer (because dammit, I could). My personal angle on this matter is that yes, art can be programming. But you need to respect it as a child of both worlds. My practical work with PG is coming along nicely, but my theoretical work is fairly insane. In the last entry, I mentioned a developmental model for having computers create entire cities, starting with creating art tools to help create windows and walls, then extending those tools for entire buildings, then city districts, then cities. Carry that onward to its inevitable conclusion, and you'll be creating universes on demand, not unlike what I am trying to accomplish now. But the issue becomes, where does the "art" side of it go, then? To me, art is not about the result. Cave paintings with charcoal and animal blood, Monet's water lilies, Blade Runner's awesome city shots, and the spaceships of Guardians of the Galaxy are all on the same page. They are expressions of ideas, using the tools available to the creators at their time, place and budget. To me, PG, if done right (looking at you, No Man's Sky...), is an artistic expression of coding. Like Michaelangelo trying to undrstand color and Da Vinci trying to understand perspectives, PG is for those who want to understand the deeper structures of expression, be it visual or other. I see PG code as the brushes of the artist, and the code created as the result, rather than what the code itself creates. But this is art beyond an immediate human observation. It is the art behind the canvas. And only if it is good will what is on the canvas be worth any mention.
But that's just me. Let me know your handle on it. And as always...
Cheers, don't be a stranger ;)
Procedural generation can allow a game to feel larger, however like with some of the games you noted there is a balance that must be maintained or it all feels very samie in the end.
Handcrafted sections interlaced can create a grand game, look at the original Diablo.