This is post 104. That means that I have written one post per week for two years. Most of the posts are just throwaway bits of hack writing, but once in a while I managed to string together a few cogent points using comprehensible sentences. If anyone is keeping score, I’m probably still running a minus on my stats.
I started this one post per week writing schedule so that I would be forced to practice communicating ideas clearly. I’m really not sure if I’m getting any better at it, but I’ll check back in around post 208 and we’ll find out.
Next week I have a post about building things with some pictures, so that should be nice. After that, it will probably be back to the usual 1000 words or so of videogame talk. I might mix it up a bit though. Maybe talk about cartoons.
I just finished reading Game Over, a book by David Sheff that came out in 1993. I was reading it because I wanted to read a new book that came out this year, Console Wars, by Blake Harris. I had read or heard that the first makes a good companion piece for the second. While I can now agree that, yes, these two books do form a consistent timeline from the formation of Nintendo 125 years ago, up through the 16 bit era in the mid-90s, I don’t know if that is the way I would recommend anyone else read them. I just happen to have a deep seated interest in both history and video games, so these are books that appeal to my particular tastes. Either one is interesting on it’s own and Console Wars is a bit funnier, and does give you a nice catch up chapter to fill you in on any history you may have missed.
While I enjoyed Game Over and I am currently enjoying Console Wars, I hadn’t planned to write a book report here. I was thinking, instead, about something that comes up time and again in both books. A theme that comes up time and again in a lot of histories actually.
Let me start with an example. Every company with computer hardware or a game console has tried to create either a download service or a full blown network. There was a cartridge made for the Atari 2600 http://en.wikipedia.org/wiki/GameLine that would allow you to download and play games, read news, get stock info etc. There is a scattered wasteland of such products all the way up and into the 16 bit console era. Despite Modems being a well understood technology at the time not one company could create a network service that people actually wanted to buy into. Not even Nintendo, who had hardware in millions of homes around the world, could entice people to connect the things to a phone or cable line.
TCP, on the other hand, is created as a standard protocol that would enable almost any digital device to talk to any other device. No company backs it, no entity aims to control it, and after a few years of kicking around labs and research projects, a simple open standard allows for explosive growth in computer networking. TCP/IP allows for the creation of the internet and any of the tech companies that survived the early years benefit in unprecedented ways. New companies and technologies spring up to feed off of and feed into the internet. In a matter of a decade, the world is changed.
It’s not just a matter of the right thing at the right time. Those early stabs at creating networks where not so technologically inferior to TCP that they couldn’t have rose up to become the internet. The copper wires that carried the signal from one point to another back then are the same ones that carry our phone, television, and internet today. The switches that connect them are faster, smaller, cheaper now than they were then, but the job they do is the same. So why didn’t these networks take off?
People are terrible at predicting the future, especially when they attempt to mold those predictions into long term realities. Conversely, people are phenomenal at exploiting innovation. The early attempts at networks would have benefited only the company that designed and implemented the network. It was a closed loop, a black box. The ability to exploit that particular innovation was limited to the few people at that one company that understood it. The impulse to build monopoly into an innovation doomed it from the start. No one wants to play in your sandbox when you set the rules. Turns out there is a lot more sand available, enough for many sandboxes.
“They will buy it, because we will sell it to them” echos in the hollowed out husks of many once powerful companies. Not just companies, civilizations. And the innovations that allowed many to benefit, the ideas that could be the most fully exploited in the most wildly different ways, persist. I don’t think it’s luck. It may be difficult to plan for success, but planning for failure appears to be as easy as taking an imperialistic stance on innovation.
While doing some research for a presentation I may get to delivering, one day, in the far off future, I got to thinking about Truespace. I don’t fault you if you’ve never heard of it. In the history of computer 3D modelling and animation, Truespace barely registers as a footnote. I had fiddled with Povray, and some 3D features of Autocad, but Truespace was the first 3D animation program I ever used. The reason I stuck with it, and actually learned how to use the tools in Truespace can be boiled down to one word. Feedback.
If you look at the Truespace (Truespace2 to be exact) interface now, it looks archaic and maybe even a little childish. Even so, it is as friendly and easily parsed as when I fired it up around 1996. When you compare it to the abusive interface of Autocad from the same time, Truespace was probably a full decade ahead of the curve. It all boils down to feedback. If you wanted to move a model around on a flat plane, you would click the translate button, or press the associated hotkey and move your mouse. The model would move. Select rotation and move your mouse, the object would rotate. You could define the axis of motion, rotation, or scale, based on what mouse buttons you clicked and where your hand moved.
By this point you are probably wondering what the big deal is. Moving the mouse to move an object on screen is pretty much the way programs work, right? 3D graphics at the time were still barely crawling out of the text editor. The only systems that operated like I just described would cost several thousand dollars and only run on some high end proprietary hardware. Even then, programs like autocad and 3d studio, that may actually be available to the average human, were complex beyond reason. More often than not most programs would have you consider the problem, type in the values that solve the problem, and then redraw the scene to see if your changes worked. In Truespace you would click and drag. Instant Feedback.
Truespace was certainly less capable than other 3d animation software of the time, and it was quickly overshadowed by the likes of Lightwave and 3Dstudio Max, but it gave me enough of a head start that I was able to get very comfortable with more advanced software when the opportunity presented itself.
Software that provides constant, consistent feedback has always been easier for me to learn. Even when things get very arcane, like the dependency graph in Maya, if the program offers constant feedback (maya is a feedback factory) learning will come easily. Funny enough, that’s how just about all games work.
I’m fairly certain an artist should not be the sole judge of their own work. Maybe a case can be made for the auteurs of the world having the final say on how their work gets presented. I think that is likely rubbish, and any creator given total control and freedom will either make something terrible, or just never finish anything at all.
I’ve been working on the same set of shaders for ages now, and while I can tell how the new version is subtly better than all the previous versions, it’s doubtful that anyone else will notice, or care. I could probably put a few years into tuning an effect or model or bit of animation, and never be fully satisfied. It’s a cliche that the artist is always the harshest critic, but I don’t think that is really true. It’s not that I think the things I make are terrible, it’s that I know how much work it will take to improve them.
I use to work in commercial art. Logos, layouts, designs, compositions, that sort of thing. Often I would work very hard at it, really put some solid thought and effort into making the best whatever I was making. Some of the stuff, I was really proud of. Sure I saw the flaws, the places that a bit more time, money, or material could have improved, but I wasn’t upset about it. I felt like I had done a good job for the client and I was happy to present them with whatever it was they were paying me for. They were happy, I was happy, I could move on to the next job and do it all over again. This cycle played itself out almost daily. It certainly didn’t drag on for months.
So there is the problem, and also the solution. It isn’t that artists are too critical of their own work to ever be satisfied. The problem is that the client can’t be yourself. The time will never come when you won’t send something back to yourself for revision. You will never hesitate to offer yourself notes. And on the other side, you won’t take the extra step to please yourself. You won’t put in overtime trying to meet your own standards. You already know that you are the worst kind of client. One that can never give a final sign off, one that can’t resist asking for one more pass. So the solution I’m working on is to not be the client.
It might not be entirely healthy for a grown man to invent imaginary people. I’ve got a client here with me, we’ll call him Jeff. Maybe it’s Geof. Either way, that guy is giving me the big thumbs up on this latest version of the shader. He tells me he has a bunch of orders to put through. 3D models, UI, animations, a whole stack of stuff he needs for this game. I couldn’t be happier to help. I want this project of his to look great and I’ll keep banging away on these orders. I may still see the flaws and the places where things could be improved, but Geof over here, he has pretty high standards and he says it’s looking good. If he’s happy, I’m happy.