2d sprite objects in a 3d world

Hi,

I am starting to design a game, and have some questions that I would like to get answered before choosing a game engine.

I am designing an RPG, which will be using Mageslayer-style graphics. What I mean by that is that it will use a 3d game world, seen from a top-down perspective. But all objects (PCs, NPCs, treasure chests, fireballs, etc) will be 2d sprites.

My questions are:

  • Is this combination doable in unity?
  • Is there any area (collision detection, lightning, pathfinding, etc) where I might run into problems due to the 2d/3d combination?
  • Would it be possible to add a “Height” property to my 2d sprites, and use that for creating basic shadows based on the location from light sources? (I would create a list of base shadow shapes, and then calculate the actual shadow from that shape, modified by the geometry of the object and the angle from the light source)

A link to some screenshots from Mageslayer to clarify what I mean:
http://www.ravengames.com/mageslayer/screenshots.html

Thanks in advance!
/Sterling

short answer - yes, you can do all you will ever imagine with sprites using Unity and no, there are nothing you can’t do.

sane answer - sprites? Seriously?

Hehe yes, seriously, sprites. Top-down sprites means I can just rotate them, so I don’t need so many for each object that I want to animate, thus keeping the design cost for each object low.

But really, I am totally new to graphics design/programming. I am currently trying to figure out whether to use vector or raster sprites. The more I read, the more I’m leaning towards vector… What do you think?

I would also be interested in this, but more like in Doom or Wolfenstein 3D.

I’ve read a little about SpriteManager but near as I can tell, that’s for a fully 2D view, no mixing and matching.

So far, the best I’ve got is to attach a flattened box to the object, use
transform.LookAt (camera); to keep it oriented
and use
mainTextureOffset = Vector2 ((f%tileX)/tileX, Mathf.Floor(f/tileX)/tileY);
to set it to a frame. (Where tileX and tileY define the number of tiles in the source image.)

In my case the pixellated look is part of what I’m going for, so I haven’t looked into vector sprites.