I’ve picked up an assistant teaching gig once a week in the evenings at an academy that offers graduate degrees in art, programming, and production in game development.
Though Technical Art is not a offered as a degree, it can be a area of focus for students in the art or programming track.
I’m looking for input on what ya’ll would expect to be covered in such a course over 3 semesters(45 * 1.5 h classes).
This is what I’ve scribbled down so far.
Game Dev
Game Maker
useful for into to programming?
Unity
C#
Custom Controllers
Batch processors
Shaders / Materials
Unreal
Cascade (Particles)
Kismet or Blueprint
Materials / Shaders
Matinee ?
Content Dev
Maya
Maya APIs
Mel
Python using maya.cmds
Python using maya.OpenMaya
C++
Maya .NET C#
Pymel
Maya 2015 Shader Authoring
Using HLSL / CGFX in view port
3ds Max APIs
MAXScript
API (C++)
Houdini APIs
Script (Python)
VEX (C)
HDK (C++)
Math
Vectors
Matrix
Transforms
Lighting
FX Composer
Marmoset
Toolbag
Skylab
Allegorithmic Substance
Xnormal
Exercises
Given a functional tool
Modify a feature (maybe to use externalized data)
Add a feature.
Create Documention
User docs, for artists
Developer docs
Given a broken piece of code, find and fix issue.
Write a tool with UI that exports or imports files and performs some checks on the data.
Notes to self: What is a TAs duties? Is that what's being covered.
Be a good problem-solver.
Artist support, advocacy, and open involvement in their processes.
Some experience in each of the major art disciplines.
Continually seek to improve the art pipeline.
Proactively find and address issues.
Keep artist and engineering informed, keeping lines of communication open and easy.
Optimization & Performance
Know under the hood how content is used in engine.
Review content, provide helpfull feedback for issues and improvements.
Document and teach work flows and best practices.
Work with engineering, design, directors, leads, and management to realize features.
Very good tool coverage, but I feel a focus on basic project management and basic software engineering is missing.
A good amount of TA work is generated because of legacy and hackish solutions which eventually break down. Yet as pipelines become more complex we, as TAs, have a responsibility to do things better and construct more robust pipelines. If you need inspiration regarding this, Rob’s (Galanakis) blog is a great source of inspiration!
But I think if you’re a TA who does programming, you should be aware of some software engineering basics: like OOP, unit testing, logging, programming in a maintenance friendly manner that promotes readability.
Imho there is an analogy to production art. Picking up new 3D tools is easy, picking up techniques and best practices is hard. That’s why schools who just turn you into button pushers are frowned upon. You should take this as a guide: If you know one programming language, you can pick up others on your own pace. But picking up good programming and work habits is much, much harder. If there’s no space for this, remove some of the lesser used programming topics, like Houdini. Instead focus on giving TAs a solid foundation in creating robust, reliable and maintainable tools and workflows. Knowing a dozen languages is useless if you don’t know the basics of creating good tools.
Some basic project management and software development lifecycle skills would be useful. Why? TA’s often work independently and have to schedule their own work. They also talk to programmers and producers - not just artists - and should understand their concerns. Understanding the basic SDLC of waterfall and Agile would be useful to know, and common project phases and issues, like risk management and QA management. In the last 7 years QA played a big part in my work, by establishing procedures, tools and workflow which promote technical quality throughout the pipeline. Quality is a big issue for pretty much every studio, and quality must happen within your production pipeline, not just at the end. The person responsible right during asset creation is the TA!
I would also introduce some class that deals with people issues. A lot of TA work is talking to people, making people talk to each other, facilitating communication and building bridges. In project manager speak this is called “stakeholder management”. Not everyone is a people person, but there are tools and strategies you can use to ensure that communication happens.