Thanks for the reply! This actually is my day job (not XNA, but 3D graphics), so I'll try to offer what insight I can, hopefully it's helpful! Please bear in mind my XNA is a few years old.
Prerendered is easier for several reasons. First of all, all of the models are in different formats, but the modeling software understands them all. If I were to go true 3D, they would all have to be converted to .X model format to be acceptable in the content pipeline. That can translate (pun unintended) into a ton of work.
This is true by default, but extending the content pipeline is not only easy, I think it's quite valuable in creating an XNA game. Things get tougher if you want skeletal animation, but if you want static backgrounds (with perhaps some home rolled lightweight animations consisting of model-wide key framed animations) OBJ files are the way to go. Their format is stupid easy, I'm sure tons of
OBJ model importers exist for XNA.
If you want to use skeletal animation, I've got to be honest: I think 1 time I managed to get an animated .X model in. That was using Blender, several versions ago. I've had better luck with Collada. I think if I were to do things again in XNA, I'd probably look at writing a model importer using something like
assimp.
Also, many of them would need decimation, as most of my models are rather high-poly.
Not to continue to harp on the value of writing an importer, but your importer could handle this. Split it into an octree, be done with it. You won't pay the price at load time, that shits already saved. You do pay the price at compile time, but only if the asset changes.
Plus, prerendered is really just a case of putting together a few layers of image fragments... writing a game engine in this style is ridiculously easy. I would have to write my own 3D world handler if I went true 3D, and that's quite a time sink.
I can't argue against that!
At the heart of it, either would be pretty easy with simple ray cast/bounding volume collision detection, though prerendered you can cheat a lot.
And yes, everything in prerendered would be sprites, and of course I have sprite scaling for depth... of course that's intrinsic to 3D, so it's not an issue for either methods.
Yep! Billboards!
A prerendered scene will use anywhere from about 150k to upwards of 400k triangles per scene. I am not sure if there are any systems available today that can process 400k triangles 60 times per second. Obviously you don't show them all at once, but using all those high-poly models would really be ridiculous in realtime. Decimation takes time too, if you want good results.
Well, I'll admit I haven't looked at 360 hardware for a while, but 400K triangles transformed and textured should be
easy. I've gotten away with well over a million polys per frame before. Batch as much as possible (limit draw calls, this hurts CPU performance) and watch your shader complexity. Honestly being bound by vertex shaders hasn't been a problem for me. The problem has been pixel shader performance. If you aren't doing anything complicated, this can be very fast. Using a texture + lightmap + maybe a few dynamic lights is very fast. If you throw in some shadow map variation and a bunch of crazy procedural texturing, it can be a bottle neck. If you are going that far though, look at
deferred shading.