I intended to return home from work write a blasting post about technical work in Max- quite frankly, I don’t know how you people who have been doing it for as long as you have can put up with it. Instead of learning to deal with the quirks (and I think I’ve learned how to deal with many of the quirks), I find myself developing a more intense dislike of Max as I find ways around these problems and issues.
But for the sake of being constructive, that post will wait for another day. I only lost half a day due to dealing with Max today, not bad in the grand scheme of things (or even the past month). Instead I’d like to write a bit about something I’ve been thinking about for at least a couple months, most of all since Austin GDC where I attended a Max Usergroup party which I would have left despondent if not for winning a new Intuos 3 (which should fetch a price to pay for the prizes for this and the previous contest).
I hate Max. I hate Autodesk. I have a high opinion of Softimage (would you believe, they called me after I DLed their demo to check out my experience!?), but I am sure I’d run into a number of problems with XSI as well. The grass is always greener, right? Well just cause the grass is always greener it doesn’t mean your lawn isn’t a wreck. So I’ve decided to make a goal for myself, to develop or aid in the development of a 3D software that fulfills the needs the current ilk of 3D software simply does not. I’ve been thinking for a while but I think the time has come to start putting the pen to paper, since it is certainly an interesting thought experiment and there are many thoughts on the subject. I’ll probably divide these thoughts up into much more fleshed out discrete chunks (and smaller posts!) as ideas develop. But for now, I just want to look at why 3D software no longer fulfills what we demand of it. Maybe I don’t even have anything to complain about?
All three powerhouse packages- Max, Maya, and XSI- have been around in one form or another for about two decades, and their modern incarnations are over or about a decade old. Think what CG was like 10 years ago, when the groundwork these platforms was set up- Toy Story released in 1995. Toy Story! Compare the technical requirements of that Pixar gem with a modest console game. The software designers at that point could just not have planned for what would happen in 10 years. Sure, a few may have correctly guessed much of what production is like, but could you really design software for what someone will be doing in 10, 12, 15 years? It is just not possible.
But yet 5 days a week, I get up, go to work, and sit down to script on, and curse at, a program whose platform was not even designed with scripting in mind, with developers who when they did implement scripting probably never would have planned on someone making a Vertlet cloth sim or ray-traced skin transfer utility. Hell they probably had no plan for what to do when people wanted to weight vertices instead of envelopes! Yet, somehow, I come in, bang away at my keyboard, then bang away at the wall with my head, and bend Max to what I need it to do… most of the time. I’d imagine the experience is similar whether in Max, Maya, XSI, or whatever.
So we know, or can imagine, how things were even 6 years ago. But development has changed, drastically, at least in technical requirements. The content pipeline for a game is utterly different than it used to be, for good reason- and engines and teams stuck in the old paradigm operate at decreased productivity and increased stress. Much of this change is due to us- technical artists. No longer are artists dependent upon software adding features, or a helpful programmer writing a script and uploading it somewhere, or one of the rare artists who can script making something that looks like crap but gets the job done. There are actually people- us- whose job is to automate, simplify, speed up, fool-proof, the pipeline, and provide tools, buttons, widgets, macros, and more for a team of artists. How many TA’s can program in a compiled language, and think about how many could even 4 years ago (probably more can program in C# now than there were total TA’s 4 years ago?).
Production time isn’t spent creating assets. Even a mediocre artist can say ‘it will take me x hours to create that asset’ and be within the threshold of a couple hours. Where production time, and overages, are spent, is in iteration and pipeline. This is no secret, I don’t think. If it were, there would be far fewer of us.
So why are content pipelines built around 3D programs that are developed primarily for asset creation? Think of all the things Max can do- it is absolute mind-boggling when you really reflect. So many features, and many of them actually work. And what does the FFD modifier have to do with my cloth sim? The same as the reason I can’t extend a Tape helper- nothing. These softwares are incredibly complex spiderwebs of features that weren’t implemented correctly, were implemented well and made obsolete, some were never good ideas in the first place.
Look at where speed lies now, where simplicity lies, where the future of everything from automobile parts to ballistic vests to software architecture lies- modularity, and in the case of the last, abstraction. Again, nothing new here. What needs to be new, is how we look at what we are doing, what our jobs are, and what our tools are. Why do we try to use bubblegum and toothpicks to build the hub, the core, of our pipeline for multi-million dollar projects; we should be using steel and concrete? Why are our tools shovels and pickaxes when we should be using backhoes and dynamite? Yes, there will always be a better backhoe, and backhoes can break- but so can shovels and a backhoe will always be faster.
What I’d like to do with this first thread is talk about, why software is where it is, and what are you problems with it? What would you change? What would you improve? Specifics, generally, whatever. You hate skinOps, or one of the three versions of getVert? Say so. You have a lack of object-orientation, or broken object-orientation? Say so. Say it, whatever it is. Start the discussion. What I’d like to do in future threads is develop general and specific solutions to these problems.
It seems hopeless, but it doesn’t have to be the way it is. I’ve given up the idea of taking a vow to use XSI in my next job- yeah, I’ll probably be using Max. But that doesn’t mean there is no hope or things can’t change. Change can happen, but change comes slowly and has no momentum of its own. It is about time there is a sensible pipeline software that is dedicated to what it is supposed to do. And when it is ‘about time’ for something, that something is probably a speck on the horizon because change never arrives on time. But it always arrives- will we be the ones controlling it or being controlled by it?