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?

Leave a Reply