[SUG] New skill - Batter/Flinger

Started by WillLem, July 10, 2023, 10:44:17 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

WillLem

From this topic:

Quote from: Proxima
Lix's batter ... is a unique and really interesting movement skill because of the way it requires one lemming/lix to interact with others, and a whole crowd can be batted if they are tightly packed; it also allows blockers to move without removing terrain.

And, from this topic:

Quote from: jkapp76
Flame Thrower: I agree this is replaced by the grenader pretty well, but I would make this one very different.
I would recommend making the flame perform like the old ghost gimmick; the flame will turn around any lemming (or zombie) it hits.

WillLem

#1
The Grenader more or less eliminates the need for the Flamethrower's destructive properties, so maybe the Batter is a good choice here, achieving the effect of repelling Zombies and turning Lems (flung Zombies/Lems should face the other way, for sure).

Support for this idea? Thoughts? Suggestions?

Proxima

The Batter is one possibility for skill inclusion that I really like, because it can be used for a variety of situations while the skill itself always does the same thing:

* Release a blocker
* Bat one lemming across a gap or up a stair (makes the one-use swimmer idea even more redundant)
* Bat multiple lemmings across a gap, providing another reason to need to compress the lemmings, rather than the traditional trap
* Bat the entire crowd across a gap -- this can often be a hidden linchpin that's hard to spot
* Eliminate a zombie
* Bat a disarmer ahead of the crowd so he reaches a trap first
* Bat a normal lemming ahead of a crowd of neutrals

jkapp76

...Jeremy Kapp

Strato Incendus

I do agree I've always enjoyed the Batter in Lix, though its practical usage often seemed to be a hit-or-miss thing.
In a NeoLemmix-based environment, like SuperLemmix, though, skill shadows would probably make this skill a lot less fiddly.
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

Floyd Brannon

This skill is in my top 3. It seems versatile.

WillLem

#6
Quote from: Strato Incendus on July 10, 2023, 05:56:07 PM
In a NeoLemmix-based environment, like SuperLemmix, though, skill shadows would probably make this skill a lot less fiddly.

I'm not sure if skill shadows will be possible for the Batter. It affects multiple lems, whilst skill shadows in every current case are either based on a single simulated lem or else literally "drawn" to the screen.

Drawing is no good, because lems can respond differently depending on proximity to the Batter, surrounding terrain that they might bounce off whilst in a "batted" state, etc.

Simulating, meanwhile, would be both prohibitively difficult and a guzzler of valuable rendering resources as more lems need to be simulated. Also, the simulation process is currently dependent entirely on knowing which lem to simulate, and is in every current case the lem that's currently under the cursor. How would we know which lem to simulate if a group of them are meanding around near a lem that's about to become a Batter?

This might be a skill which doesn't get a shadow, then. Would we still want it in that case? Personally, I'd say that all the reasons listed by Proxima are great reasons to have this skill, and the absence of a shadow for it shouldn't necessarily put us off the idea.

Thoughts?

jkapp76

That's alot more skill shadow info than I would have expected to include.
I think a skill shadow just to show the range of the bat would be plenty.

I still like it. And I like how we've filtered out the l2 skill weak links here too.
...Jeremy Kapp

WillLem

#8
Quote from: jkapp76 on July 11, 2023, 02:04:26 AM
I think a skill shadow just to show the range of the bat would be plenty.

That would work fine for an open, flat area. But as soon as there are other terrain obstacles to consider, a "drawn" skill shadow fails. This is where simulation is needed - and, we're then back to the problem of which lem to simulate.

EDIT: In fairness, if the game is intuitive enough at that point to know that "this lem is about to be batted" (which, to some extent, it would have to know in order to make the non-active lems respond and enter the "batted" state), then it may be possible to say "simulate this lemming's path for the duration of them being a "batted" lem".

Strato Incendus

Just reflecting on the potential usefulness of this skill - it would probably depend on what types of interactions would be possible with the flung lemming.
This will also include interactions that aren't possible in Lix, since it doesn't have many of the NeoLemmix / SuperLemmix skills.



- cloning a Batter would fling two lemmings in opposite directions, which might be an interesting way of separating two worker lemmings from a crowd, if they then have to fulfil different tasks

- I think a flung lemming should behave like a Jumper (except the arc would be much larger, probably closer to that of a Spearer and Grenader). Therefore, the flung lemming should be able to hold on to vertical walls (if he is a Climber and/or Slider, with Climber taking precedent over Slider, as usual); and he should be able to transition into a Shimmier if close enough to a ceiling.

- It might also be possible to use a Batter to fling a lemming into a Laserer tunnel in a ceiling, or higher up in a wall. This depends on the trajectory of the flinging arc, of course, as well as on where the Laserer is placed. By the same token, Batters could fling lemmings on top of Spearer spears sticking in a wall, or into wall niches created by Grenaders / Bombers.

- Should Swimmers be able to use the Batter while in water?
Might be another way to get a fellow Swimmer out of a water pond, if the walls are too high.
Or, perhaps most interestingly: What if a Swimmer could use a Batter to save a non-Swimmer from drowning, by flinging the Drowner out of the water before the animation is completed? (Much like Swimmers can still be assigned to Drowners.)

- Disarmers might make for great candidates to-be-flung. When there's a bunch of traps in the level, areas where you don't want the crowd to go before these traps have been disarmed.
Therefore, have the crowd fling the Disarmer to the different places he needs to go. :D

- Batters would also be a new and unique way of cancelling any given skill.
Want a Builder or Platformer to stop? Fling the building lemming away from his staircase! Same for a destructive skill? A Basher, Miner, Fencer, or Digger would get flung against the wall of his own shaft.

- Crucially, I think Batters should be able to free Blockers, since they remove the ground under the Blocker's feet,
without being a destructive skill. This can be a useful tool for a level designer, when you want a Blocker to be freed, without simply providing an overpowered Walker, or another destructive skill which could be used to create backroutes elsewhere. The Batter, much like freeing a Blocker with e.g. a Miner, would still require another lemming to get (back) to the Blocker and free him, rather than the Walker simply allowing the Blocker to free himself.

- Regarding Zombies, I would assume Batters merely toss them away (to prevent them from touching and infecting the Batter / the crowd), rather than outright killing them, as the Spearer and Grenader do?

- Regarding Neutrals, Batters could be used to get Neutrals out of areas that they can't get out of on their own. Sure, you'd still have to get a worker lemming into the same area as the Neutrals - and that worker lemming could also build them out, use destructive skills to carve a tunnel for them, etc. But due to the power and versatility of the Builder, level designers often don't want to provide too many of those. And then, if the Neutrals are stuck in a steel pit or similar, a Batter might be the only way to get them moving.



The more I think about this, the more I like the idea of the Batter! :thumbsup: In my view, the above examples (a non-exhaustive list) show that the Batter would be far more versatile and useful in SuperLemmix than it already is in Lix!
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

WillLem

#10
Quote from: Strato Incendus on August 02, 2023, 12:17:13 PM
- I think a flung lemming should behave like a Jumper (except the arc would be much larger, probably closer to that of a Spearer and Grenader). Therefore, the flung lemming should be able to hold on to vertical walls (if he is a Climber and/or Slider, with Climber taking precedent over Slider, as usual); and he should be able to transition into a Shimmier if close enough to a ceiling.

Yes, exactly. As I imagine in, the "flung" lemming will be called a "Baller" (as in, Bat and Ball!), and will roll up into a ball, like this:



We then want them to remain like this, bouncing around until they meet something they can interact with, like a Climbable/Shimmyable wall or a platform they can walk on. I don't think there's any need for a "dazed lem" or "gradually standing up" animation - they can immediately begin performing the relevant action.

The difficulty will be in creating a truly "reactive" arc - for example, if a Baller hits a ceiling, they should bounce off the ceiling, but transitioning straight to faller (like a Jumper) doesn't feel quite right. Instead, the resulting "away from ceiling" arc should be equal and opposite to the "towards ceiling" arc. Walls can currently do this by simply turning the Jumper/Baller, but we don't have a an equivalent action for ceilings (yet).

The easiest thing might be to have the Baller continue infinitely along a straight line until they contact something - this way, it's always angles rather than a parabolic arc. It'd look pretty wild, though, and probably not be as predictable as an arc. Just an idea.

Quote from: Strato Incendus on August 02, 2023, 12:17:13 PM
- Should Swimmers be able to use the Batter while in water? Might be another way to get a fellow Swimmer out of a water pond, if the walls are too high.

Yes, good idea. And another reason to try again with the Water Blocker.

Quote from: Strato Incendus on August 02, 2023, 12:17:13 PM
- Crucially, I think Batters should be able to free Blockers, since they remove the ground under the Blocker's feet

Yes, definitely.

Quote from: Strato Incendus on August 02, 2023, 12:17:13 PM
- Regarding Zombies, I would assume Batters merely toss them away (to prevent them from touching and infecting the Batter / the crowd), rather than outright killing them, as the Spearer and Grenader do?

This is a tough one. We could potentially make it another way to kill zombies - in a "90's Peter Jackson movie" kind of way, it's reasonable to think that a zombie lemming might explode if hit with a bat, since they're meant to be partially decomposed. Then again, keeping the zombies in the level but moving them elsewhere could make for better gameplay.

Open to suggestions on this one.

Strato Incendus

Ah, good idea! :D The "Baller" (looks pretty much like the L2 Roller skill) is actually also what the Jumper does in Lix when combined with the Runner.

So even though the Runner is currently no longer being considered for SuperLemmix, if it ever comes up again, perhaps the Baller state could be useful there, too.
Especially when you would already need to create a reactive arc for the Batter skill anyway, then that might reduce the extra effort that the Runner would otherwise require.

Don't worry, I'm not trying to get too far ahead of ourselves here. :evil: For the same reasons described above, it might well turn out that the Batter will be similarly difficult to implement as the Runner / Hoverboarder, and that therefore, it might not make it into SuperLemmix in the end. Just because Lix has both Batter and Runner, that doesn't mean it will be easy to code them into SuperLemmix, too.

That said, the interactions listed in my previous post seem to suggest that the Batter would be a much more interactive and versatile skill than the Runner, which mainly just "makes lemmings faster" and "increases jumps". So hopefully, that will make the Batter more worthy of inclusion, even if it does come with some similar challenges as the Runner.
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

WillLem

Speaking of the Lix Batter - Simon, can you offer any insight into how this works?

The way I'm thinking of approach it is to create a Batter map (similar to Blocker/Zombie map). Then, the trigger area appears during the frames where the bat is being swung; any lems encountering this trigger react by becoming Ballers.

Perhaps there's a better way, though? As I understand it, physics map can be a bit more taxing on resources...?

Quote from: Strato Incendus on August 02, 2023, 08:15:55 PM
That said, the interactions listed in my previous post seem to suggest that the Batter would be a much more interactive and versatile skill than the Runner ... So hopefully, that will make the Batter more worthy of inclusion, even if it does come with some similar challenges as the Runner.

Yes, I imagine so. The Batter is very unique and versatile, it will definitely be worth the effort.

Simon

#13
Quote from: WillLem on August 02, 2023, 10:27:07 PM
Lix Batter
how this works?

batter.d of the current 0.10.12.

Once during the batter animation, the batter will loop through all other lix during his own physics update (perform) and makes all decisions.

Quote
physics map can be a bit more taxing on resources...?

Batting will happen rarely: only during a single physics update per batter assignment. Unlike steel or blocker fields, it's not a persistent effect. It makes sense to centralize the effort with the batter, then nobody else has to bother continuously about batting.

Even if you'd be able to magically query a physics map for free: Should every other lemming pay some runtime to decide something (based on the result of the free query) during every physics update? Well, even in Lix, I spend this runtime. Batters only write new fling speeds into the other lix, and every lix still checks herself every physics update for new fling speeds. It's a roundabout complication mainly to make multiplayer fair.

Lix doesn't write blocker fields into the physics map either, and instead has each blocker loop over all other lix during the blocker's physics update. Here I'm not sure what's better. I haven't measured performance with hundreds of blockers yet. At least blockers are usually few, thus it has never been a practical problem.

Physics maps have inherent performance problems, it's right that you're concerned. They're large chunks of RAM that you have to prod all across the board. Modern CPUs are fast at computation, but RAM is comparatively slow to access and CPU caches are limited. CPUs like computations with readily available numbers, not waiting on a piece of uncached RAM.

-- Simon

WillLem

Quote from: Simon on August 02, 2023, 11:02:15 PM
batter.d of the current 0.10.12.

Haha "flingEverybody" :crylaugh:

Quote from: Simon on August 02, 2023, 11:02:15 PM
Once during the batter animation, the batter will loop through all other lix during his own physics update (perform) and makes all decisions.

OK, so it seems that it's as I thought with regards to drawing a map for the Batter - not worth it when it's only a momentary action. I need, then, some way of detecting nearby lems in relation to the batter. The other way around seems like it would be easier, but then all lems would always be checking for Batters, which we agree is not the most economical way to do it.




Meanwhile, we have a suggestion from Floyd Brannon for a ranged Batter. This would be some form of projectile which has the same effect that a Batter has, but from a distance:

Quote from: Floyd Brannon on August 04, 2023, 03:41:30 AM
Lemmings 2 has the bazooka which can actually hit other lemmings and send them flying. And killing zombies would be a small leap for that. This would just perform the batter operation from a distance and kill zombies.

Would people prefer this to a regular Batter? Or, is there enough reason to have both?