Original Post
Hey there,
I'm currently thinking about how I would create a modern version of a 2D tile-based RPG engine. You know, something like that:



Only with the twist to inject a little more "graphic awesome". Dynamically lighting tilesets and objects, equipping them with normal- and height/slopemaps is a good start and I've done that before. In my first try, the environment was real 2d and it was terrible fiddling with shader parameters to correctly handle walls/floor tiles, height levels and such. My second try is to generate 3d coordinates like this:



You won't be able to turn the camera like I did for illustrative purposes, but you get the idea. Using the z-buffer should also make some things a little easier. I think, some kind of deferred rendering would'nt be a bad idea as the screen resolution will be naturally small and fixed (e.g. no need for big fullscreen textures) and it could make lighting a little easier to handle. Not sure about this, though.
Lighting everything shouldn't be a problem now, but I want shadows. In the best case: Soft shadows. I've gone through a terribly ineffective multipass idea and rejected it. I took a look at stencil shadowing but such sharp shadow edges won't look good in a graphical environment like that. I also looked at some pure-2d shadowing techniques but I will run into problems with them due to different height levels, wall tiles and objects. Any ideas or suggestions on this?
I'm currently thinking about how I would create a modern version of a 2D tile-based RPG engine. You know, something like that:



Only with the twist to inject a little more "graphic awesome". Dynamically lighting tilesets and objects, equipping them with normal- and height/slopemaps is a good start and I've done that before. In my first try, the environment was real 2d and it was terrible fiddling with shader parameters to correctly handle walls/floor tiles, height levels and such. My second try is to generate 3d coordinates like this:



You won't be able to turn the camera like I did for illustrative purposes, but you get the idea. Using the z-buffer should also make some things a little easier. I think, some kind of deferred rendering would'nt be a bad idea as the screen resolution will be naturally small and fixed (e.g. no need for big fullscreen textures) and it could make lighting a little easier to handle. Not sure about this, though.
Lighting everything shouldn't be a problem now, but I want shadows. In the best case: Soft shadows. I've gone through a terribly ineffective multipass idea and rejected it. I took a look at stencil shadowing but such sharp shadow edges won't look good in a graphical environment like that. I also looked at some pure-2d shadowing techniques but I will run into problems with them due to different height levels, wall tiles and objects. Any ideas or suggestions on this?