Any work being done on a fixed 3D view like in Mugen?

ipkevin

Member
I was wondering, is there any work being done to support pseudo 3D backgrounds / stages like you see in games such as Guardian Heroes?  https://youtu.be/PUCA8p0RldE?t=510

It looks like Mugen (and now Ikemen) have supported this since 2014.  Check this out: https://www.youtube.com/watch?v=prUtzKX4oGA

I'm referring to how the background elements are actually arranged in some kind of 3D depth and the ground is actually 3D so that the perspective always looks correct.

Supporting that kind of view would solve all of the problems with perspective you see when people try to use the background sprites from 2D fighting games like KOF.  That artwork is not drawn to be used for the typical isometric 3/4 top down view that beat em ups use, so there's always weird perspective issues in the artwork when ppl drop 2d fighter art into their openBor games.

Switching to the above mugen/guardian heroes style would make all of those 2D fighter stage assets suddenly work so much better.  And creating a new flat texture for the 3D ground effect would be comparatively easy to redrawing everything to fit the Beatemup isometric angle.

So, any idea if work is being done on that or has anyone tried before?
 
that's something that another MUGEN creator called Alice accomplished, if I remember correctly.
but you got to be some sort of genius in order to understand how it works as there's not a official tool to make things work that way in almost perfect 3d rendering... it's a complex work of parallaxes.
 
OpenBOR already supports this, and I've already demonstrated it in videos.

Additionally, with OpenBOR you can confine the 3D to one or more layers, just like any ordinary scrolling layer. That is, you can have a layer (or layers) with 3D perspective without forcing the effect onto the whole stage.

Here's a simple demo of that in action. The background is 3D, while the play area is made of normal scrolling layers.


The next step, and one I'm working on now is real time, fully controllable affine transformations (think F-Zero). It's already possible now using the subscreen system and some tricky math, but I'm adding functionality to make it just another setting to play with.

msmalik681 said:
Rocket viper had a 3d effect on stages.

Not really. Those stages are made by drawing one of several dozen preloaded images over the background based on your X position. It's a cool looking trick but severely wasteful and doesn't have actual scrolling or depth.

DC
 
Damon Caskey said:
OpenBOR already supports this, and I've already demonstrated it in videos.

Additionally, with OpenBOR you can confine the 3D to one or more layers, just like any ordinary scrolling layer. That is, you can have a layer  (or layers) with 3D perspective without forcing the effect onto the whole stage.

Here's a simple demo of that in action. The background is 3D, while the play area is made of normal scrolling layers.

Damon, wow!  That is incredible!  Great work!  Is there any documentation on how to achieve those effects, especially the affine transformation on the grass layer?  Or even a well documented block of code to use as a starting point?  Sorry if that's a dumb question, but I'm super new to OpenBor and I didn't see anything in the manual about the affine effect.
 
To do really advanced affine work you probably want to use screens. Those aren't well documented yet, but will be soon.

The basic gist is you can define subscreens of any size that display any combination (or none) of the main screen's contents and other screen contents, plus whatever text, shapes, or images you want to add. Then you can apply any of OpenBOR's drawmethods (scaling, rotation, clipping, tinting, affine, etc.) to the screen.

Because you can define multiple screens and each screen can use other screens for source content, you can get pretty insane with them in a hurry. With a little creativity there is virtually no special effect you can't do.

All that said, my particular example is far simpler and uses out of the box layer functionality. OpenBOR already has a basic affine effect you can apply to scrolling layers, no scripts or legwork required. It just has a silly name: Watermode. Look up fglayer and the watermode settings. That should get you started.

DC
 
As I am a long term mugen coder, I can tell you this: there isn't anything Mugen can do that OpeBOR can't (excluding the bicubic interpolation).
Many things can be hard to do, but doable. The opposite isn't true - there is a lot of things OpenBOR can do which are impossible in Mugen.

But this won't work like it work in mugen, because in Mugen we have just one plane. If you try to do it in openbor, you would need to take care the different delta values in each plane, which could be tricky to do.
 
So progress is going pretty good so far (thanks again all for your input!) but I'm confused about the "perspective" options for watermode/mode7.  The manual says this:

~{perspective} defines z depth effect it should have
0 = No effect (default)
1 = Perspective & tile
2 = Perspective & stretch

When I test them, either all 3 produce the same looking effect, or occasionally the perspective & stretch option does something completely crazy and unexpected (like massively zoomed and distorted image).  I'm using horizontally repeated images.  Can anyone explain how the perspective options are supposed to work?


Another thing I've encountered is that the first bglayer with affine applied to it tends to appear in a strange place, often far too much to the left horizontally.  It's not noticeable when you have infinitely tiled images, but it becomes noticeable when there's only one image with watermode or you try to make it start at a certain position (via {xposition} attrib).
 
I think he wanted the 3d effect not just fglayers with different scrolling speed, its the same method but outcome looks better with 3d illusion.
I made it in he-man on some versus mode stages where z is not changed so you cant go up/down which would mess up that effect.
You can make aniire room like this but its working just for stages with the same zmin zmax.
https://www.youtube.com/watch?v=baaIvE8Dqq8
 
bWWd: thank you for showing us this 3D parallax effect, this is very nicely done ;).
I'm just curious as msmalik681 to see how this
Code:
watermode 3
mode 7 effect can be used in an Openbor game.
Is anyone has an example or can make a quick video with this effect please? :)
 
That will be so incredible if we can make some action phases like Mario Kart / F-Zero ... or like Run Saber boss fight (see at 2:15):
https://www.youtube.com/watch?v=M2bcOUQrvrU%E2%80%99
 
kimono,

As I've explained many times before - you can already do all these things with the current engine. The Run Saber boss fight is almost brain-dead easy. Modules that use a zoom in effect (like O Ilusionista's Avengers) are already halfway there. The principal is exactly the same. Capture one or more layers into a screen, but instead of (or in addition to) zoom, you just apply rotation, and away you go...

DC
 
kimono,

Oh if you are going for the physics too, then yes things get more complicated. Far harder to do than the graphics - but there's no getting around that, ever. Still far easier than they had it back in the day though. Just imagine trying to program that boss fight in assembly code like they had to... yuck!  :o

Anyway, if it were me, I'd probably use a series of smaller platforms linked together, similar to what Bloodbane does with his serpentine scripts. In theory, you could rotate them around to match the graphics. It would be a little rough, but might save you some work. Otherwise you're just going to have to work up some pretty intense math to rotate a map on the fly. Along with that you'll need the hanging vs. standing logic. Doable, but will require some experimentation and planning.

DC
 
Back
Top Bottom