I was considering building a character creator/customizer program that would enable a player to create their own 3d model based off of a series of preset body parts. i.e. A player could choose to add the legs of a horse, the body of a man, wings of a falcon and the head of a snake. From there the player can then customize each body part by tweaking sliders responsible for length, thickness, color, position, etc.

Ultimately this will give players the ability to customize their characters with infinite degrees of freedom (not like preset customizations we see in some MMORPGs i.e. 8 hair cuts, 10 faces, 8 body types, etc.). So as you can imagine this would most likely lead to ever player having a different character.

Would having thousands upon thousands of separate 3d character models some how slow the game down?

I consider that it would not because the most characters that would be rendered in the game I am working on would be 25 to 50 if that.

  • \$\begingroup\$ It would be very easy to create a test and actually measure, what you consider means nothing until your multi-part malleable models meet the hardware 1..10..50..100..1000 times when profiling. \$\endgroup\$ Feb 8, 2012 at 18:41

3 Answers 3


City of Heroes and Champions Online already do the things you are talking about.

Yes, it adversely affects performance in many areas - notably rendering and animation - as well as the art team (financial) budget. If you're trying to do this, you should make sure you have good performance budgeting tools throughout the entire art process, and good test cases.

  • \$\begingroup\$ when you say 'good performance budgeting tools' do you mean tools that keep the game running smoothly? If so, what are some good tools out there for this? \$\endgroup\$
    – classer
    Jun 7, 2011 at 20:51
  • \$\begingroup\$ Also, how often does a player typically experience these performance issues? \$\endgroup\$
    – classer
    Jun 7, 2011 at 21:30
  • 3
    \$\begingroup\$ He means tools that track how much memory you're using for your models and time how long its taking to process the animation updates and such. Every model you render is going to take a little bit more time and memory, and you need to ensure that you can keep the game running at a reasonable framerate. \$\endgroup\$
    – Alex Ames
    Jun 8, 2011 at 21:45

You don't need to generate unique models in each case. Instead you can render a character as several models, one for each of the interchangeable parts you mention, with the tweakable aspects being applied to animation bones, or to shaders, etc.

However, to answer your question more generally, it is almost always quicker to render the same model twice than to render 2 separate models. Obviously this is mitigated if you are only rendering a subset of those in a given time frame because the other ones effectively do not exist at that stage. But rendering 25 different models will almost always be slower than rendering 3 or 4 each duplicated 6 or 7 times over.

But speed is relative - when does 'slower' become 'too slow'? If your characters are quite simple (ie. low number of polygons and small textures), then 50 on-screen at once is not a big deal. On the other hand, if they are complex, then even just 25 at once may be too much on some cards. It would be a shame to cancel a good feature because of performance concerns, so you need to know which end of the scale you would be at.

Luckily this is something you can test quite easily, by generating sample geometry of the sort of complexity you expect to use (which can be any simple object tessellated appropriately), and performing some test rendering to observe the real-world performance.

Interestingly, although you mention rendering as a bottleneck, potentially a worse problem is the networking aspect. Most MMOs store the majority of renderable assets on the client side and deploy them as part of the original install or the patching procedure. In your case, this would be impractical due to the number of permutations, so you'd have to stream them down during play. But this in turn means you can't easily render a character until all this data is on the client, which may be a problem when entering a busy area quickly (eg. teleporting or spawning in town). Again, this problem is reduced a bit if you just send a list of pre-existing model-parts that a character uses character instead of having to send a full model for each one.

  • \$\begingroup\$ I may be wrong but if you played sims 3 can you tell me how many objects are in scene at once? (if not just search for sims3 park in google images) \$\endgroup\$
    – Ali1S232
    Jun 7, 2011 at 4:14
  • \$\begingroup\$ I don't know if you're wrong or not, as you've not made an assertion. What I can say is that having a lot of different characters on-screen doesn't mean each one has its own model. \$\endgroup\$
    – Kylotan
    Jun 7, 2011 at 10:42
  • \$\begingroup\$ Gajet I am not seeing that many unique character models being rendered on screen at once. Or did you mean objects in general (including architecture, geography, etc.) ? \$\endgroup\$
    – classer
    Jun 7, 2011 at 13:10
  • \$\begingroup\$ @classer: I mean all the objects in the scene, it doesn't matter for gpu whether you are rendering a man or a bench! they both are some vertexes connected to each other with some edges! I mean if a game can handle 100+ objects in a scene it doesn't matter if these objects are human shape or architectural landmark. and if sims somehow manage to create some very crowded scenes I think you can also manage putting many characters in one scene with diffrent models. and just remember there will be many characters in an mmorpg game but how many are rendered in at a same time? \$\endgroup\$
    – Ali1S232
    Jun 7, 2011 at 18:54
  • \$\begingroup\$ even in WOW there you don't see 50+ charcters at a same time in one scene. \$\endgroup\$
    – Ali1S232
    Jun 7, 2011 at 18:55

I don't think so. Oblivion and Sims 3 both featured more models than you can even imagine.

  • \$\begingroup\$ Oblivion is a good keyword, since it featured exactly ONE character model for all humanoid males and ONE for all females (+ some additional models for hair/head/tail/ears). Most of the diversity came from scaling, vertex shaders, and texturing. The modding community added another layer to that by extending the skeleton to include "scaling bones" inbetween real ones, which allowed to control scaling per bone (giving some characters thicker arms, others longer legs, stuff like this). \$\endgroup\$ Jun 7, 2011 at 8:03
  • \$\begingroup\$ @martin : when you describe it that way it makes sense. but what about sims3. just look how many object types are there in a single scene at park? \$\endgroup\$
    – Ali1S232
    Jun 7, 2011 at 8:05

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .