[SUG] Visual SFX

Started by jkapp76, March 14, 2023, 03:44:22 AM

Previous topic - Next topic

0 Members and 3 Guests are viewing this topic.

Tygerboi

I am liking the ideas put forward here by Herby and others.  I did find the "chink" vfx very useful in the past when I have played WinLemm and SLT with the sound off - for example, in the living room whilst the children are watching TV, if there's also a conversation going on in the room, but could also maybe be if SLX was played whilst in a public location such as on public transport, a hospital waiting room, etc.


I didn't think the "chink" text looked too bad.  Maybe if text vfx were implemented, there could be an option to either have them turned off (default), turned on on their own, or turned on with symbol vfx, although the last option may not work very well (having both activated) unless the symbol vfx that had equivalent text vfx were disabled if both were activated.  That sounds like it  would be very fiddly though, so options for either text, or symbol or none, would be the best solution?


That idea for off-screen vfx to the left and right of the screen is fab!  Could be very useful for sound-off/hard-of-hearing situations,  The only thing that could be an issue is the vfx obscuring what is occurring on the viewable screen area.  For instance, if a builder was building a bridge near the edge of the screen whilst another builder was nearing the end of the 12-brick run off the screen on the same side, and there was also other on-screen activity going on that produced vfx, it could all start to get too cluttered/confusing.  One way around that might be to have different colour vfx for off-screen and on-screen (as possibly implied by one of the screen mock-ups).
It might be pretty cool too if, for the builder vfx, if three bars would appear when three bricks remain, two bars, when two, one when one, then the exclamation mark when the builder is about to give up and walk on.
Is there really any point in a "Let's Go" vfx?  It's already visually indicated when lemmings start to fall out of the entries because you can see lemmings falling out of them ;)  Still, if it's optional and not too difficult to implement alongside other vfx, then why not, I guess.


The timing issue for off-screen effects seemed to work just fine in WinLemm and SuperLemminiToo, although in both cases they are only audio not visual.  Does having the visual element as well make the timing process much more difficult, then? 

WillLem

#16
Quote from: Tygerboi on April 25, 2024, 02:10:52 PM
I didn't think the "chink" text looked too bad.  Maybe if text vfx were implemented, there could be an option to either have them turned off (default), turned on on their own, or turned on with symbol vfx

Text, symbols or none could work, this is a good idea. Of course, it would always be possible to swap out the graphics for whatever you like anyway, but maybe this is one to support at base level for accessibility reasons. It should only be a small handful of files anyway.

Quote from: Tygerboi on April 25, 2024, 02:10:52 PM
That idea for off-screen vfx to the left and right of the screen is fab!  Could be very useful for sound-off/hard-of-hearing situations,  The only thing that could be an issue is the vfx obscuring what is occurring on the viewable screen area.

Definitely worth considering, particularly if it ends up being very difficult (or, not at all possible) for the game to "know" whether something is happening "off-screen", or to draw graphics to an overlaid layer (which doesn't currently exist, and would eat up rendering resources).

Perhaps the hints could be displayed at the top of the game window, in the centre, with an arrow pointing left and right, something like this:



Or, more preferable, we could even use the panel display (this is coming in handy for a lot of things recently!):



Obviously, this would temporarily obscure the display, but the likelihood is that whatever is happening to prompts the hint is more important anyway, and we can always make them clickable-to-stop-showing.

In fact, one very large benefit to using the panel is that we wouldn't need another rendering layer; this might end up being the way to go with it.

Quote from: Tygerboi on April 25, 2024, 02:10:52 PM
It might be pretty cool too if, for the builder vfx, if three bars would appear when three bricks remain, two bars, when two, one when one, then the exclamation mark when the builder is about to give up and walk on.

I like the idea, but let's keep it simple to begin with (i.e. the same graphic each time) and see how necessary this is.

Quote from: Tygerboi on April 25, 2024, 02:10:52 PM
Is there really any point in a "Let's Go" vfx? ...  Still, if it's optional and not too difficult to implement alongside other vfx, then why not, I guess.

The only two that I would consider necessary from an accessibility point of view are the Builder/Stacker/Platformer alert, and a lemming death that might have happened off-screen. All others are purely cosmetic. At some point I'll get a list together of the various sound cues that might need Visual SFX and we can decide what to do about each.

Quote from: Tygerboi on April 25, 2024, 02:10:52 PM
Does having the visual element as well make the timing process much more difficult, then?

Not really, it's essentially the same process of passing a message per-lemming to cue the graphic. I understand a bit better now how things work than when I first attempted to implement this, so my next attempt should be more successful.

In fact, in order to bring this feature closer to something that feels manageable, I'll go ahead and make the call that off-screen hints will be shown in the panel area. This will greatly simplify the feature; we already have code to get the Lemming's position, and we already have code to draw a message to the panel.

jkapp76

I think the hearing impaired would appreciate a verbose mode that includes Let's go and Yippee as well. If it's all going in the panel anyway.

I prefer a nice bright contrast myself, like a yellow or bright orange for the text.

Will the text just stay for a couple seconds and then disappear?
...Jeremy Kapp

WillLem

Quote from: jkapp76 on April 26, 2024, 03:36:34 PM
If it's all going in the panel anyway.

I'd suggest that only the "off-screen and vital" stuff should go in the panel display - everything else can simply be displayed on-screen adjacent to the relevant lemming/item as it is in WinLemm/SLToo.

Quote from: jkapp76 on April 26, 2024, 03:36:34 PM
I prefer a nice bright contrast myself, like a yellow or bright orange for the text.

I dislike the WinLemm ones tbh, but I'm happy to use the same colour scheme and design some new ones. You can always swap the graphics for the WinLemm ones if preferred.

Quote from: jkapp76 on April 26, 2024, 03:36:34 PM
Will the text just stay for a couple seconds and then disappear?

Yes. And, if in the panel, it will be clickable-to-remove.

WillLem

Well, I love a good spreadsheet so here's what we can possibly do for each of the sound cues :lemcat::

N/A means Not Applicable - we won't use a Visual SFX cue here.
TBA means To Be Announced - we either won't use a Visual SFX cue here, or we need to decide on one.


Sound CueText VSFXSymbol VSFXPanel Message (off-screen events only)
Level Start"LET'S GO!" (above entrances/pre-placed lems)TBAN/A (off-screen level start areas shouldn't be formally supported)
Zombie Level Start"BRAAAINS!" (above zombie entrances/pre-placed zombies)TBAN/A
Builder/Stacker/Platformer Warning"CHINK" (above working lems)Frustration lines (above working lems)<- Bricks are running out! ->
(Time)Bomber 'Oh No' State"OH-NO!" (above lem)N/AN/A
(Time)Bomber/Freezer Explosion / Balloon Pop"POP" (above lem)N/AN/A
Hit Steel/OWW"BONK"TBA<- Action interrupted ->
Lemming Death"YIKES!"N/A<- Lemming lost ->
Time Up"TIME UP" (above exits)Clock (above exits)Time is up!
All Collectibles Gathered"WELL DONE"Star (above lem)N/A
Button Click"CLICK"N/A<- Button Pressed ->
Exit UnlockedTBATBA<- Exit Unlocked ->
Lemming Exit"YIPPEE!"N/AN/A

Tygerboi

#20
Sorry for replying this way, but I've been having problems replying to WillLem's reply on 26/04/2024 with it shrinking the text size of my responses down to about size 1, so is only readable at 500x zoom!  Also, the preview button/Alt-P doesn't actually show me a preview.
Anyway, on with my reply:

Quote from: WillLem
I'd suggest that only the "off-screen and vital" stuff should go in the panel display - everything else can simply be displayed on-screen adjacent to the relevant lemming/item as it is in WinLemm/SLToo.

I agree with that, as the on-screen ones will be harder to miss, and it would be helpful having them over the relevant lemming.

Quote from: WillLem
Quote from: jkapp76
Will the text just stay for a couple seconds and then disappear?

Yes. And, if in the panel, it will be clickable-to-remove.

Why click-to-remove the panel display messages?  Wouldn't this potentially cause confusion if, say, a builder off-screen starts to run out of bricks so a message is generated but then stays there until the message is clicked, but you also have initiated another builder or two elsewhere that may happen to be off-screen, and you have the sound off, how will you be able to tell whether the visual prompt in the panel is an old one that you forgot to click to clear, or a current one that needs immediate action?  Also, would there ben enough panel space for multiple messages with directional indicators to be displayed simultaneously?  All of these off-screen activities that need prompts are all time-sensitive in that you have to either let the lemming go or else reassign a task within 3-5 seconds, so the warning prompts might as well also only be displayed for 3-5 seconds, like their on-screen counterparts.  Having to remember to click off messages during the heat of the moment is also a "passive" (i.e. doesn't directly affect the gameplay) player task that could result in missing the timing for assigning a lemming skill at exactly the right moment, or something along those lines, unless the pause button was extensively used.  Which reminds me - if you have a visual prompt on-screen over a lemming (e.g. "chink!") and the pause button is pressed whilst its on-screen, will that also stop the message disappearing until the pause is released, or will it still time-out and disappear?  I'd prefer the first option - pause game also pauses on-screen/panel message time-out countdown - as it could potentially help with planning how to complete a level.  It may also be useful for taking screenshots.

WillLem

Quote from: Tygerboi on May 15, 2024, 11:44:20 AM
I've been having problems replying

Yes, I noticed this. I've taken the liberty of editing the affected posts for readability for now, but definitely post about it in Site Discussion if it continues (it seems to only be a recent thing for you?).

Quote from: Tygerboi on May 15, 2024, 11:44:20 AM
Also, the preview button/Alt-P doesn't actually show me a preview.

Again, probably something to mention in Site Discussion if you're having regular issues with it. In particular, we could do with knowing what computer/phone/etc & browser you're using to navigate the Forums, as it may be a browser-specific issue.

Quote from: Tygerboi on May 15, 2024, 11:44:20 AM
Why click-to-remove the panel display messages? Wouldn't this potentially cause confusion ... how will you be able to tell whether the visual prompt in the panel is an old one that you forgot to click to clear, or a current one that needs immediate action?

I should probably have been clearer about that. I meant the messages could be clicked to remove them optionally, for example if the player wants to be able to see athlete info, or any other info that uses this area of the panel's display.

By default, the message will probably be displayed for 3-5 seconds or so, or until the message is no longer relevant, whichever is soonest.

Quote from: Tygerboi on May 15, 2024, 11:44:20 AM
Also, would there be enough panel space for multiple messages with directional indicators to be displayed simultaneously?

Probably not tbh. This is where we hope that such limitations promote a creative solution! ;P

For example, in a case where multiple Builders need attention at the same time, we can either simply continue displaying the same message, or display a custom message ("Multiple Builders are running out of bricks!"). Either could potentially work.

Quote from: Tygerboi on May 15, 2024, 11:44:20 AM
if you have a visual prompt on-screen over a lemming (e.g. "chink!") and the pause button is pressed whilst its on-screen, will that also stop the message disappearing until the pause is released, or will it still time-out and disappear?

We'll almost certainly pause all Visual SFX along with everything else. Hopefully, the rendering will already handle this by default, but I'll know what to do about it if it doesn't anyway.

Thanks for the queries. Keep these coming: questions and comments help the feature take shape :thumbsup: