Friday, August 19, 2011

The Tiny Door of Priests

I had intended the previous post to be just a few paragraphs to lead into the heart of the post, but I kept on thinking of stuff to say and when I feel that, I don't resist. Feeling however that I've established to some degree why D&D fails as a game - an argument that could go a long time but belongs on the previous post - let's talk about what could make it better. And let's all understand, O Gentle Reader, that I will set aside my conception of D&D, and you will set aside your conception of D&D, long enough for us to talk about a bigger picture.

Shall I tell you first what I hate equally about visual artists and computer programmers? It is quite simple. They are virtually useless to me.

Let us consider a person of a completely different artistic temperment: a musician. I am having a wedding, and I think it would be lovely to have music at that wedding. No problem. I contract a musician, I negotiate a contract, the musician shows up and plays for the wedding, everyone is happy. Moreover, there's a long-standing tradition with musicians that enable them to realize that playing for a wedding party is not the time to try out your a-tonal experimental material. They don't seem to mind terribly playing tame, easily recognizable tunes, bland though they may be, because for some reason they seem to be able to remember for a whole five hour period that they are working for other people and that their personal bullshit isn't appropriate. It is even possible to go to a musician and ask them to play something you would like to hear - and incredibly, they don't spit at you and call you a meddling asshole for daring to suggest they use their talents for your benefit. It is as though they recognize that not everyone who appreciates music has the ability to actually be a musician! How bizarre is that? I simply am not able to recall going up to a musician, suggesting they play a bit of folk music, and getting the response, "You want to listen to folk music, why don't you learn to play a fucking instrument you obnoxious freak?"

Let me carry this example one step further, though the reader simply won't believe me. Did you know that sometimes a musician will even play a song you like for free? I know. Unimaginable. It is as though they just like being musicians, and they don't care what they play.

Now, I have to admit that I have on two occasions demanded that people pay me before telling me what to write on this blog and how to write it. But for those who are paying attention, I have many times written on subjects when I was asked to do so. I am not above working for free ... if I am asked. It is the whole being TOLD to write a certain way that gets under my skin.

Okay, let's get back to artists and computer programmers. What a fucking pissant lot of self-righteous little shitholes we have there. My god, asking one of them to slap a little paint around or write a few lines of code, you'd think you were asking them to rip out their soul, jab a stick through it and roast it in the rich flames of a gasoline fire. Holy shit, just imagine someone who is not a computer programmer having an idea about what kind of programs could be designed for a particular thing. Heresy, that's what it is. Fucking outrageous heresy. Rest assured, every idea in the universe that will ever be worth having will ultimately and in the end be had by computer programmers ... and if it isn't, well, it was a shit idea to begin with, wasn't it?

Now, I don't deride the necessary skill and effort it takes to write code. On the contrary - it is quite beyond me. I used to do it way back in the age of Basic, but Cobal and Fortran were babblage to me and I really couldn't stir myself to write it. Thankfully, some idiot proved that I would never have to, by stupidly making it possible for code-illiterate slobs like me to actually use a computer for things like, oh, writing and stuff. What a dark fucking day in the age of IT that was.

Just for the record, the guards in the famous 1984 Apple commercial were assholes who taught Fortran for a living.

In case there are any programmers out there reading this and taking great umbrage at this diatribe, I have a message for you. Go fuck yourselves. There are about a million things in the world that are hard to do, but which people are willing and able to do for others who can't do it. Being a doctor or a lawyer is hard too, but I can still go to one or the other and get advice without being told I'm an asshole for not learning everything there is to know about medicine or the law. Doctors and lawyers manage to somehow describe things to me in language I can understand, they don't seem to mind that I need them and in general they're not stuck up suffering little pricks. I've seen them smile now and then.

This is another one of those situations where I've gone on longer than I intended. The opinion, however, is off the chain and I feel like hammering it home. I've worked in the oil industry, for a high-tech utility, for the statistics branch of the government and in both the publishing and film industries ... and everywhere computer techies are the same. You have to beat them and beat them to make them produce what you want them to produce ... and even then it doesn't work.

Here is the situation. D&D needs a butt-load of really complex programming to lift it out of the pen-and-paper age and move it into modern times. Computer programmers, by and large, have proven themselves to be absolute shit at doing this. They are rather simple minded creatures, who think absolutely everything in the world needs to be automated and absolutely fail to understand that being able to manipulate something on the screen like I would hold a hammer or saw a log would be incredibly useful. Programmers, however, being 2-dimensional thinkers they are, presume that the only important thing about manipulating anything is the final result. In 50 years they have zero-conception of the zen of doing things yourself, and given another 50 years they will continue to have the same level of comprehension.

If we are going to talk about computer games and computer graphics and their addition to D&D, what I need is a space where the only changes that occur are those that I have made myself. I need tools like waldos that enable me to personally shape and fashion the world of my desire, without pre-programmed "time-saving" crap and garbage. Don't save my time. Don't decide for me what I need. And when I tell you to do this, SHUT THE FUCK UP ABOUT HOW YOU THINK IT SHOULD WORK. In this particular case, given that you don't know a fucking thing about what I'd like to do with this environment, just make it work like I want it to work.

In this particular case, I am going to write the music. You're just going to play it.

Hey, it won't be that hard. Musicians play music written by other people all the time.

Okay, deep breath.

Fact is, the arrangement I'm describing is never going to happen. Take any element of the game, from DMing to game design to the maps of the world to the trade system that runs it to the monsters that inhabit it and their behavior and so on and so forth, and put it in the hands of a programmer, and you are going to get back a pile of shit that the programmer decided in their infinite wisdom that YOU were going to need. It never occurs to a programmer that these biased ideas about what is needed and what is not is smothering the creativity of everyone who isn't a programmer. They know best and you can't tell them anything. It's like talking to a priest.

There are spectacular potentials for computer-interactive D&D. It has to happen on some level where the computer is not a stand-in for the DM, but a literal tool in the DM's hands. At present, the only real computerized tool that is 100% DM-controlled is Microsoft Office. This is pathetic. We cannot play on the next level until the next level is built. Which it won't be with the priests in charge.

Oh, if I had been a programmer, what might I have accomplished. But I was too busy learning about a lot of other things besides computers ... completely useless things, obviously, because I should have spent the last twenty years invested in this one skill that other people already know how to do. If only I could take advantage of that expertise, the way I might with a broker or a cabinet-maker. Oh well. At least Jobs invented Office. Best thing that ever happened to D&D.

Pause a moment, O Programmer Priests, and before you scream at me recognize how really, really shameful that is.

I've been enjoying your blog, but you seem to be going completely bonkers (you do refer to your mental state in the last post to be fair). Obviously you feel it's acceptable to make incredible, jaw-dropping, sweeping, negative statements about vast swathes of the population - well, it's your blog, and your right to say what you want on it, I respect that. But I mean, do you really, really honestly mean it? Are all programmers and artists useless, space-wasting assholes just because you can't find someone willing to robotically provide you with something you need, at a huge cost of their time and effort, for your own satisfaction, for a game, which in the grand scheme of things means fuck all? That's a god complex if ever there was one.

Not if that's what he's paying them to do. Is it a god complex to expect that if you pay a plumber to come fix your toilet, that you now have a gold plated toilet in the shape of a cow, but it still won't work right?

My issue is that it's a generalisation, which Alexis admitted above. If you pay a programmer to do what you want, and he does what he wants, he's shit at his job. If he does what you want, he's professional and gets to pay his bills. I'm an illustrator. If I do my own thing, I don't get paid. If I do what the art director tells me to do, I get paid. So not all programmers and artists are slapdash twats that deliberately or stupidly try to squeeze the client's vision or requirements through their own twisted filters. That's what I took offense to, and I'm happy to leave it there.

Thanks Alexis. I absolutely understand where you're coming from. The code monkey culture seems populated on one end with academics full of mathematical righteousness who can't see the product through the trees, and super-hackers on the other end who spend a lot of time saying "watch what I can do" and not enough listening to their clients.

I feel a need to defend us a little bit though. You write, "Programmers [...] presume that the only important thing about manipulating anything is the final result." This is true about many programmers, but there's a good reason for it that comes out of the software process: Beyond the fact that speed and automation are paramount in many business applications, is the problem that our clients are often less thoughtful and articulate than you. Clients describe their products in long, rambling dialogue, full of contradictions. They often try to prove their technical literacy and be part of the programming effort instead of recognizing that they are working with a professional; it's akin to asking the piano player if you can play the top five keys, but you still expect a perfect performance. They describe their work and their needs, then present a solution that - unbeknownst to them - will not meet those needs adequately. (I want materials for a game with a ball that goes through a hoop. Let's make the hoop 40cm in diameter and the ball a 25cm radius.) What a mess!

Therefore, programmers often spend a lot of time telling the client what it is the client actually wants. Half-decent programmers listen well, and help the client figure out what they actually want. Good programmers can do this and keep things within budget. Very good programmers do this so well that the client doesn't realize it is happening. It's a pity, then, that social skills are not a strong point for the majority of the programmer demographic.

I don't want to excuse this. It's a crucial but often under-developed skill. Every once in a while a programmer snaps and gives a client exactly what they asked for in the first place - this usually leads to development hell and million-dollar budget overruns.

Of course, you're also talking about a lack of automation in the final product, and the value of manipulating elements yourself. I think you'd have a better experience with a seasoned game programmer who's learned how to uphold the artistic vision of another (I'm actually going to school for exactly that next week). Such a person will have more appreciation for your desire to manipulate things yourself, and for it to feel right. They'll also be less obsessed with automation, since doing it yourself is the point of many games.

It would be interesting to see your written spec for a program and then the end result the programmer delivered to you.

I've seen many times when the programmer delivered what was asked for, but it wasn't what the other person wanted.

It's not the programmer's fault if they fulfill the written spec you've given them (you do that, yes?) and it's still not what you want. It's your fault for not being clear enough about what you want the program to do and how it should work.

Point fully understood, Isle. And I agree, whole-heartedly. Regarding the development hell and overruns, I've seen it happen over and over.

Part of my anger for the attitude of many programmers comes from having to turn to them in the business environment to have something fixed or replaced so I can do my job, and being faced with a programmer whose whole attitude is being put upon for having to do their job. It is a very common business experience.

It is something else too, a similar attitude towards group tasks that I have encountered with paint-and-sculpture artists.

Having worked in both film and theatre, it is a constant reality that people of wildly diverse skill sets are pulled together to work on projects. Actors have their hang ups, but they are only the beginning; there are union people of all kinds that make up the tech side. I have rarely had any troubles with lighting experts, electricians, sound techies, costumers, make-up and grips ... but oh my fucking god you want to get something painted, you are going to spend one fuck of a lot of time arguing with an artist. They are the biggest pains in the ass, they never want to do one tiny thing more than they've been contracted for and they're always impossible to find.

If, like me, you are working on an extreme budget, you can get most anyone to work for very little wages or for free, because they recognize the experience of working with others in the industry is a positive influence on their creativity and ability. But no, not artists. Don't even think about offering an artist one dime less than they think they deserve. They are the meanest, most miserable people alive.

And these last ten years, I am finding in business that programmers are adopting that same attitude, all out. I can't understand what it is that makes being a programmer so freaking special.

I am guessing Isle that this is not you. Perhaps you might recognize the behavior.

As I said to Isle, I have worked with all kinds of technicians to produce all kinds of projects. I have sat in rooms where people explained some difficult shot or idea to a techie, and gotten back the answer, "I will work on that, and get back to you with a plan for making that happen."

I've never seen a director provide a "written spec" for anyone. The reason you hire techies is so THEY can handle the tech ... supposedly, they're experts at it. When a techie cries to me that they can't produce what I want, I get another techie.

That said, here's the philosophy I've always worked with: "I want this. I don't know how to do it. I won't tell you how to do it. I won't micromanage you, and if it does this when we're done, GREAT. If you tell me it can't be done, Then I'll find someone else or I'll come up with something you say CAN be done."

This has never been a problem. Except with artists and computer programmers.

Now, here's my feeling about what I wrote two posts hence from this one. Can it be done? Yes or no. If it can, come back and tell me how you would like to do it. As long as you don't change fundamentally the object, I don't care what you have to do to make it happen.

And let me say this about virtually everyone else I've seen work with tech people. They don't trust the techs. They don't listen. They don't do what the techs say. They don't express themselves clearly in what they want. They change their minds about what they want daily. Most people are incredibly, hopelessly stupid. I pity techs for having to deal with them.

But I'm not them. I know what I want. I don't care how it gets done. Can you do it?

I do recognize that attitude. I see it in my colleagues and I have to fight it in myself, most days. I think maybe most programmers don't love their job like they tell themselves they do; I fell in love with the art of programming, the magic of crafting a perfect mechanism out of the digital ether - but what I'm asked to do at work isn't usually art, it's crude engineering. It's not boring, but it's not so fulfilling, either, if the ether is what you signed up for.

I've recognized this in myself and am going back to school to get out of business software and into something truly creative - and I'm told I'll meet colleagues, technical and artistic alike, who buck this exact trend and aren't miserly with their skill. I hope that's true.

Yes, there is some art to programming, and yes, I'm pretentious enough to say that. Heck, my resume reads "Software Artisan." But I also sympathize with Chris Crawford when he writes, "There is no easy way to produce good computer games. You must start with a good game designer, an individual with artistic flair and a feel for people. That person must then learn to program. The opposite direction of development (from programmer to designer) will not work, for programmers are made but artists are born."

This sounds like pretty much every upper-level "business" asshole I've had to deal with in the 13 years I've been in The Industry. No fucking clue and resentful because you pay "all this money" so you should be able to get exactly what you want and it's only a "few lines of code" even though you've admitted to knowing very little about programming. The only thing you're missing is the threat to "offshore" the work if we don't get our asses in gear and hit the date like you said.

Ah well. Ignorance can be a power driver. May I suggest a book? Better yet, there are a group of books, the "Primer Plus" series from SAMS publishing. Pick your poison: C, C++, Java, C#, or Visual Basic. I would choose one of the latter three because I think you'll find them a faster path to accomplishing your vision.

From my own experience, there is nothing that will get you to learn to code faster than having something you want to program.

Also, Jobs didn't invent Office, but I'm starting to think you may have said that on-purpose just to get a rise out of me.