The Programmer Portfolio Question

At my GDC talk, Getting Noticed: Why You Need an Online Portfolio and How to Make One, I received a number of questions from programming students as to how best to display their work if they didn’t have a good artist to work with.  So, I sent out the following question to the programmers at Naughty Dog:

“I’m a programmer.  I want to represent my work on my portfolio site, but the artist I’m collaborating with SUCKS.  How can I show my programming work off to good effect without having good art to hang it on?”

…and received the following responses.  It was a heated conversation with various opinions:

  • I don’t think it matters.  The demos I made to get into the industry were all art done by me, and no artist sucks as bad as I do.  Just make sure that it’s clear what the tech is doing and don’t worry about the art.
  • Work with a better artist!  Of course you could try to go very low-fidelity (sphere man in box world) and try to make it obvious.  But that doesn’t always work.  Clearly craptastic art doesn’t work AT ALL if you’re a shader engineer, and it doesn’t work for animation, player mechanics, etc. either.  But it might work very effectively for a physics demo.  Depends on what tech you’re showcasing.  IMO it’s always better to find some decent art to really make your engineering work shine.
  • I was blown away by how many student game programmers at needed good artists to work with.  I asked them if they had ever contacted the art department and they looked confused… obviously having not thought of this.  I bet there are just as many good artist students as there are programming students that need to showcase their work.  They need to collaborate and get it done!
  • IMO it depends on the type of programming.  For graphics programmers, I’d almost recommend that they do some kind of tech demo and take artists out of the equation.  Just do something, anything cool.
  • The other problem with working with artists on games is that you will want to use a game engine that has most of the boring stuff done for you.  But if I’m hiring a programmer, I want to know that they know the boring stuff.  I would much rather see someone create a demo from scratch than just import some assets into unreal.  If it’s physics, putting together a physics solver or creating a standalone demo from havoc is much better than showing a full, unpolished game in unreal where I don’t know what the engine did for you.
  • If you don’t have good artists use procedural assets like cones, spheres, toruses and what not to visualize what you do. Much AI can be visualized this way as well as the obvious graphics techniques. If the person doesn’t even know how to create a texture himself that might be a good first step. Finally…. Internet is FULL of free meshes, textures and more… no excuses…
  • Remember, we’re all programmers – and most of can’t judge art anyways, so we don’t tend to look at it. We’re more interested in technical things, such as:
    • So, as you can see – there’s not that much emphasis on fancy graphics. Bedazzle us with knowledge, tech and drive, with examples substantiate it. Make it impossible for us to say no!
    • Yes, but my point is that often times great tech can be masked by crap art.  In some cases, for some kinds of tech, yes… programmer art or procedural art or whatever will work just fine.  But imagine Travis or Christian trying to show off the Uncharted 2 animation system using art (meshes, animations) obtained from the Internet… or “procedurally” generated (whatever that means for animations!)  Yeah.  How does someone know that their animation code is awesome if they haven’t tested it with real animations? ;-)
    • Do they understand low-level things? I.e., do they know how computers work?
    • Do they understand the basics? Math? Physics? Computer Graphics?
    • Do they have necessary programming skills? Data Structures? Large-scale development?
    • Do they have game-play related skills? Character control? Programming the Game Camera?
    • Do they know how to apply knowledge? Problem solving skills? Optimizations?
    • Do they know how to work in a team? Communicate with non-technical people?
    • Do they have the drive? Cool things they’ve worked on the side? Special interests?

So, hopefully that helps.  It sounds like the answer varies based on your specialization.  For instance, a shader programmer has to have good art to work with, but it’s not a big priority for physics programmers.  Either way, you still need to present everything you do clearly, with videos, screenshots, and explanations.  Ideally, diagrams and explanations that make it clear to the layman as well as giving additional detail to programmers.

Also, I’d highly recommend that you check out John Hable’s talk about HDR Lighting and Travis’s McIntosh’s talk about Animation systems.  Both of these talks are very clear to the layman, yet represent extremely complex coding work.  Videos of them should be going up on sometime in the near future (along with our PAX panel about Naughty Dog’s level design process) and you can get the slides for free off of the GDC Vault.


%d bloggers like this: