Everybody knows 3D graphics are awesome, and pretty much every game-playing device has 3D acceleration hardware built in. So why not 3D? It's just one extra D!

From my point of view as an indie making a Flash MMO, there are a lot of drawbacks to 3D. Most have to do with costs: time, money, space, and the big one, opportunity.

First of all, it's difficult, time-consuming and expensive to create 3D models. People spend years learning how to do it. In addition, 3D modeling packages can cost a lot themselves.

Second, textures. They have to be conceptualized and painted, and the UVs have to get mapped correctly, and the texture fragments need to get packed efficiently into rectangular bitmaps. This takes more time, money and human effort.

Next, the models have to move in 3D. This means rigging bones inside the models and painting bone weights on the vertices, then moving the bones around to create an animation. Every limb, facial muscle, u-joint and wheel needs attention from a human animator.

Fourth, 3D stuff is big. All these vertices, textures, UV-coordinates, normal maps, materials, and animations take up a lot of space, which is a big problem for any game that streams content.

Furthermore, the whole game has to become 3D -- not just the models. So many things get harder: collision detection, camera control, user interface. And then there are 3D hardware techniques to consider: hidden surface removal, z buffers, vertex winding, normal mapping, radiosity, subsurface scattering, dynamic level-of-detail optimization, pixel shaders, and so on.

Sixth, realism. When you can render things in realistic 3D, the temptation is to make the game itself more realistic, essentially culling huge swaths of fun but unrealistic gameplay opportunities. Realism is overrated; if reality were so great, we wouldn't be playing computer games at all.

Finally, 2D can be just as awesome. 3D is not necessarily more fun or better looking than 2D. But it is always more complicated and expensive.