[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.

jkapp76

I would love to see the graphic sound cues from lemmings 95. This would allow deaf people to know when the builder was laying his last 3 bricks. (and they're really cool to see)

These images are included in the 95 version. And the (super lemmini too) fork has these and even created a couple extras I believe.
...Jeremy Kapp

WillLem

#1
Yeah, this is something I can look at adding, for sure.

What do people think of the idea of having more picture/animation-based sound cues (rather than words), in order to further optimise the accessibility potential? Here's an example:


Simon

#2
Very good, and all our games should do it.

-- Simon

jkapp76

#3
I like the idea of adding more visual cues to complete the accessability features. But I really like the original text cues too. I think the best option would be to use the originals but create some new ones like you show here.

A good cue for when a distant lemming falls to his death would be nice...
...Jeremy Kapp

mobius

#4
Quote from: WillLem on March 15, 2023, 12:25:13 AM
Yeah, this is something I can look at adding, for sure.

What do people think of the idea of having more picture/animation-based sound cues (rather than words), in order to further optimise the accessibility potential? Here's an example:



I like that idea, over the words in win95, which I always found a bit silly-looking.
everything by me: https://www.lemmingsforums.net/index.php?topic=5982.msg96035#msg96035

"Not knowing how near the truth is, we seek it far away."
-Hakuin Ekaku

"I have seen a heap of trouble in my life, and most of it has never come to pass" - Mark Twain


jkapp76

#5
I like the look of these non-text cues too. But the Yippie, and No! and maybe others seem to require text. Maybe not?

Here's all the cue images...
Here's also a version of the above pic with the text label... "Chink". The text version is much more visible.
...Jeremy Kapp

WillLem

Just giving this a bump. After the next release (likely later today or sometime this weekend), I'll start to look at how to draw images to the play screen.




Note to self: As well as the visual SFX, I'd also like to draw a clock over the exit when time runs out, and display a centre-screen graphic warning the player when only zombies remain and/or when no lemmings remain but the level isn't completed (both of the latter will also require the level not to exit in these circumstances.)

WillLem

#7
Wow, so... drawing these to the screen is not easy.

It's a very one-step-forward, two-steps-back kind of process. At one point I did manage to draw one of the graphics to the gameplay area, but the timing was way off. And now, something has changed in the code since I last looked at it, so I can't even draw it at all. I'll probably figure it out after a good night's sleep and a cuppa.

I dislike the WinLemm text tbh, I always turned it off when playing on that particular engine. But, I can see how it would be useful when playing without volume, and for accessibility reasons. I'd like to either redesign these, or else explore the idea of picture/symbol-based cues more fully to see what we can come up with.

I'll probably need help with this one, tbh. We want to do this in the most optimal way possible - anything graphics-related tends to guzzle resources. I'll get in touch with EricLang and see if he has any suggestions for how to get started and how to minimise framerate hits. However, if anyone else wants to help me out, please PM me and we can look at it together. I'll probably need an extra pair of eyes and a better brain than mine to take this one on!

WillLem

Had another look at this today and happy to report that I've made some limited but significant progress with it. I can now draw stuff to the screen at particular times and for a particular duration - the recent update to the Freezer skill has helped with figuring this out.

However, since there are multiple images, times and drawing-locations to manage, it's still a considerably large task which I'm beginning to think may even require its own unit.

The end goal is to have a neat-looking set of Visual SFX for different in-game situations (beginning, exiting, running out of bricks, splatting, falling off-screen, exploding, etc) and have them display in easy-to-see but not intrusive locations.

They will be optional, of course, and more than that - I'm thinking it might even be a good idea to have the option to either display the graphics at relevant in-game locations, or always centre-screen. The latter may come in more useful when using the feature for accessibility reasons, or when the sound is off, because some actions may be happening off-screen and therefore may not be visible or audible.

jkapp76

#9
I don't know how difficult this would be, but I think the best method would be for the "Tink!" to appear at the far left if the builder is
left and off the screen. And far right if he's off to the right. This would take care of the location for most of these. Anything else would
appear above the affected skill. Same with "Let's go!" It could be centered above the hatch. They might all be good to
be slightly above whatever is making the noise.

Center-screen seems okay too and should be easier to implement. Could start here and see how it goes.

P.S. In the screenshot above, the text appears to begin perfectly above the lemming and looks great. I think
off-screen sounds would look better at the edge though.
...Jeremy Kapp

WillLem

#10
Quote from: jkapp76 on July 03, 2023, 10:21:32 PM
the best method would be for the "Tink!" to appear at the far left if the builder is left and off the screen. And far right if he's off to the right.

Agreed, this does seem like the best idea.

I'd probably need to look at the code that gets the lem's position. Even then, I'm not sure if this knows whether or not the lem is currently in the screen area. Maybe there's already a way to determine this. If not, this could be very tricky.

As for timing, I'm currently using a global timer for these graphics, so they often cue when they're not actually supposed to. Even giving each graphic its own timer wouldn't necessarily work - for instance, if there are two Builders at the same time. I need better checks for whether or not to display the graphic, and maybe a better way to handle the timing.

Slow progress, this one.

Herby

Hello! The visual effects is nice idea!

Ideas for effects.

Above trapdoor.

Trapdoor is open - The door is open.

Above exit.

Lemming go to Exit - The sign with inscription ''Exit'' is the inscription on it flashes.
Time is up! - The clock minute arrow is crazy rotate clockwise.
There are not enough remaining lemmings to complete the level - Exclamation mark.

Above lemming.

Skill is gived. - Dot.
Oh-no! - The fuse on the bomb burns out.
POP! - The bomb explode.
Glub. - The bubble bursts.
Fry. - Lemming are burned and b**od is pours out.

Extra.

Lemmings on levels are zero, without minimum saved. (without zombies) - The big warning sign on middle of screen.

WillLem

#12
Some nice ideas there Herby, thanks for sharing these :lemcat:

To begin with, I suggest that perhaps we start by finding a way to visually represent the "chink" sound for Builders et al, and also look at how we might be able to show off-screen deaths visually.

At this point, Herby's idea of using symbols such exclamation marks, dots and clocks rather than words seems like a better idea than using the WinLemm text graphics (which are a bit clunky-looking IMHO). I also still think the idea of a simple 3 lines for Builder bricks works nicely, and this could potentially be added to the existing Builder animation sprite rather than displayed as a separately-rendered graphic:



These lines could then be displayed at the side of the screen, maybe slightly larger for increased visibility, when the Builder is off-screen. And similarly, maybe we can use Herby's exclamation mark idea for off-screen deaths:



If I can figure out a way for the game to know whether or not the action is happening outside of the currently-visible screen area (by no means trivial, if even possible), then all that's needed is to display the relevant graphic at the side of the screen (also not trivial, but definitely possible) - this would then sufficiently alert players that something is happening that needs attention, and whereabouts it's happening.

Technical concerns aside, this feature definitely seems worthwhile and clearly has a decent amount of support. The topic will remain open and I'm more than happy to continue discussing ideas, but it might be a while before we see it. It feels important to get this one right.

WillLem

#13
What do people think of this as a possbility for displaying "something is happening elsewhere" Visual SFX? Note that this is very much a mockup; the graphics would most likely be improved upon, probably made to look similar to the panel buttons/minimap border - this could be decided upon later.



I'm still not sure if this is even possible (i.e. the engine knowing that something is happening outside of the visual area of the screen). Also, these would also need to always appear the same size regardless of zoom factor. I imagine that this is possible due to the fact that the panel can zoom separately from the gameplay area, but it would probably need entirely its own rendering logic.

jkapp76

I like it a lot. I would have used yellow and red in place of grey and green... but I like the look.
...Jeremy Kapp