Retro!! Pseudo 3D in 2d how was it done?

Blitz3D Forums/Blitz3D Programming/Retro!! Pseudo 3D in 2d how was it done?

Andy UK(Posted 2005) [#1]
Anyone know how this was done and how it could be implemented using blitz 2D commands?

screenshot :)

http://hol.abime.net/930


IPete2(Posted 2005) [#2]
lots of 2d sprites, so yes I should think it would be achieveable.

IPete2.


Ross C(Posted 2005) [#3]
I suppose, with the limited gfx there, you could pre-scale all the road side objects and cars, and use the scale you need, depending on it's distance. As for the road, i believe it would be a case of scaling the images again, displaying the corner upscaled as you approached. There was no view change, so you wouldn't need to worry about the car veering away from the corner, you simply just crashed.

Loved that game :D


Vorderman(Posted 2005) [#4]
There's an Outrun style road example in the code archives I believe which does exactly this sort of thing.


Andy UK(Posted 2005) [#5]
cool, ill have a look. im sure there was a demo included with blitz3d but used 3d rather than 2d. i cant find it. it was a brown road that curved and had brown bridges. it had a black background, anyone seen it?


Sledge(Posted 2005) [#6]
Your biggest problem will be giving the impression of movement along the road as this was almost always done via palette cycling - VRAM being plentiful these days, you could maybe predraw each frame in totality? Curving the road was usually a matter of taking a static buffer of a straight road...

___/ \___
__/   \__
_/     \_

...and altering its X offset as each scanline was drawn, easily approximated by copyrect'ing line-by-line to the backbuffer.


John J.(Posted 2005) [#7]
I'd just create a 3D engine that supports 3D polygons and textures. It'd be difficult, but fun. You could make you're own software texture blending and shaders! That would be kinda slow though. I've made software (non-hardware accelerated) 3D engines before, and I know a very good book on how to make them. The problem is that I don't think Blitz is fast enough for pixel-by-pixel rasterization of polygons and the z-buffer (I've used C/C++, writing directly to VGA memory locations to modify pixels really fast). So I guess the only way to make "pseudo" 3D in 2D with blitz would be to appropriately scale your sprites as they approach the camera, etc.


popcade(Posted 2005) [#8]
I bought nSprite2 and it's very useful, you can consider it.