Vertex Count
I have researched "Polygon Count" for over 15 years. There is no strict way to tell how many is your limit, especially with more modern software and hardware. Limits were much more useful in engines that only supported 4,000 triangles for an entire level. Now, you will find most objects in the game environment will exceed that individually.
What ultimately matters is what the engine is doing with the polygon strips.
When the engine renders each model, it takes your UV mapped coordinates, the texture/material represented on the triangles, and creates triangle strips. In most cases, a triangle fan is broken up into separate triangle strips per triangle. This increases the number of triangle strips, decreasing performance.
A prime example of fixing this is the flat top of a cylinder. 3D packages generally set up a triangle fan with a vertex in the centre. I delete the edges and the centre vertex, then create quads across the face. This should then triangulate into a single triangle strip instead of multiple single-face strips, without changing polygon count.
Take the polygon count as a guide, and take care of how you model, and UV Map the mesh. Less splits in the mesh when UV Mapping can often be more beneficial.
Next, consider what can be faked with normal maps. A flat face with a lot of detail case usually be normal mapped. Curves only need to be round where you can see a silhouette. When looking at the curved faces front-on, you should not notice the difference between your high-resolution assett, and the game-resolution assett. The silhouette is what makes the difference in your model when normal maps are involved. Silhouette can now be modified with DirectX 11, using tessellation and displacement mapping.
Game Design
Consider the following when designing your game:
- Define game type (eg. action/adventure/racing/scroller)
- Define view type (eg. first person/third person/orthographic)
- Define computational power for your market. (eg. enthusiast/casual gamer)
- Create a visual style you wish to achieve. Do you want it to look like, for example, Crysis 2, Borderlands, Bloodforge or Gears of War?
- Define important objects to the player. Are your props going to be a centre of focus or merely backdrop?
- Are the visual meshes also the collision mesh?
Using the game and view types, decide what the depth of view will be. Are you going to see distant objects, and with what clarity? Are you making something with limited view, such as a corridor shooter? (eg. Gears of War) Are you making something free-roaming with open landscapes? (eg. Skyrim)
Once you know what it should look like, you can research the games which are similar.
Animation will then limit your ability to increase polygon count. Static meshes, anything that remains in the same position is cheapest on the GPU and CPU. Especially if they are not physics objects. For physics objects, you can often create simple collision hulls, and complex visual meshes. There is not enough interaction in most games to notice the difference. Animation moves your model 3-Dimensionally, with several bones per vertex, blending between the weighting from each of them. This can be expensive on CPU time, which can clash with AI and software-based physics. The more vertices being affected by the number of bones in the entire model will decrease CPU performance. This is the other reason game characters are considered "art". It is very difficult to define a polygon limit.
My Example
I use the UDK, making a slow-paced third person shooter, with limited numbers of players and NPC's on screen at any time. For this, I am aiming for approximately 10,000 triangles per player, 5,000 triangles for typical, generic enemies, and if I were making a "boss" style character, around 15,000. Additionally, weapons for the third person around 4,000 triangles will come up highly detailed. Vehicles around 10,000 triangles. Everything will require Level of Detail, because I require long view distances.
If making a first person, I would base the arms on around 2,000 triangles, weapon around 5,000 triangles, with normal mapping for each.
Conclusion
This is what "It depends" probably means, but I thought it might clarify some things that people often wonder about.
- Use polygon count as a guide.
- Look at areas which could be normal mapped instead of modelled.
- Be careful when placing triangle fans, if possible, create a strip.
- Use less splits on the mesh when UV mapping, keeping strips in mind.