Author Topic: [SUG] Swimmer skill upgrades  (Read 3184 times)

0 Members and 1 Guest are viewing this topic.

Offline WillLem

  • Moderator
  • Posts: 3384
  • Unity isn't sameness, it's togetherness
    • View Profile
[SUG] Swimmer skill upgrades
« on: July 10, 2023, 10:10:50 AM »
From this topic:

Quote from: Strato Incendus
Diver: Basically just a fancy Jumper, if implemented as in L2. What would be a lot more interesting, though, is if it could be assigned to a Swimmer to make him go down in a water pond, without requiring a ceiling of terrain to do so.

Offline WillLem

  • Moderator
  • Posts: 3384
  • Unity isn't sameness, it's togetherness
    • View Profile
Re: [SUG] Swimmer skill upgrades
« Reply #1 on: July 10, 2023, 10:13:00 AM »
Rather than adding a new "Diver" skill, which would be mostly redundant for non-water use what with Jumpers & Gliders existing, perhaps we could achieve the same thing by making Swimmers dive when assigned a Jumper?

I also think assigning Walkers to Swimmers should turn them around. As far as the Swimmer's versatility and movement is concerned, it's worth seeing what the possibilities are with what we already have.

Thoughts? Other suggestions/ideas?

Offline Proxima

  • Posts: 4566
    • View Profile
Re: [SUG] Swimmer skill upgrades
« Reply #2 on: July 10, 2023, 12:00:32 PM »
Relevant discussion from NL's introduce-the-jumper topic

Quote
Swimmer->Jumper: again, I'm thinking that the Jumper skill in water could make the Lemming perform a twist in the water which would turn them around, or maybe accelerate them forward. It could have some function, I guess is what I'm saying.

Quote
I'm ruling out both of these proposals right now. The walker has two functions: "Cancel a skill; or turn around a lemming that's already just walking". It is not going to do anything other than those to a Jumper (and the Jumper isn't "just walking", so it won't turn him around either - it'll either cancel the jump, or not be an accepted assignment). Likewise, there's no reason whatsoever to expect such a case from a Swimmer->Jumper combo; it comes down to either "assigning a Jumper to a Swimmer makes him jump as normal", or else "you can't assign a Jumper to a Swimmer".

Yes, I know SLX is a separate game and doesn't have to stand by decisions made in NL. But the principle is the same: "one skill, one function" is the ideal, and deviations from it (such as the walker being either a turner or a canceller) need to have a really good reason to justify their existence. This is especially true as SLX has more skills than NL and you are considering adding even more; weird and fiddly exceptions add even more to the mental load you are imposing on players.

Offline Strato Incendus

  • The King of Shimmiers (crowned by Flopsy ;D )
  • Posts: 1754
  • #RIP Spearer/Grenader (2020 - 2021)
    • View Profile
Re: [SUG] Swimmer skill upgrades
« Reply #3 on: July 10, 2023, 06:04:13 PM »
Intuitively, my first expectation when assigning a Jumper or Shimmier to a Swimmer would be for it to jump out of the water.
Back when we discussed this for NeoLemmix, somebody rightly asked what the lemming would be jumping off of.
But who knows, perhaps lemmings are more like penguins in this regard. 8-)

To name but one game where jumping out of the water is possible — and from which we’ve already taken two tilesets for NeoLemmix:
Speedy Eggbert. ;)
My packs so far:
Lemmings World Tour (New & Old Formats), my music-themed flagship pack, 320 levels - Let's Played by Colorful Arty
Lemmings Open Air, my newest release and follow-up to World Tour, 120 levels
Paralems (Old Formats), a more flavour-driven one, 150 levels
Pit Lems (Old Formats), a more puzzly one, 100 levels - Let's Played by nin10doadict
Lemmicks, a pack for (very old) NeoLemmix 1.43 full of gimmicks, 170 levels

Offline WillLem

  • Moderator
  • Posts: 3384
  • Unity isn't sameness, it's togetherness
    • View Profile
Re: [SUG] Swimmer skill upgrades
« Reply #4 on: July 10, 2023, 10:52:43 PM »
"one skill, one function" is the ideal, and deviations from it (such as the walker being either a turner or a canceller) need to have a really good reason to justify their existence

The Walker is a turner, is it not? And, it actually doesn't "cancel" skills any more than Bashing "cancels" the action of Walking - it's an action, like anything else. Splitting hairs aside, though, I'd say we've come to expect certain things from the Walker now, and enabling these things in as many states as possible seems like the more intuitive thing to do at this point.

With that said, it's more than noted that we don't want to add too much unnecessary complication to SLX. If any of the current proposals turn into actual features, it's likely we'll aim to make them as simple and intuitive as possible.

Meanwhile, I would expect a Walker to turn a Swimmer, and I'm surprised that it doesn't - maybe that's just me, but I'm not so unique that I'm the only player who'd think that.

I'd also expect the Jumper to have some interaction with the Swimmer (again, probably not alone in this). Diving seems like the most useful thing to do (but perhaps not the most intuitive), since there is currently no way to send a Swimmer downwards.

To name but one game where jumping out of the water is possible — and from which we’ve already taken two tilesets for NeoLemmix:
Speedy Eggbert. ;)

New Super Mario Bros U's penguin suit allows Mario to "jump" out of the water as well ;P

Offline Proxima

  • Posts: 4566
    • View Profile
Re: [SUG] Swimmer skill upgrades
« Reply #5 on: July 10, 2023, 11:03:52 PM »
The Walker is a turner, is it not?

Not in general -- it turns the lemming if the lemming is currently walking, otherwise it cancels their current action.

This is not splitting hairs; it is a fundamental part of the skill's design that, unlike every other skill in the game, it does two completely different things in these different scenarios. And this is important to notice, because it's weird, and we only accept it because the skill works well enough within the context of the overall game that the weirdness is at a level we can tolerate.

Lix discussion -- Simon brought up this weirdness and considered making the walker an always-turner; this was rejected.

Offline WillLem

  • Moderator
  • Posts: 3384
  • Unity isn't sameness, it's togetherness
    • View Profile
Re: [SUG] Swimmer skill upgrades
« Reply #6 on: July 11, 2023, 04:45:06 PM »
This is not splitting hairs

I didn't mean you were splitting hairs, I meant it felt like I was being a bit pedantic in my response... ;P

Lix discussion -- Simon brought up this weirdness and considered making the walker an always-turner; this was rejected.

Ah, OK. This loops back to the Runner discussion, in which I wondered whether the Walker should, in fact, be a "Turner".

Offline Strato Incendus

  • The King of Shimmiers (crowned by Flopsy ;D )
  • Posts: 1754
  • #RIP Spearer/Grenader (2020 - 2021)
    • View Profile
Re: [SUG] Swimmer skill upgrades
« Reply #7 on: July 11, 2023, 06:47:08 PM »
Quote from: WillLem
I'd also expect the Jumper to have some interaction with the Swimmer (again, probably not alone in this). Diving seems like the most useful thing to do (but perhaps not the most intuitive), since there is currently no way to send a Swimmer downwards.

On the contrary; I’d say jumping out of the water is far more useful than diving. ;)

Lots of water ponds have walls that are too high for Swimmers to just walk out of them, and not all of them are straight enough for Climbers. Diving, meanwhile, is rather useless, as long as the lemming can’t do anything else while under water. It can do passive things, like collecting pickups and hitting exit buttons, but it can’t perform any non-lethal skills.

For diving to be really useful, it would have to become possible to dig, bash, mine, fence, or laser blast under water, to create tunnels for other Swimmers. The Laserer can at least shoot through water, but only if the lemming is standing outside of it. ^^
My packs so far:
Lemmings World Tour (New & Old Formats), my music-themed flagship pack, 320 levels - Let's Played by Colorful Arty
Lemmings Open Air, my newest release and follow-up to World Tour, 120 levels
Paralems (Old Formats), a more flavour-driven one, 150 levels
Pit Lems (Old Formats), a more puzzly one, 100 levels - Let's Played by nin10doadict
Lemmicks, a pack for (very old) NeoLemmix 1.43 full of gimmicks, 170 levels

Offline WillLem

  • Moderator
  • Posts: 3384
  • Unity isn't sameness, it's togetherness
    • View Profile
Re: [SUG] Swimmer skill upgrades
« Reply #8 on: July 11, 2023, 08:38:43 PM »
Whilst we're on the subject of upgrades to the Swimmer skill, in 2.4.2 the Freezer now explodes a further added extra pixel lower when assigned to a Swimmer. This makes it much easier and less annoying to create a multi-Freezer "nudge down" blockade, whilst also looking and feeling much more deliberate - it's amazing how much difference a single pixel can make!

With regards to Swimmer-assignability, I can only think that adding more interaction possibilities makes it a more useful, versatile, and valuable skill, rather than - what it currently is - essentially a non-assignable Walker!

Let's consider the possibilities:

Walker - currently cancels the Shimmier, so having some effect on the Swimmer feels right. They could turn, or dive (the latter is obviously much less intuitive)
Shimmier - this could simply be assignable as a way to get the lem out of water if there's shimmy-able terrain in overhead range
Jumper - I prefer dive, but can absolutely see the case for keeping it as an upwards-jump to allow lems to exit high-sided water areas without having to be assigned a Climber. I'll probably poll this one if we decide to do anything
Blocker - in theory, Swimmers could be made to "tread water" and be Blockers - it currently takes 2 vertically-oriented Freezers to "block-and-turn" other Swimmers in water. I'm riffing, here, but it is a possibility
Spearer/Grenader - I see no reason a Swimming lem couldn't launch a Spear or Grenade; their arms are already cycling, they could simply fling the projectile without even changing the animation

That's pretty much it. Maybe the Freezer does provide enough in-water options in terms of blocking/diving, so that could mitigate (if not totally eliminate) the need for Walker, Blocker and dive-Jumper interactions, whilst adding weight to the upwards-Jumper option.

I realise it's a controversial thing (like 'Steel-is-always-steel' and 'Shimmiers turn when they bump into a wall' - neither of which have been implemented due to Forum consensus being generally not-in-favour), so please note that I am prepared to take others' views into account even if they contradict my own. The "more Swimmer interactions" is one I really do feel could work, though, so we might need at least a trial period to see if we like it.

Thoughts on this?
« Last Edit: July 13, 2023, 02:07:59 AM by WillLem »

Offline Strato Incendus

  • The King of Shimmiers (crowned by Flopsy ;D )
  • Posts: 1754
  • #RIP Spearer/Grenader (2020 - 2021)
    • View Profile
Re: [SUG] Swimmer skill upgrades
« Reply #9 on: July 12, 2023, 05:02:20 PM »
I like the idea of being able to shimmy out of water. Especially since placing low ceilings above water ponds is a common way to prevent the player from easily building over them. :thumbsup:

Naturally, if a Swimmer can “jump” out of water to shimmy, it should be able to perform a Jumper action out of the water, too.
My packs so far:
Lemmings World Tour (New & Old Formats), my music-themed flagship pack, 320 levels - Let's Played by Colorful Arty
Lemmings Open Air, my newest release and follow-up to World Tour, 120 levels
Paralems (Old Formats), a more flavour-driven one, 150 levels
Pit Lems (Old Formats), a more puzzly one, 100 levels - Let's Played by nin10doadict
Lemmicks, a pack for (very old) NeoLemmix 1.43 full of gimmicks, 170 levels

Offline WillLem

  • Moderator
  • Posts: 3384
  • Unity isn't sameness, it's togetherness
    • View Profile
Re: [SUG] Swimmer skill upgrades
« Reply #10 on: July 19, 2023, 08:37:37 PM »
Made some progress on this today.

Jumpers, Shimmiers and Blockers can now be assigned to Swimmers. The Blocker code is identical, but checks for water and Swimmer ability have been added, along with a sprite swap.

All behave exactly as expected. Along with the updates to Zombies-in-Poison, the Swimmer is shaping up to be a much more interesting and versatile skill!

Here's a video demo showing all three interactions:

« Last Edit: March 10, 2024, 12:18:42 AM by WillLem »

Offline WillLem

  • Moderator
  • Posts: 3384
  • Unity isn't sameness, it's togetherness
    • View Profile
Re: [SUG] Swimmer skill upgrades
« Reply #11 on: July 20, 2023, 10:17:53 PM »
Regretfully, we won't be getting the Swimmer-Blocker after all.

I've run into far too many problems with it and have got to the point where the difficulty in implementation is outweighing the potential benefit of the feature.

In case I ever decide to revisit it in the future, the two main problems are these:

a) It doesn't seem possible to check for water at the actual rendering stage - this can only be done in LemGame (post-rendering). So, any Swimmer that's assigned a Blocker anywhere in the level (not just in water) is given the replacement "SwimBlocker" sprite. Since it's necessary to do the sprite-swap at the rendering stage, I currently can't see any way around this.

b) Pre-assigned Swimmer-Blockers transition immediately to Faller, and then Swimmer, no matter what I try. I've looked at every thread I can find that directly affects Swimmers and Blockers, and I've tried changing the order of priority for pre-assigned skills. No luck, sadly.
Note to self: LemGame's AddPreplacedLemmings and LemRendering's RenderWorld might be the key to unlocking this one - they may need to be mutually co-ordinated

It is still technically possible to assign Blockers in water, but it doesn't seem worth having this behaviour without the sprite to go with it. I even tried giving the SwimBlocker its own method independent of a regular Blocker, but since both states need to be tied to all the same various points-of-assignment (i.e. Skill Panel button, Replay event, Pre-placed lem, etc), it starts to get very wonky very quickly, and is extremely bug-prone.

So, for now, we'll have to let this idea go.

We can still use double-stacked Freezers to Block lems in water, with the added bonus that these are also Zombie-proof!



Meanwhile, we will still be getting Jumper and Shimmier assignability as of SuperLemmix 2.5 :lemcat:

I'm excited about this change because I believe it will make the Swimmer skill a bit more versatile and a bit more valuable. I look forward to seeing these interactions in people's levels!
« Last Edit: March 10, 2024, 12:20:22 AM by WillLem »

Offline Strato Incendus

  • The King of Shimmiers (crowned by Flopsy ;D )
  • Posts: 1754
  • #RIP Spearer/Grenader (2020 - 2021)
    • View Profile
Re: [SUG] Swimmer skill upgrades
« Reply #12 on: July 21, 2023, 09:03:37 AM »
Thanks a lot for your effort, WillLem! :thumbsup: And now that you’ve explained the problem with the Swimmer-Blocker sprites, I’m actually somewhat glad we’re not getting that interaction: :evil:

Of course, I don’t know if it merely looked a little silly — having Blockers who are also Swimmers bop up and down while as if floating in water, while they’re actually standing on terrain — or if it actually led to game-mechanical problems, too.
My packs so far:
Lemmings World Tour (New & Old Formats), my music-themed flagship pack, 320 levels - Let's Played by Colorful Arty
Lemmings Open Air, my newest release and follow-up to World Tour, 120 levels
Paralems (Old Formats), a more flavour-driven one, 150 levels
Pit Lems (Old Formats), a more puzzly one, 100 levels - Let's Played by nin10doadict
Lemmicks, a pack for (very old) NeoLemmix 1.43 full of gimmicks, 170 levels

Offline namida

  • Administrator
  • Posts: 12398
    • View Profile
    • NeoLemmix Website
Re: [SUG] Swimmer skill upgrades
« Reply #13 on: July 21, 2023, 10:36:46 PM »
Check if LemAction = baSwimming, rather than checking LemIsSwimmer. The former variable is what action the lemming is performing; the latter, whether it has the Swimmer permanent skill.
My Lemmings projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)

Offline WillLem

  • Moderator
  • Posts: 3384
  • Unity isn't sameness, it's togetherness
    • View Profile
Re: [SUG] Swimmer skill upgrades
« Reply #14 on: July 21, 2023, 11:37:09 PM »
Check if LemAction = baSwimming, rather than checking LemIsSwimmer. The former variable is what action the lemming is performing; the latter, whether it has the Swimmer permanent skill.

Due to the way I was implementing the sprite-swap (which could probably be done a different way), the action check needs to be for baBlocking.

So, it's necessary to check for LemAction = baBlocking and HasTriggerAt(...trWater) - the latter of which isn't possible from LemRendering, from what I can see.

Offline Floyd Brannon

  • Posts: 41
    • View Profile
Re: [SUG] Swimmer skill upgrades
« Reply #15 on: August 14, 2023, 11:14:32 PM »
It would be cool to make (all water) levels. with no ground. Someone will probably do this even if it is just a simple level. But the more complexities we can add within water the more levels we can make.

Offline WillLem

  • Moderator
  • Posts: 3384
  • Unity isn't sameness, it's togetherness
    • View Profile
Re: [SUG] Swimmer skill upgrades
« Reply #16 on: March 29, 2024, 01:16:26 AM »
Revisited the idea of assigning Blockers to Swimmers today.

Previously, the sprite-swap was the only thing holding this back. It required an additional "Swimblocker" lem state, which was piggybacking regular Blocker code for its implementation whilst relying on the real-time sprite swap for its visual effect - messy, and the Renderer really didn't agree with what I was trying to do.

So, this time around I've opted to simply equip the existing Blocker with the ability to "tread water" - we draw the sprite behind the water object and have it move up and down slightly, achieving more or less the same effect as the previous Swimblocker sprite-swap:



Very happy with how this has turned out. Let's give it a try in 2.7 and see if we like it; we can always revert back if not.
« Last Edit: March 29, 2024, 05:14:34 AM by WillLem »

Offline jkapp76

  • Posts: 377
    • View Profile
Re: [SUG] Swimmer skill upgrades
« Reply #17 on: March 29, 2024, 02:44:35 AM »
I think it looks pretty awesome!
...Jeremy Kapp

Offline WillLem

  • Moderator
  • Posts: 3384
  • Unity isn't sameness, it's togetherness
    • View Profile
Re: [SUG] Swimmer skill upgrades
« Reply #18 on: April 06, 2024, 02:22:49 AM »
There's a known bug in 2.7 where Blockers are always drawn to the lower layer, even when not in water. This is now fixed (Commit 646ae1c03); I'll get a hotfix released in due course.

Offline Strato Incendus

  • The King of Shimmiers (crowned by Flopsy ;D )
  • Posts: 1754
  • #RIP Spearer/Grenader (2020 - 2021)
    • View Profile
Re: [SUG] Swimmer skill upgrades
« Reply #19 on: April 07, 2024, 06:34:07 PM »
Thinking about it, Swimmers being able to jump out of water should really have been a feature in the Lemmings clone for Linux, named "Pingus" :D ...
Because while we were wondering about how this is physically possible, penguins can definitely do that!
My packs so far:
Lemmings World Tour (New & Old Formats), my music-themed flagship pack, 320 levels - Let's Played by Colorful Arty
Lemmings Open Air, my newest release and follow-up to World Tour, 120 levels
Paralems (Old Formats), a more flavour-driven one, 150 levels
Pit Lems (Old Formats), a more puzzly one, 100 levels - Let's Played by nin10doadict
Lemmicks, a pack for (very old) NeoLemmix 1.43 full of gimmicks, 170 levels