I know this question has been asked dozens of times in the past, but I can't seem to find any non-broken examples of it. I'm looking at implementing something similar to the 'GTA "3d" building illusion' into a current project. I'm not looking for anything too complex (even though it probably would be complex anyway), just something that will allow to create objects that have a height and move with the player.
Ultimately what I'm aiming to achieve, is something like 3 levels. The middle level will be where the player walks around and interacts. The top level is the top of the walls and the bottom level is for pits, holes, etc. If I'm not explaining myself well enough, please ask.
Someone had created an example of an engine that created skyscrapers of several levels in height. It's along with an example of a musically-activated equalizer bar that reacts to the wavelengths of the sound sample. Do a search for engines and examples, and you'll most likely find it. From what I remember/know of the original GTA, chances are that effect can be replicated with this example.
Additionally, you may be able to use the parallax object to do what you're trying to do. There are some impressive examples with the Clickteam updates.
Hmmmm, I've put this into my game now but because the sprites are always being created they flicker randomly. I'm sure there's a better way to optimize it. Anyway, yeah. If anyone has any ideas on that then please let me know! ;D
Trying to do this in mmf2 is a bit of a lost cause, I'd recommend you to to use construct instead.
With it you can export and render 3d model which is then treated as a 2d sprite by the runtime, I can't think of any easier way to do 2.5D like you want.
Lost cause? Then you need to do some math dear boy.
Using a bit of trig and a few values this can be made "rather" easy and fully stable.
It's all a matter of positioning objects relative to the camera in the right scale and with the right offset. The scale and offset are found using distance calculations while the scale is set initially.
It also means means to abandon a language/system that you know, for something completely new that you aren't used to.
And if that's the case you will probably end up not finishing it even more than if you'd just stuck to the concept you know, albeit it meaning more calculations and such.