Hi,
I’m thinking about creating a simple side-scroller in the same style of the old Double Dragon or the more recent Castle Crashers.
That means 2.5D, but using sprites and vector-art for the level and characters.
My wish is to be able to use hand-drawn art for the level, where I manually rotate every wall that’s in the Z-direction 45 degrees to fake an “isometric” point of view. This also means that the player can move in Z, but it will be displayed as an offset in (world) X and Y on-screen.
I know there’s probably tens of ways to accomplish it, but my main concern is that it would be great if it’s possible to keep the player-position, collision-detection and a bunch of other stuff in full 3D internally. That way I can use PhysX, and I have no restrictions on what kind of framework I use for animation etc.
So, my initial thought is to create the level as two separate entities. A 2D representation where I put my hand-drawn background, foreground and so on. And then a 3D representation with all the colliders and other logic stuff for the level.
I then use standard ways of moving my character, such as CharacterController, in the 3D representation of the world.
What I don’t know is how I best display the characters on top of the 2D artwork best?
One way would be to have a clone of each character, and a simple script on that clone that moves it in X and Y according to the master objects Z-position, and then show that clone on camera instead of the “real” character. But then I’d have to keep the clone perfectly synced to the master for animations and such.
Another way would be to somehow shift the position of each character temporarily in X and Y according to Z before the actual rendering of each frame. But how?
Or is it possible to somehow script a separate orthographic camera that will act as if it’s rotated 45 degrees in X and Y, but still render all objects as billboards that always face the camera? And without affecting the objects transforms, so that PhysX won’t go haywire?
Sorry for a long post. As you probably see I’m a bit lost right now and perhaps not perfectly clear about what I want or how to properly describe it .