Take the 2-minute tour ×
Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

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.

share|improve this question
    
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. –  Patrick Hughes Feb 8 '12 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.

share|improve this answer
    
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? –  classer Jun 7 '11 at 20:51
    
Also, how often does a player typically experience these performance issues? –  classer Jun 7 '11 at 21:30
3  
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. –  Alex Ames Jun 8 '11 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.

share|improve this answer
    
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) –  Ali.S Jun 7 '11 at 4:14
    
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. –  Kylotan Jun 7 '11 at 10:42
    
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.) ? –  classer Jun 7 '11 at 13:10
    
@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? –  Ali.S Jun 7 '11 at 18:54
    
even in WOW there you don't see 50+ charcters at a same time in one scene. –  Ali.S Jun 7 '11 at 18:55

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

share|improve this answer
    
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). –  Martin Sojka Jun 7 '11 at 8:03
    
@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? –  Ali.S Jun 7 '11 at 8:05

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.