TA's with a 3D graphics background: Tell me your story

There’s a couple things I’m trying to find out with this thread so bear with me - it’s probably gonna be long.

Let me first introduce myself:
My name is Martin and I’m a 27 year old 3D artist from Stockholm, Sweden. I work as a 3D artist for Polarbit Games - a developer of middleware and 3D games for the mobile markets.
I guess I’m still considered a “junior” artist: I have 1 year of industry from the game dev industry: half that year I spent at Avalanche Studios, working as an intern 3D Artist on Renegade Ops which was released a year ago. After that internship they more or less kicked me out (said they were full, then one week later they hired a classmate of mine) and I was unemployed for 9 months before getting my current job, which I’ve had for 6+ months.

I’ve come to realise that in order to get a better job - because the current one is… understimulating and underpaying - I have to get better somehow. When I look at my portfolio I just think how unfair it is that it doesn’t reflect my skills, yet I can’t seem to find time or inspiration to improve it. But I’ve tried keeping my mind stimulated, and gradually learned MEL and even made some tools with it. I’ve also spent extensive time on improving my own workflow when 3D modelling: I’ve kinda been obsessed with optimization the last few months - and it’s paying off. These last 6 months has definetly dragged me in a more technical direction. I’ve created custom UI’s in stuff like Photoshop (for myself) - including custom toolbar/other pane - creating resources in form of brushes and in MEL I’ve created an extended UV Editor. And now that I feel comfortable with MEL there’s this list of tools that I want to create, both to help me but also to help people at work. I wrote a GUI for a file exporter a few months ago and I guess that’s where it started. Nothing fancy really. And now I want to create at least my own “speedbox”, a duped materials -remover and a custom vertex color painter. I’m also seriously considering learning Python, and make my next tools with that.

The point I’m trying to make here is that I like creating important stuff that other people find handy and helpful. I like to create art too ofc - but I also like this.
Now I’m trying to ask myself if I got what it takes to be a Technical Artist, and frankly I got no clue.
I have never spoken to a TA with a background in graphics: they’ve all been coders.
And the thing I’m most curious about is how to get over the fact that you need to learn C++ - or do you?
I had one class of programming in High Scool - which I barely passed. It was extremely boring and the teacher wasn’t very inspirational at all.
The second one I had was intro to Java when I studied at university. I passed all the practical tests but failed the exam because the teacher thought it was more important to know perfect syntaxing blindfolded, than it is to understand code flow and logic. So that class I failed and after that I kinda decided that “I hate programming”.

I guess that’s an overstatement though because I have a background in web design and know quite a bit about it. And now I’m learning MEL and it’s going good… and I want to learn Python. But I’m also fearful of C++ because there’s a TON to learn and it’s so… boring? But if we exclude that for now, what would you consider to be THE best toolbox of allround skills for a junior tech artist, who has a background in 3D???
And last but not least: Could I become a Tech Artist?

I’m a 3D artist and a TA. I got my start as an environment art intern. There are plenty of TAs who have started as artists or animators. A couple of years ago at Jeff’s tech art roundtable at GDC we did a show of hands. I seem to remember it was a fairly even split between people who started on the art side and those who were coders. Anybody back me up? I know a bunch of you were there.

Whether or not you need C++ depends on the studio and job. Many TAs exclusively use scripting languages, such as python, javascript, or package-specific languages like Maxscript. If you find C++ boring it’s probably because you’ve never tried to solve an interesting problem with it. I doubt very many people think coding is fun when they’re doing something pointless – it’s the power it gives you to make important things happen that makes it fun. And C++ gives you a LOT of power. (A scripting language like python can be really powerful, too!)

The things you’re doing already sound like a decent place for a junior TA to start. When I got started, I did it much the way you’re doing it now. Like you I’d taken programming classes in school (though I liked them a good deal better than you, apparently) but never completed a degree in it. Like you I was hired as an artist. Like you I solved problems in my own sandbox first to make myself faster. Pretty soon other people caught on to what I was doing (or I may have jumped up and down and shouted LOOK OVER HERE – I don’t remember, exactly). Then requests for scripts started to roll in.

Now I write graphics code, the occasional plugin for DCC apps (yes, in C++) and write bunches python pipeline stuff. I learned all of that on the job. I never did stop making art, though. I have plenty of assets “in the box.”

So there are people here that do what you want to do. I would hope you’re never forced to choose between art and code. The people who can solve the hardest problems are the ones with the most knowledge. Creating art assets often enough that you’re up to date on current techniques can make you a stronger TA.

There’s plenty of threads around here with answers to “what should I learn” questions. Poke around and see. They’ve mostly been asked by students, though. You’re in a different position since you already have a job in the industry. That means you’re in a great position to figure out what to focus on. You just need to look around and talk to your colleagues. Find out what you need to know to solve the problems in front of you, and just keep on learning and growing that way. Motivation can be a problem when you’re learning just for the sake of ticking some boxes on a list. If you’ve got to learn so that you can solve something right now, you’re more likely to stick with it, and it’s more likely to stick with you.

I like creating important stuff that other people find handy and helpful.

Yes, you can be a TA. Sounds like you already are.

I went to a trade school and learned to be programmer for business applications (although a big amount of the class ended up as SAP admins). I went to AI as I didn’t even know what a folio was back then in '98. Got my first industry job as character modeller. Three reasons drove me back to tech art: Modeling faces for no end every day became boring - i need diversity. I was good but not that good at what I did modelling wise. And I just love to tinker with stuff.

About skills - when I hire people here in China I already have very low standards because 3D education isn’t there and TAs are very hard to find. We hire mostly new college grads, and I think most of the folks I hire wouldn’t get hired as junior TAs in the west. But you have to take what’s available and work with these people.

Now the interesting thing is: Most TAs here learn on the job. Our TAs are able to support complex projects from EA, Ubi, Naughty Dog where we deal with a full pipeline from our client. They learned to write C++ code, deal with databases etc. We train them on the job - and this shows to me, it’s not about your skill - it’s about your attitude! I look for people who are curious, detail oriented, who have drive and want to learn, who have diverse interests and like cross-discipline work. People who can see the big picture and who’re good at reasoning and who have a certain talent for improvisation and getting things done. People who’re comfortable juggling multiple projects at a time.
If the personality is right, we can teach them all they need. When I interview I mostly look for the right personality type. I prefer training people the skills vs. trying to change their personality.

Otherwise I look for basic scripting skills - any language will do. Just show me you have some idea what you’re doing. I’m looking for neatness. Document your code. Pay attention to detail. For my company it’s also good if applicants show interest in a diverse disciplines - could be rigging, SFX, animation, C++, etc.

And be prepared to learn - always! I’m focusing on coding now. When I started I knew basic C#, MaxScript, Javascript and some database stuff. Now I program in C++, Python, Javascript, C# and still in MaxScript. I wrote libraries in C++ for Python, Photoshop Extendscript and ZScript. Now I’m learning some Actionscript to make full use of panels in Adobe apps so we can write tools for our 2D art team… There’s always something to learn! And if you now think “that’s awesome!” then you’re TA material!

There’s multiple specializations in the TA field, depending on company and project. Eric Chadwick has a very good curriculum outlined on his website of what TAs should know if you want to get some pointers as to what to learn. In my company we’re mostly focused on engine support (e.g. Unreal, Unity, CryEngine) and on pipeline and QA tools. For us coding ability is more important than artistic ability. Having said that, a TA who doesn’t know the art creation process is useless - we can hire real programmers if we want people who have no clue about Max or Maya :wink: So stay up to date on art creation workflows and on the software used for that.

So what does it take to be a TA? Mostly the right personality I’d say.

I definitely started off on the art side of the scale, though I’d already had a smattering of dabblings in scripting (QuakeC, uScript, TorqueScript, and eventually C# with my Unity experimentation). That said… C++ is still something on my list of things to learn at some point. Currently, though, I’m able to do plenty with scripting languages like python, Javascript and Maxscript, as well as C#, so I haven’t had a strong impetus to get off my lazy chair and get started with C++. Yet. As far as my tech art experience is concerned, I learned quite a lot on the job (that includes most of my current Maxscript and Javascript [for Photoshop] knowledge!). My knowledge and experience with languages and pipeline stuff was mostly the result of my own dabblings, but they at least gave me a bit of preparation for the sorts of problems I’d end up needing to solve here. Which required tons of learning on the job.

I like creating important stuff that other people find handy and helpful.

That’s pretty much what got me started!

Part of a TA’s work (this of course depends on the studio) will also involve non-programmy work in the form of jumping in and helping the other artists out with techniques, resources, etc. Having an art background is a big plus on that particular front.

What Robert said rings quite true: “So what does it take to be a TA? Mostly the right personality I’d say.”
If you’re willing to learn, experiment, if you’re self-driven and are able to solve problems that others might not realise are there, you’re in a good place.

(all this bearing in mind I’m only a little over a year into my first tech art job)

I pretty much started in the same way, 3d Artist modeling props, vehicles, environment wrote small script to help myself with repeated routines and then went on to write bigger scripts/pipelines and solve issues in production. The most important thing for me was the interest and curiosity to solve problems and learn new stuff that attracted to TA’s role. I have learnt all the scripting skill that I currently have on job like maxscript, python, javascript, mel etc.
A TA has to have the ability to quickly evolve, improve and learn as there are multiple specializations and each studio has a different definition for TA sometimes you may need to do/help in a task which you may not have known/done yet.

I think you are on the right track, all you need is FOCUS…

Thanks for all the replies.
I now realise that your state of mind and your attitude is so very important: and that makes me more confident. I am a very detail-focused and dutiful person you see (typical ISTJ personality) and I just like to keep things tidy and functional - if things are not “optimal” I feel an urge to correct whatever I feel could be improved. I guess that’s an important personality feature to have…

I also realise that I got a long way to go. I only have one year of experience with the industry.

I’ve thought of buying this Python book for some time now: http://www.amazon.com/Maya-Python-Games-Film-Reference/dp/0123785782/ref=sr_1_1?ie=UTF8&qid=1334394818&sr=8-1
…has anyone here read it or heard of it? I’ve spoken to another Tech Artist who recommended it, an a junior technical animator who I know she also recommended it.
I think that Python is the next step to take, that and maybe learn javascript and actionscript (so I can make Photoshop tools). I already have some experience working with javascript and Flash so it’s not all new to me (I have a background in web development after all).

It’s just that finding time for everything I want to do is so hard when you have a fulltime job.

The main reason why I was hired at Codemasters was because of my attitude. Having a passion for solving problems and wanting to help people has pushed me in the role of a technical artist. I did everything like level design, 3D art, programming, UI design in my free time when I was trying to find out what I wanted to do with my life before I went to University. Then at university I continued my search for what I really wanted to do, but thanks to feedback from all my friends and the people I have done projects with, I found out that I made a difference in projects while being a technical artist.

I have tried to found out what could really make me the best technical artist I could be. The answer to me now is to ask that same question every day again and again so I continue trying new things, exploring and learning from other people. The story never ends …

So my feedback to you is. Try a lot, fail fast, learn from your mistakes and try again.

[QUOTE=Nysuatro;17995]Try a lot, fail fast, learn from your mistakes and try again.[/QUOTE]
This. A million times this.

I know that my experience is lacking and that many of you probably got half a decade/a decade of experience - or more - so comparing myself with you might not be very fair to myself. But I can’t help myself but think where on earth I’m gonna get the time to study this or study that - do project A or look at pipeline B. And all the stuff you list sounds awfully complicated. I don’t mind complicated if I can get the time to set my mind into something but I’m a more of a practical learner and not a theoretical one: I have to make stuff with my own hands (and brain!) or else I don’t learn properly and things just start fading away. I can’t just scan through books and then insta-learn stuff like some savant.

But if mindset is the most important thing then I guess I shouldn’t worry too much or be too hard on myself? I already have an internal list of TA-related stuff I wanna go through and/or learn, and I guess I’ll just have to take them one by one at a slow pace over the years. Below is my list btw - I would appreciate if you made a small comment about it:

-More Maya MEL (getting quite decent at it - my boss even said “damn cool” about my UV editor lol)
-Python for Maya (planning on making at least ONE tool with it of average complexity)
-Learn how to write shaders (CGFX or HLSL shaders at least - mainly just to get a basic understanding)
-Scripting for Photoshop (Javascript is my choice of scripting language here) and re-learn Flash for the nth time.
-Actionscripting (Maybe make some UI-stuff with UDK)
-Learn the UDK pipeline some more
-Learn the CryEngine pipeline
-Learn the last parts of Maya I haven’t really bothered looking at: Fluids, Physics, Dynamics, nCloth, Rigging

…and later on maybe look at Maya API/C++

In general I want to learn a little about a lot of things instead of the other way around - at least until I know better what I’m good/sucky at.

In my opinion, learning multiple engines is a waste of time. It is not about knowing the tools, it is what you do with it. For that you do not need the knowledge of all the engines.

I would create a project where you combine a couple of things you want to learn, document your process so we can follow your evolution and what decisions you made and why.

On the experience part, I would not really worry about that … Don’t waste your time and energy on comparing and just do your best. You will get there :slight_smile:

[QUOTE=Nysuatro;18050]In my opinion, learning multiple engines is a waste of time. It is not about knowing the tools, it is what you do with it. For that you do not need the knowledge of all the engines.

I would create a project where you combine a couple of things you want to learn, document your process so we can follow your evolution and what decisions you made and why.

On the experience part, I would not really worry about that … Don’t waste your time and energy on comparing and just do your best. You will get there :)[/QUOTE]

I totally agree with this^^^^,
You never know what engine you might end up working with, best thing is to just pick one and learn to own it while you use it (like Unity since it’s super easy to pick up), a lot of what you learn in most engines can be transferable and if its not, just write a new tool :D. Creating my own projects has been the best thing to learn something new, you need to have a goal, if that means pretending you have a real deadline set from and invisible boss to get it done, do it. Sometimes it’s nice to read posts on here and see what issues people are having and think “could I make a tool for that?” or “I want to figure out how in the world they did that!”.
The Maya Python book is awesome, well worth the investment, but it IS pretty biased to Maya(shocker) I would say try to make some standalone applications with PyQt to get a feel of the power of python outside of a DCC as well.

I agree that there’s nothing better than picking a goal and driving towards it, learning what you need to learn to get there. People learn by having a narrative - a story of how things happen in a logical sequence. Just noodling and around reading docs and doing tutorials doesn’t cut it.

That said, I’d also put in a plug for the value of seeing broadly (like, switching to a new tool or engine or package for project # 2).

There’s two kinds of knowledge at play here:

There’s tweaky, package-specific bullshit knowledge (like ‘don’t forget to use ls -ni to to avoid trying to process ghost history objects’ in Maya or ‘always save your maxScripts in an ASCII-only text format’ in max ) This kind of stuff is junk knowledge. It’s part of what makes TA’s valuable – we tend to be the kind of people who notice and remember this stuff – but it’s just a collection of untlimatelyu meaningless quirks that don’t get at the way graphics or games actually work. Switching between packages or engines is painful because there is so much of this out there, and generally it’s all low return-on-investment stuff: it’s things that don’t amaze or impress you, but rather piss you off because they don’t work the way you’d expect.

Beyond that, though, is strategic knowledge. If you become a Max (or Maya, or for that matter Unreal or CryEngine) expert without ever learning how the competition does it, you can’t grasp the blinkers that are put on you by the choices made in the package. Even after all this time art packages and engines have provide very different spins on how to approach some of the central problems in 3d art, and if you only know one thing super well you have a hard time realizing which parts of the problem set are really fundamentals ( limitations of math or logic or resources) and which are just aspects of a particular approach.

That said, it’s a good idea to stay focused on one project at a time and not just run off after every cool new trick you read about. However over the long run you can’t provide really effective guidance to your teammates unless you have a solid grounding in how things are done in different software.