Category Archives: Outsourcing Management

Learning In Progress #6: Contractor Kits

I’ve been doing a lot of thinking and a fair amount of work lately building perfect modular kits for my contractors so they can get started quicker and have to ask fewer questions.

The idea is that I’d like to have one single ZIP file that contains everything a new contractor needs to get started on his asset type.

So that leads to the question — what does a contractor need to be able to do his job? That’s a big list, so let’s give an example. If I were to hire a new animator, this is the type of data I would put in a contractor kit for him:

  • Technical specifications. For each asset type in my game, there is a guidelines document with detailed technical specifications. For animators, I made another post called On Contracting Animators that has a good list.
  • List of animations. There’s a complete list of animations for characters, creatures and other animatable objects that I store in another, separate document. I break down each type of asset into characters, creatures, animated objects, and miscellaneous. From there, I break each down into structured lists divided by their role in the game. For example, creatures are either Melee (hand-to-hand combat), Ranged (attack with guns or bows), and Caster (magic user). Each role has a unique animation set, so I list all the animations in each set. This is especially useful for when I want to create a new creature, before I even outsource it I can say “Okay, Fat Ogre 3 is going to use the Melee and Ranged Animation Sets.” I don’t have to decide which animations it has one by one every time I want a new creature, because I already figured it out beforehand. Then when I send the list of animations to the animator, I can simply copy and paste those pre-made animation lists. Time savings ahoy!
  • The exporter. I include a copy of our proprietary 3DSMAX exporter plugin, along with simple installation and usage instructions.
  • The tool. I include a copy of our proprietary Model Editor, along with simple usage instructions so the animator can create usable assets for our engine. Why should I have to?
  • Animation samples. I have directories set aside that offer example animations of every sequence for each type of creature and animatable object. There’s a directory for the Melee Animation Set that has sample animations for every sequence in that set, and so on for everything else that needs an example. I *never* leave gaps in reference for things like this.
  • Style guides. I include the style guides relevant to the race of creature he’ll be animating, so he can see the other members of that race, their size in relation to each other, and get a sense of their attitude.
  • Scale guide. I have a MAX file demonstrating the scale of the object in the world so the animator can get a better sense of scale and how to animate what it is I’m giving him.
  • FAQ. I’ve assembled a brief FAQ full of common questions I’ve been asked by my contractors. One very important note I’d like to make about the FAQ: It was a huge breakthrough to me to realize that every time I talk to one of my contractors to explain something or answer a question, I’m generating documentation. Everything I say is usable. So I just remember to write it down in one document, organize it, give it a coat of spit-shine, and my project is better-documented. 🙂 Documentation doesn’t have to be a big ugly mess that I have to sit down for hours and do… it can be incremental. (why answer the same question more than once?)

I have all these files set aside in a special ‘contractor kits’ directory under another subdirectory specific to them. For example in C:workcontractor_kits you would find Character_Art_Production_Kit, Animation_Production_Kit, Environment_Art_Production_Kit, etc. Zipped copies exist in each of these directories so any time I have a new hire, I simply copy and paste the ZIP and that’s everything they’ll need to know, in detail.

This is an awful lot of preparation and organizational work, but considering my circumstances (straddling art directorart managerproducerartist roles simultaneously) it saves me a LOT of time. Or, it will, once I finish putting all of them together. 🙂

To the contract smArtists out there — what kind of information and resources do you wish YOU had from your clients?

Learning In Progress #5: Instant overview of contractor and budget information!

Here’s a fun one: How do you keep track of a team of external artists?

First, define what needs to be tracked:

  1. Who’s working for me?
  2. What do they do?
  3. Are they active?
  4. How much are they being paid?
  5. What contracts are they working on?
  6. What date was that contract started?
  7. Has the contract been signed?
  8. Have they finished the work?
  9. Have they invoiced for the work?
  10. Have they been paid for the work?
  11. How much money am I spending?

This is a dizzying amount of information to keep track of, on top of simply managing everything they do at a low level. So what do I do? Click the jump to read more! Continue reading Learning In Progress #5: Instant overview of contractor and budget information!

Outsourcing a lot of tiny stuff made easier

I have a handy tip for building a contract made up of lots of very small quick-to-make items with a fast turnaround, like icons. I only do this with long-term contractors that I’ve built a trusting relationship with.

Let’s say you want to outsource small icon art. Say $50 per icon for 75 icons. That makes $3750. It’s perfectly logical to break it down into the exact number of icons you need and pay them for each one, right? Of course. It makes even more sense to build this directly into the terms of the contract itself, doesn’t it? Naturally!

But what happens if, in the middle of the contract, you decide you only need 71 icons? Or 77? You have to quickly cobble something together for them to do, amend the contract, or add something onto the next contract, or create a new contract just for the overage. You can waste a huge amount of time trying to fix it in any one of these ways.

But I have a simple way around it — roll it into one bulk price. It’s a very simple three-step process:

  1. Itemize it. Figure out exactly to the number how many assets you need: 75 icons.
  2. Price it. Negotiate a fair rate for each asset: $50 per icon.
  3. Bulk it. Multiply the number by the price, come up with a total, and make that price one flat, flexible unit: $3,750 for approximately 75 icons.

You MUST specify carefully how much above or below that number ‘approximately’ is so no one takes advantage of the other. In this case, I think a cap of plus two or minus four icons is acceptable. Be ethical. This is supposed to save time renegotiating and amending contracts for you and your contractor, and is NOT to give you a tool to get more for your money. First and foremost, be a decent human and respect your people so they’ll want to keep working for you.

This has been a useful tool for me to save time with my contractors when I’m outsourcing really simple, small stuff whose numbers change constantly. Whenever I can, I make sure to keep the absorption even on both sides. “Whoops, I only need 72 instead of 75. That cool?” and “Crap, I need 76 instead of 75. That cool?” And never let it get too one-sided. You’re people, you’ve been working together for a while and you trust each other. “Hey dude, yeah, sure, I’ll get this one. It’s cool.”

If you abuse this to take advantage of a contractor, you are an asshole. This will bite you in the ass, and please stop reading my site. 🙂

4 Tips on Making More Money as a Contractor

Want to know how to make more money as a contractor? Here are some tips.

  1. Be fast. Show me you can produce good work quickly. Don’t drag your heels and always make sure to underpromise and overdeliver. If you think it’ll take a day, tell me two and get it to me sooner than that. I’ll think, “Wow, this guy is fast!” It’s vitally important to manage the perception of you and your work speed. Other ways you can do this is by immediately addressing concerns, changes and assignments and finishing them as quickly as you can. Who doesn’t like speedy service?

  2. Show me what I’m getting for my money. Make everything look as polished as possible whenever you can, even if it’s an early WIP. If it’s concept art, a cool and stylish background will do wonders for presentation. Even if it’s ugly, make it look like it’s not. Find a way to add style and flair to everything you send me. Small coats of polish lend a feel of professionalism and value. Don’t expect to be paid more just because you want to be paid more. Show me where my money’s going. Make me feel like I’m getting a bargain for what you have to offer and the cool-as-hell way you offer it. Who doesn’t like being dazzled?

  3. Remember that I am a CUSTOMER and you are a BUSINESS. Deal with me accordingly and focus on the kind of customer service YOU like to get out of a business. Act professionally, be responsive, meet or exceed my expectations and make me feel valued. Just because I work for a company bigger than yours (you) doesn’t mean I don’t appreciate or deserve that kind of treatment. Treat me right and I’ll reward you for it. I do give raises. Who wouldn’t reward a company that treats them well with more business?

  4. Do something special, just for me. Nothing I can use, necessarily, just bait. If you think I’m interested, or you want me to be interested, make a test asset in the style of my game. This will show that not only can you do the work, but that you WANT to. You’re so motivated to work for me that you’re ALREADY making stuff that I’d like! Never, ever spend too much time on this, and don’t give it away for free. When done correctly and intelligently, this is a VERY strong message to send to a potential employer. It’s worked on me before. 🙂 Who wouldn’t be flattered?

7 tips for dealing with contractors

Here are a few valuable things I’ve learned about dealing with contractors.

  1. If it takes more than ten words to describe it, take a picture. This applies most to me when I have lists of changes for my contractors to make. I find that if it takes more than ten words to point out the particular area to work on, or describe what exactly to do with it, it’s ALWAYS, ALWAYS, ALWAYS easier to simply take a screenshot of it and paint over it. In this manner, I can boil thirty big words down to one big red arrow. 🙂 It saves time on your end, it’s easier to understand on their end, and everybody wins.

  2. Issue shorter contracts. This varies wildly from company to company, but in my experience in working with individual contractors, shorter contracts equals being paid more frequently. I always renew contracts unless I state as far in advance as possible that my needs are ending. I find it tends to motivate the contractors more if they have smaller, more easily digestible chunks of work that come in at a steady clip rather than big fat contracts that take forever to finish. They ALWAYS slow down on big contracts, so I give them short ones so the end is always within reach. It’s never failed me. 🙂

  3. If you doubt their ability, find someone else. Several times I’ve fallen into a trap where I’m not entirely sure someone can do the job I need to do, but I hire them to do it anyway. I’ve always regretted it. I’m a firm believer in giving someone ONE solid, firm, impossible to misunderstand chance to turn themselves around. If they can’t keep it together then, tell them why and cut them loose. If they were up to the task, they would have done it right the first time. If it took the threat of dismissal to make them perform, what good are they? You can’t rely on always holding them out over a fire to motivate them. Use the time you’d have spent ‘motivating’ them on finding people that function properly.

  4. Write everything down. There are many reasons for this, the simplest being you forgetting something you said that you needed to remember, and the more serious of which being contractual disputes. I ran into a nasty one of the latter recently where one of my artists was claiming I asked him to do work that I didn’t put in the contract, and naturally he wanted to be paid for it. Fortunately, I managed to set the record straight by finding an email I’d sent him asking him to do the work and telling him I’d pay him more for it, and the followup email of him agreeing to the higher pay.

  5. Never badmouth a contractor. I’ve never done this and I never intend to. No matter how bad someone may be or act, these are still real people with real lives, just like you. It never pays to burn bridges, even ones that there seems to be no risk in burning. If you run off at the mouth about someone you don’t like and affect their job, that could affect their own ability to put food in their kids’ mouths. Yes, that’s their responsibility and not yours, but why spread bad blood? It’s a bad strategy because it closes off options, no matter which way you cut it. Do unto others…

  6. Be careful about promises. I’m a man of my word and I take what I say very seriously, and I want to be a good and reliable boss to my contractors. That being said, I have to be very careful about the things I promise them because development realities are constantly changing, and that’s out of my control. Our budget could be cut tomorrow, we could change an entire feature set, the project could be canned, or we could simply reallocate our other resources to handle needs as they come up. I call it Expectation Management. If you set clear, realistic, conservative expectations, and be damned careful about the promises you make, you’ll be perceived as a better boss than if you promised them the stars and could only give them the moon.

  7. Always appreciate. Even if someone’s doing a bad job, find that cloud’s silver lining. Be positive and supportive. You won’t gain anything by tearing your people down. If you can find the good in what they do, and talk positively about ways to improve it (but being firm about your expectations) and you’ll get better results than if you rob them of their will to try.

Learning these things has helped me be a more effective manager and improved my ability to deal with people. 🙂

Anyone else have any tips? What about from a contractor’s standpoint?

On contracting animators

I just made a forum post responding to someone that was asking about basic rates for animation. I mentioned that more details needed to be provided, and I listed a few that may be helpful for if you’re considering outsourcing animation.

  • How will you be paying? (Paid per day, per hour, or per sequence?)
  • If per sequence, are revisions included in the flat rate or are they priced differently? Is there a maximum number of iterations?
  • What’s the animation framerate? (30?)
  • What’s the style of animation? (realistic, cartoony, cartoony realism?)
  • What type of sequences are there? (Run, walk, jump, attack, pain)
  • What’s the average length of each sequence? (2 secs, 5 secs, 10 secs)
  • Is the animator creating the skeleton himself?
  • Is rigging involved?
  • How much initial direction is there? (i.e., everything is predefined animation length, ideas set in stone and clearly communicated, OR leave it up to the animator to figure out)
  • Who’s on implementation? (Are you going to handle all the game’s implementation inhouse or will he? Depending on how important accurate and perfect animation is to the game, it may be easier to set up your animator or animators with a copy of the game and the ability to export to the game and test)
  • Remote or on-site?

  • How fast do you want it?

Thanks to Scott for the last two!

Might I have left anything else out? (discounting the obvious like which animation package, or the highly variable like if it’s a biped or a quadruped, etc)

I hope this’ll be helpful to people. If so, let me know!

Learning In Progress #4: Making time… with a vengeance!

One of the biggest production bottlenecks on my project is my ability to implement art into the game. I’m essentially serving as art director (jointly with our lead designer), art manager, lead artist, and I have other producery and technical artisty responsibilities as well. There isn’t enough time in the day to do everything I need to do, and when you have a team of artists that need constant feedback on their work, it’s exceedingly difficult to make time for some things.

In this case, the production aspect that gets crunched is the implementation phase, which is difficult, complex and time-consuming. Since I can’t very well commission art that I never put in the game, I needed to start making time to put the art in the game. I’ve tried that before but I constantly get distracted by minor emergencies and end up never getting anything done.

I always wished I could have a day away from everyone to just sit down and crank away on art and get it in the game without any outside distractions. But unfortunately, I’m in a position of great responsibility and I really can’t afford to take that kind of time away from other things. I mean, lots of people depend on me, and art, as a whole, does NOT happen unless I’m doing it. I’m always just so crushed for time that I can’t divert myself even for a moment.

Or can I?

I thought about it and realized that, no matter how much time I set aside to work, be it 9 hours a day or 18 hours, I always get about the same amount of work done. Every time. I found that interesting: No matter how much time I have, I always use it all getting something done.

Naturally, at the extreme ends of the scale (2 hours a day vs 22 hours a day) I’d see significant differences in my output, but it got me to thinking that four days a week (plus the time I spend working from home) can neatly accomodate all my other responsibilities without the world ending.

So, emboldened by this realization, I decided I’m taking Wednesdays off from everyone. I call them “Fuck Everybody Wednesdays.” I shut off my IM, I shut off my email, I don’t answer my phone and I do NOTHING but start putting art in the game. I tell all my artists and coworkers in advance that, from now on, I’m having nothing to do with them on Wednesdays, and any issues can wait until Thursday, no matter what they are.

So far it’s been working out extremely well. 🙂 I’m steadily cranking out new art in the game, and the freedom from distraction has enabled me to come up with a lot of new ideas for making the process easier, and even automating it in some cases. What a difference that self-discipline and focus can make!

Never say you don’t have enough time, because you’re probably wrong. Just make time. Everything will sort itself out. 🙂

Learning In Progress #3: Numbered Bullet Points.

I’ve noticed in the past that when I send back a list of requested changes to my contractors, if there’s more than one change, sometimes they’ll forget one or two. It’s a simple mistake, because I’m often trying to transmit a lot of information, and some of it can just slip their mind.

I quickly stopped writing entire paragraphs containing several changes, and boiled them down to individual bullet points. But still, sometimes a bullet point would be forgotten, and the problem still wasn’t entirely solved. So to combat the changes falling through the cracks, I’ve discovered a useful tip that seems to work best: Numbered Bullet Points.

Bullet points themselves are a useful way of dividing large ideas into several smaller ones that are easier to communicate and understand. But bullet points alone aren’t enough. By using numbered bullet points, you assign a VALUE to each bullet point, and it reads more like a step-by-step list with concepts that can be quickly referred to by their number value.

“I see you completed changes 1 and 3, but not 2?”

More than half of my job is learning how to organize and distill information into small, easily understandable, meaningful bites that create their own context. Numbered bullet points are one of the many tools in my arsenal. You’ll notice I often even use them in my writing… 🙂

Learning In Progress #2: The Character Tree

The project I’m on is a small-scale MMORPG. As is typical in this type of game, your character is always on the hunt for newer, better pieces of armor. That requires a significant investment in creating new art assets for these armor pieces. There has to be a lot of them, they have to be varied, and they have to look cool. They also have to visually represent different levels of quality. i.e., common armor, special magic armor, and super rare awesome hard-to-find mythic armor.

The problem is — how do you keep track of that many assets? How can I show them off and make sure the visual progression makes sense and that each fits the game’s art style and color palette?

I struggled with that for awhile and one of NCsoft’s head art people worldwide showed me the character tree. It’s a giant table full of characters, each character occupying a single cell of the table. Here’s a mockup very similar to what I use:

Horizontally, the tree is divided into sections by the player’s class: Mage Armor, Ranger Armor, and Fighter Armor. Underneath that are class-specific armor types. i.e., Light Cloth and Heavy Cloth for the Mage, Light Leather and Heavy Leather for the Ranger, etc.

Vertically, it’s divided by the quality level of the armor: Normal Armor, Unique Armor and Mythic Armor. The lower you go on the list, the higher the quality the armor is.

It’s further divided up into yellow and blue cells. The yellow cells indicate an armor set that’s complete. The blue cell indicates an armor set that’s still in production and not yet complete.

When I put the characters on the tree, I place them visually where I think they belong in terms of armor quality. If one piece of armor looks dramatically better than another, then I’ll move it further down the table and leave gaps in between them. Seeing those gaps shows me visually where the progression of low quality armor to high quality of armor breaks down. That way I can know where to start concepting a new armor set to fit in and maintain that logical progression.

I have a five foot by five foot printout of this character tree on my wall. I refer to it constantly, put Post-Its all over it to give me notes, and I have a special template that I can paste new armor sets onto, print out, and cut out to paste individually into cells instead of replacing entire sheets simply because I updated one asset. 🙂

The biggest benefit of this character tree is to be able to see at a glance how many armor pieces are in the game, how many are completed, and how many are still in production. I can see how the different pieces of armor relate to each other visually, I can see what the name of that asset is, and I can rearrange it easily.

Seeing the entire series of character armor sets in the game was tremendously valuable and has helped me plan art production more effectively and keep track of things like never before. Having it ALWAYS on my wall instead of in pure digital form has been vital. It’s also helped me realize some mistakes I made in other areas.

One of the initial mistakes I made on the project was choosing exactly which armor set was what quality at the outset of production, and naming it that way. i.e.:

Human Male – Mythic Leather Armor 2

All the filenames would reflect that:

Human Male – Mythic Leather Armor 2 Helm
Human Male – Mythic Leather Armor 2 Boots
Human Male – Mythic Leather Armor 2 Body
Human Male – Mythic Leather Armor 2 Shoulders
Human Male – Mythic Leather Armor 2 Gloves

But if I place that asset on the tree, and it looks more Unique than Mythic, and I decide to move it, I have to rename it. You can’t call a Unique piece of armor Mythic! It gets confusing, and creates two names where there was previously only one. In the game it may be Human Male – Unique Leather Armor 4, but all the data still points to files that refer to Human Male – Mythic Leather Armor 2. That requires renaming the MAX file, renaming all the textures, renaming all the materials, re-exporting the model, then going through all the multiple data files and renaming everything and testing to see if it all still works. It’s HUGE pain in the ass.

I didn’t realize it was a problem until I started moving characters around on the tree and they took on drastically different roles than they were originally intended, even though they were called something else using the same terminology. So, in the interest of flexibility, I started naming the armor sets generic names like Cloth 1, Leather 2, Plate 3, etc. That way, the designation of quality (Normal, Unique, Mythic) is totally stripped from it and it can be shifted around easily. The filenames are also shorter, take less time to type in and are less confusing overall.

I never would have realized that if I didn’t have a way of visualizing all our characters and quickly rearranging them! Once you put them all together, the difference is incredible.

Other things I have added or will soon add to the character tree is a text readout of how many characters there are, how many are finished, and how many are still in production, how many color variations exist, and so on. I’ll also have small color-coded tabs on each piece to show what color variations exist for that piece of armor. There’s no reason to waste 10 cells on a single character in red, blue, green, purple, etc, when I can show the normal version and have small color swatches tell me exactly that while taking up less space. 🙂

I also have a version of the character tree for creatures, which organizes them by race (Orok, Mutant, Fade, Whisker, etc) and role (Melee, Ranged, Caster and Boss). It makes coming up with new monsters incredibly easy when you see one race missing a mage, or a giant bruiser!

I’m also going to develop the same type of visual progression for all our weapons. These constructs have been immensely valuable to me in doing my job better, and I’m still refining them.

Does anyone else work with data like this? If so, what other types of meaningful information might I include on these trees to help me direct better?

Learning In Progress #1: Sorting asset submissions

Here’s a peek into what I do day to day and the things I’m learning, from broad concepts to specific ideas. I don’t know how informative it’ll be, but I’d like to document it anyway.

I currently lead a team of 11 remote contractors, down from a peak of 14. Sorting out the data they send me is starting to get pretty tricky. The way I’ve BEEN doing it is by organizing them with a directory structure like this:

Bob Contractor
– submission01 (unique male leather armor 1)
– changes (helm modification)
– submission02 (unique male leather armor 1 fixes)
– submission03 (unique female leather armor 1)

The ‘changes’ directory is where I modify the file myself, save it, and send it to the contractor. I put it in a separate directory so I can better sort through the files I save myself, and the files the contractor sends me.

The main problem with the way I’ve set it up is that I get SO many separate directories under each contractor. I’m up to ‘submission30’ for one of my artists, and the sheer amount of files is overwhelming. Files can get mixed up sometimes and it’s hard to tell what the latest version of something is.

An idea I’m toying with right now is custom naming every file with a date prefix and dumping it all into one large directory. So it’ll look more like this:

Bob Contractor
(01-19-2007) File 1.max
(01-19-2007) File 1.tga
(01-19-2007 JJ) File 1 changes.max
(01-20-2007) File 1 fixes.max

It’ll all be in one directory, sorted alphabetically AND by date because of the filenames I gave them. Files I’ve sent back for changes have the ‘JJ’ flag, because those are the initials of my name. When I approve an asset, I already have to resave and rename the files and move them to the project directory, so giving them different filenames here prevents me from accidentally assigning textures to the model outside of the project directory (which gets ugly in the game). It fits in pretty well with my existing workflow, while also giving me a quick at-a-glance view of every contractor’s assets and the last time I received a submitted asset from them.

All I have to do to maintain it is, when I receive an asset submission, add the date onto the filename as I save the file to my hard drive (which I already do anyway, so it’s not an extra step).

I don’t know if this is the best way to do things, but it’s the best idea I have right now and I’m moving forward with it until I get a better idea. 🙂 Any thoughts or suggestions would be welcome.

[UPDATE] I talked to some more people about it and the most stupidly obvious answer eluded me — set up an FTP account, give my artists some basic file naming convention directions, and let THEM do it. No more sorting through old assets, no needing to rename everything… just let THEM take care of it. Problem solved! Can’t believe I didn’t think of it sooner, but I’m glad I asked around. 🙂 [/UPDATE]