ikemen-engine / Ikemen-GO

An open-source fighting game engine that supports MUGEN resources.
https://ikemen-engine.github.io
Other
656 stars 117 forks source link

Env Shake #1300

Open SabreKnot opened 1 year ago

SabreKnot commented 1 year ago

(IKEMEN NIGHTLY Version) -Windows

Env Shake acts different on stages as opposed to Mugen (1.0/1.1)

But the real issue here on IKEMEN is that it is showing more exposure, rear sprites of the stage where as Mugen does not.

You can try this on Highway Interception stage by Vegaz.

http://www.mediafire.com/download/meoey1cl04ns0m6/Highway_Interception.rar

(I've also seen this happen on other stages)

Please correct this.

RealFoobs commented 1 year ago

Some reference screenshots I took Ikemen (nightly) ikemen001

Mugen 1.1 mugen000

You can see mugen 1.1 shows a solid black outline whereas ikemen displays some background elements. Makes you wonder if it's a difference in how the deltas of the stage are handled between engines, or if mugen specifically draws that black bar.

potsmugen commented 1 year ago

It's either that Mugen doesn't draw the stage pixels that aren't in the screen area, which is doubtful (though I think it doesn't draw stuff that's outside a certain range), or that Elecbyte added the black bars deliberately. You can also remove them with the overdraw parameters.

SabreKnot commented 1 year ago

Post updated with engine version.

K4thos commented 7 months ago

I believe the issue is caused by the absence of a FillRect (fade function) call, which was responsible for filling the screen's exterior with black. This specific code was commented out in this PR: https://github.com/ikemen-engine/Ikemen-GO/pull/605. My understanding is that its presence previously led to different problems, resulting in its deactivation.

potsmugen commented 7 months ago

I tried to add that before but couldn't get the rectangle to change position dynamically. But yeah it makes sense. We should draw rectangles right outside the screen, probably only when EnvShake is active to help performance. Alternatively it should just not render things that are outside the screen, but that sounds harder to implement. Not sure what approach Mugen took but I remember Mugen not tiling some stage elements correctly if you aligned them to the left of the axis, so it probably just does not render what it doesn't need to.