chrismaltby / gb-studio

A quick and easy to use drag and drop retro game creator for your favourite handheld video game system
https://www.gbstudio.dev
MIT License
8.29k stars 467 forks source link

Third fade option (disable) #681

Open animasodo opened 3 years ago

animasodo commented 3 years ago

Is your feature request related to a problem? Please describe. I would like to disable the fading between scenes. Yes, I am aware of the glitches, still, I want it to be an official feature.

Describe the solution you'd like Users could disable the fade from the fade settings and engine event.

Additional context I've asked on the Discord server if it was possible. It looked pretty easy to do from the engine, but I want it to be an official feature.

pau-tomas commented 3 years ago

The reason why disabling face can be achieved "pretty easy" via eject engine it's because it's going to be glitchy. My personal opinion, adding an option to the UI that we know it's going to look glitchy and wrong is a bad idea. We'll be trading the "can I disable the fade?" questions for "why is non-fade transition glitchy?" which isn't a win in my book.

Until we can have a good solution for non-fade it should remain as an eject engine option.

animasodo commented 3 years ago

Not everyone knows how to modify the engine to remove the fade. For example, I don't even know what I'm going, I'm probably making a mess.

Maybe a warning might help?

pau-tomas commented 3 years ago

That's true, editing the engine isn't as easy as having an option on the editor. But adding a feature that results in glitchy results does more harm than benefit to the tool. And, unfortunately, people tend to ignore warnings (we have several examples of people no reading the compile warnings for unique tiles or the one in the "attach script to button" event when the checkbox to persist across scenes is checked).

Again, just my opinion.

animasodo commented 3 years ago

I feel like GB Studio shouldn't limit the users so much. If they ask, it's their fault they can't read a painfully obvious warning message under the event. If making this an official feature isn't a good idea, then maybe a tutorial or something might help? I can't get it to work.

maxoakland commented 3 years ago

The reason why disabling face can be achieved "pretty easy" via eject engine it's because it's going to be glitchy. My personal opinion, adding an option to the UI that we know it's going to look glitchy and wrong is a bad idea. We'll be trading the "can I disable the fade?" questions for "why is non-fade transition glitchy?" which isn't a win in my book.

Until we can have a good solution for non-fade it should remain as an eject engine option.

Why don’t you call it the “Glitch” transition and make it a feature rather than a bug? I could see it used a lot in horror games and all sorts of other situations where game makers want a weird kind of transition

RichardULZ commented 3 years ago

Engine Mod Glitchy No Fade.zip Here's what I got, try to merge with a new 2.0beta5. It's more jarring than anything, and actors have no frame to hide/update in, if the screen offset changes you might see more artifacts than usual (moving in 256px jumps technically might help) and radically different tile sets cause the most visual garbage.

It would be possible to use the same idea of not fading, but still cutting to black or white on screen transition, haven't tested with set overlay between transition yet.

rorosaurus commented 3 years ago

IMO, the fade option to white, to black, none (glitchy) should be a property of the change scene event itself, if possible. Right next to fade speed. It could override the setting that would then act as the global default for that project.

maxoakland commented 3 years ago

You’re right. And the default selection could be a 4th option - Default On Feb 9, 2021, 4:26 PM -0600, Rory Hayes notifications@github.com, wrote:

IMO, the fade option to white, to black, none (glitchy) should be a property of the change scene event itself, if possible. Right next to fade speed. It could override the setting that would then act as the global default for that project. — You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe.

sloopygoop commented 2 years ago

Engine Mod Glitchy No Fade.zip Here's what I got, try to merge with a new 2.0beta5. It's more jarring than anything, and actors have no frame to hide/update in, if the screen offset changes you might see more artifacts than usual (moving in 256px jumps technically might help) and radically different tile sets cause the most visual garbage.

It would be possible to use the same idea of not fading, but still cutting to black or white on screen transition, haven't tested with set overlay between transition yet.

Hey Richard -- I'm pretty new to all this but I'm dying to test this instant-transition-without-face out. I can't seem to figure out how to correctly substitute the files you posted and actually get GBstudio to build me a ROM without telling me it can't find Core_Main.o or Scroll.o in my /AppData/Local/Temp/_gbsbuild/obj directory. (I'm also not sure where engine.json fits into all of this.) What procedures am I missing to get this to run?

maxoakland commented 2 years ago

Engine Mod Glitchy No Fade.zip Here's what I got, try to merge with a new 2.0beta5. It's more jarring than anything, and actors have no frame to hide/update in, if the screen offset changes you might see more artifacts than usual (moving in 256px jumps technically might help) and radically different tile sets cause the most visual garbage. It would be possible to use the same idea of not fading, but still cutting to black or white on screen transition, haven't tested with set overlay between transition yet.

Hey Richard -- I'm pretty new to all this but I'm dying to test this instant-transition-without-face out. I can't seem to figure out how to correctly substitute the files you posted and actually get GBstudio to build me a ROM without telling me it can't find Core_Main.o or Scroll.o in my /AppData/Local/Temp/_gbsbuild/obj directory. (I'm also not sure where engine.json fits into all of this.) What procedures am I missing to get this to run?

Join us on the discord and we’ll be able to help you. Cheers!