Lemmings Forums

Lix => Lix Main => Topic started by: Simon on July 31, 2017, 10:57:27 AM

Title: Physics: Digger-digger cancelling, steel sensitivity
Post by: Simon on July 31, 2017, 10:57:27 AM
Hi,

C++ Lix through 0.7.12: A digger has 16 looping frames. She removes earth 12 frames after assignment during this loop. Earth is removed every (12 + (16*n))-th frame.

Proposed: Remove earth during the final frame of the loop instead. Then, a digger removes earth every (16*n)-th frame. For the animation, I'd design 4 frames of startup that run into the old 16-frame looping animation.

Reason: In 0.7.12, you can cancel an already-working digger by (assigning digger to a walker in the digger pit). The new digger removes earth sooner than the old digger, causing the old digger to fall. That leads to backroutes (http://www.lemmingsforums.net/index.php?topic=3345.msg65147#msg65147).

There are two interesting alternatives to 0.7.12: Give the digger 3 or 4 extra frames before entering the usual cycle. If we give 3 frames, then you can't cancel diggers by assigning new diggers, but you'll have a frame-perfect possibility to have the diggers moving in unison very close to each other. If we give 4 frames instead, we remove this overlapping assignment; the old digger will remove earth sooner than the new digger.

geoo is in favor of this change. This makes the digger even weaker in comparison to the miner, but not by much. It removes a backroutish digger-digger single-cancelling. Double cancelling (both diggers stop working) never happens, either with or without this proposal.

Damage to replays: Lemforum coverage down 236/240 -> 184/240, that's 52 levels to be covered anew. NepsterLix coverage down 107/107 -> 71/107, that's 36 levels.

geoo assumes that most levels' ideas remain intact, a select few need spawn interval 60 -> 64 or a small shift of terrain.

-- Simon
Title: Re: Physics: Prevent digger-digger cancelling?
Post by: Proxima on July 31, 2017, 11:29:31 AM
The alternative solution (not really a backroute since it's harder to spot than the main solution) to It Takes Time to Build is possible without digger-cancelling, it just saves 39 in that case instead of 40.

And that's way too much damage to be considered for a change just to prevent a solution to one level.
Title: Re: Physics: Prevent digger-digger cancelling?
Post by: IchoTolot on July 31, 2017, 11:37:28 AM
I always used digger canceling as a little trick: Get one digger going and then canceling him later with a lem facing the other direction to get a turned around digger. It also can create a ledge to stop climbers.

I think this adds to the design posibilities way more than it beeing a backroute potential at single cases.

Even if some will call the behavior a bit edgy: Don't cut away too many edges from the game or it can become too bland.
Title: Re: Physics: Prevent digger-digger cancelling?
Post by: geoo on July 31, 2017, 11:58:01 AM
The purpose of the change is not just to prevent one single backroute. It's to prevent ugly behaviour that has potential to be exploited. I'd argue this potential is higher than for the builder backstep. And it's not like there's only one level affected by this. Go West is another example in the pack. Whenever you have to contain a crowd and you're short of builders/platformers this can be applicable.
Ideally this change should have come at the same time as all the other physics changes, but alas it went under the radar (we were discussing it at some point when we also changed the miner physics).

I still think now would be the best time to do this, as we don't really want any more physics changes after this release. I'd be happy to help covering levels with replays where they'd break due to the change, and with the minor adjustments some levels might need.

Even if some will call the behavior a bit edgy: Don't cut away too many edges from the game or it can become too bland.
Behaviour should either be easy, or impossible. This is neither. Maybe it's different in NeoLemmix, but this is Lix. If you actually want to make use of it, it's a bit of a pain to pull off because you need the lix to synchronize with the digger lix so that it's where you want it during those three frames where it works. I wouldn't be happy with a level requiring this behaviour. So really all that it leaves is backroute potential.

You can still create a ledge to stop climbers going out of a digger hole with a second digger.
Title: Re: Physics: Prevent digger-digger cancelling?
Post by: Nepster on July 31, 2017, 03:59:07 PM
I agree that the proposed no-cancelling digger is cleaner. But Proxima's concern is valid: Do we want to rerecord 50 lemforum replays just for the sake of this change?

Quote from: IchoTolot
I always used digger canceling as a little trick.
I think this adds to the design posibilities way more than it beeing a backroute potential at single cases.
How many NeoLemmix-levels do you know that use this trick? I cannot name more than a hand full of them. So given the huge amount of NeoLemmix levels in total, level designers this don't seem to be overly fond of this trick.
On the other hand I agree with geoo, that this trick is at least as often used in backroutes as it is in intended solutions.

Quote from: geoo
Behaviour should either be easy, or impossible. This is neither. Maybe it's different in NeoLemmix, but this is Lix.
This cancelling is far easier in NeoLemmix, because the terrain removal frame comes much earlier in the cycle than it does in Lix. So one has to be rather unlucky to fail cancelling in NeoLemmix (though the lemming still has to be positioned correctly within 3 pixels).

Quote from: geoo
Go West is another example in the pack.
Actually all solutions to Go West that I am aware of use this cancelling trick. Without this trick I can still solve the level, if you give me 3 of each destructive skill, but it becomes extremely precise (especially given the fixed SI). I have no idea how to solve it with 2 of each skills, at least without lots of trial and error.
Title: Re: Physics: Prevent digger-digger cancelling?
Post by: IchoTolot on July 31, 2017, 04:31:22 PM
How many NeoLemmix-levels do you know that use this trick? I cannot name more than a hand full of them. So given the huge amount of NeoLemmix levels in total, level designers this don't seem to be overly fond of this trick.

That's not the point. A trick doesn't need to be used in many levels to be good. But if you remove every trick that is only covered in a few levels you are just raising blandness. Culling everything what is not used very often can be a very bad thing.

This cancelling is far easier in NeoLemmix, because the terrain removal frame comes much earlier in the cycle than it does in Lix. So one has to be rather unlucky to fail cancelling in NeoLemmix (though the lemming still has to be positioned correctly within 3 pixels).

I have to admit, I did not counted in that it is easy to pull off in NL and difficult to pull off in Lix which makes this trick less viable and more annoying and I can understand the reason on why to remove it and this seems to be indeed the main point. In fact your post made me realized that as I did not fully understand the technical stuff in the first post, although I did not wanted to invest much time to think myself into the inner workings there.
To be honest all this mumbling about 12+X frames, animation loops and stuff in the first post I just skipped and focused on the thing that's pointed out in the title.
The first post should rather be like: Prevent digger-digger cancelling, as it is very hard to pull off in lix and introduces backroutes. Then point out the inner workings in detail for the people who want to actively think them out and propose an exact solution.
For the general players I think the fact what is up for culling (digger-digger canceling) and the general reason why (backroutes and it's hard to pull of) is what counts the most and not the exact code details.
Title: Re: Physics: Prevent digger-digger cancelling?
Post by: Simon on July 31, 2017, 11:43:02 PM
Yeah, in 0.7.12, digger-digger cancelling requires an assignment during 3/16 of the old digger's frames. There's a chance that a passing walker, during his 9-11 frames of overlap with the old digger, won't be in the correct spot to cancel. I accept that the first post didn't describe this fiddliness.

With geoo offering to work on re-coverage, I'm leaning to accept the proposal. The main counter-argument was the workload.

Another idea would be to make digger-digger cancelling easier instead of impossible, but I'm not leaning as strongly towards that. I'll leave it open for 1-2 days.



I'm also considering to make the digger more lenient with steel. The mask is 9 lo-res pixels wide. 0.7.12 cancels when one of the 7 innermost lo-res pixels is steel. In particular, these diggers hits steel and won't remove anything:

(http://www.lixgame.com/etc/digger-cancels-easily.png)

Proposal for steel sensitivity: I'm considering to loosen the steel check. Instead of the 7 innermost lo-res pixels, check only the 5 innermost for steel.

Or maybe even the 3 innermost only, that would be closest to 0.6 physics. But Proxima suggests that would be too lenient, intuitively expecting the 3-innermost-checking digger to choke on the steel:

(http://www.lixgame.com/etc/digger-steel-3-5.png)

No replays would break from the more lenient steel check: I tested with both 5-innermost and 3-innermost. If there are possible backroutes in levels from this lenience, those backroutes would have already been possible in 0.6, which effectively had a 3-innermost steel check as long as all steel was to one side of the digger.

-- Simon
Title: Re: Physics: Prevent digger-digger cancelling?
Post by: ccexplore on August 01, 2017, 02:37:48 AM
In Lemmings, digger canceling is something that you can probably rationalize once you see it happening and think carefully about the mechanics.  It is probably not something a yet-unaware user would intuitively expect to happen, though the same could probably be said of a lot of other edge-case behaviors.  It doesn't help that DOS version's mechanics are much more limited in how canceling can happen (though this doesn't apply to NeoLemmix?).  The analogy may also be slightly broken for Lix since I believe each dig stroke in Lix removes the equivalent of 2 dig-strokes in Lemmings and NeoLemmix, so maybe there is more of a case to expect the canceling behavior if it hadn't been so fiddly to achieve.

It's definitely not ideal to have it possible but troublesome to achieve due to timing.  It'd be helpful to get a sense of how many current levels explicitly rely on it.  It wouldn't be the first time we remove an "interesting" behavior in Lix that had actually been relatively well-known and were probably already in use by multiple levels, but overall still deemed not worth the problems the behavior brings to places where you don't want it exploited.  Basher staircase specifically comes to mind.

=================

Proposal for steel sensitivity: I'm considering to loosen the steel check. Instead of the 7 innermost lo-res pixels, check only the 5 innermost for steel.

Or maybe even the 3 innermost only, that would be closest to 0.6 physics.

Perhaps there are some details I'm not aware of, but seems like maybe we'd need to discuss or at least look at, the cases where there are steel on both sides, but terrain is still barely wide enough to not prevent digging?  All the pictures right now only have steel on one side.

Unless the level author was specifically forcing precision (which will likely be frowned upon anyway), I guess those would be cases where player is not supposed to dig through but instead use an imploder or similar.  They can likely be fixed by adjusting the steel positioning to further narrow the terrain portion.  So maybe not a big deal per se, but I want to bring it up since it isn't really being captured by the above post.

I think I do see the general idea behind making it more lenient wrt steel.  Namely for cases where digger absolutely must not leave any terrain adjacent to the steel (perhaps in order to make a climbable cliff), so you are unfortunately forced to be somewhat precise in where you start digging, and we want to make things a little more lenient for that case.  It is hard to tell though how much leniency is "good enough" for most.  Of course it also depends on how much this situation may come up in multiplayer, where framestepping is unavailable as a corrective measure compared to singleplayer.
Title: Re: Physics: Prevent digger-digger cancelling?
Post by: Proxima on August 01, 2017, 01:12:04 PM
It'd be helpful to get a sense of how many current levels explicitly rely on it.
Pretty sure there aren't any, in the levels I've solved, which is nearly all of the first 5 ranks.

Quote
Perhaps there are some details I'm not aware of, but seems like maybe we'd need to discuss or at least look at, the cases where there are steel on both sides, but terrain is still barely wide enough to not prevent digging?  All the pictures right now only have steel on one side.
I've attached an image from the latest version of Cold Irons Bound. Both the digger and basher have to get between steel blocks that are 16 pixels apart -- a common situation given that Lix encourages designers to use multiples of 8, 16, 32. For the digger, there is only a single pixel where he can dig and get through. For the basher it's even worse -- there is only a single pixel, and you can't necessarily reach it because the digger goes down 2 at a time. This means, if the player starts the digger at the wrong height, they may give up without realising there is a correct height that will allow the basher to get through.

I propose that we adopt the 5-innermost digger (so, if I've understood rightly, in this situation the digger would have 3 positions he could start from) and also relax checks for the basher, so that it doesn't feel like the basher is much stricter than the digger.
Title: Re: Physics: Prevent digger-digger cancelling?
Post by: Simon on August 01, 2017, 02:43:52 PM
I'd be happy with the 5-innermost digger. That's 1 lo-res pixel = 2 hi-res pixels more lenient to either side.

Basher: I understand your idea how, no matter the digger's vertical offset, a basher shall fit through a 16-pixel-high earth corridor with steel above and below. The digger removes 2 lo-res = 4 hi-res rows at once.

0.7.12: The topmost 2/18 basher rows ignore steel, leaving 16 sensitive rows.

Concrete idea for Proxima's proposal: Topmost 5/18 basher rows ignore steel, leaving 13 sensitive rows.

It's a sizeable cut on steel sensitivity. How do others feel?

Alternative idea: Instead of introducing the lenience all at the top, introduce some of it at the bottom. But then a basher could gain height. The basher can't gain height in 0.7.12, I'd prefer to keep this invariant.

Flying Squirrels (my LF contest 11 entry, picture in this post) becomes a tad more precise with a lenient basher, I've put a steel block above the ground to catch bashers of variable height. But that's not a main concern -- the level is possible either way.

(http://www.lixgame.com/etc/flyingsquirrels-steel.png)

-- Simon
Title: Re: Physics: Prevent digger-digger cancelling?
Post by: ccexplore on August 02, 2017, 02:47:35 AM
It would seem logical that if we commit to increasing steel leniency for diggers, we should do the same for bashers as well.  Sounds reasonable to keep the leniency only at the top to avoid introducing a brand-new height-gaining behavior; doing so also IMHO "looks reasonable" with the bash stroke animation currently going from bottom to top.

It is interesting that some levels could end up requiring more precision due to increased steel leniency. (I imagine this is also theoretically possible with digger leniency and not just basher?)  I guess as long as those cases remain rare.
Title: Re: Physics: Prevent digger-digger cancelling?
Post by: geoo on August 02, 2017, 12:11:31 PM
I don't see a big issue with the previous (less lenient) basher steel check. Level designers shouldn't (and as far as I'm aware, currently don't) require the player to go through a 16 px tunnel with a basher unless the basher starts on a wide platform which is already in the desired vertical position (and thus no precision is involved).
Unless a level author wants to seal a basher tunnel with a cuber, I don't even see much of a reason to use such tunnels. In the rare instances where a level does require such a tunnel, I think ensuring that there's no reason to try to enter it in a complicated way should be sufficient.

At the same time, I don't see any drawbacks from making the basher's steel check more lenient. So overall I'm indifferent to the change.
Title: Re: Physics: Prevent digger-digger cancelling?
Post by: Nepster on August 02, 2017, 03:46:23 PM
While I like the slightly relaxed steel checks for diggers, I much prefer the old basher steel checks. The reason is, that the new steel checks break every single one-way gadget! Previously one could not get past in the wrong direction, even by placing one or two builder bricks in front and then bashing. Now this is possible! So if we keep the new basher steel checks, I would have to modify all my one-way gadgets.
Title: Re: Physics: Digger-digger cancelling, steel sensitivity
Post by: Simon on August 08, 2017, 03:29:12 PM
0.7.15 had: Digger-digger-cancelling prevented (they dig later in their cycle). Basher sensitivity is bottom 8/9 hi-res pixels. Digger sensitivity is middle 5/9 lo-res pixels.

Quote
It would seem logical that if we commit to increasing steel leniency for diggers, we should do the same for bashers as well.

History is a wild back-and-forth. :lix-laugh: In 2006 to 2009, the L++ ground removers had 100 % steel sensitivity. That was straightforward. Pieces were shaped in multiples of 25 hi-res pixels. You can see the relics of this: matt/10tons.T and simon/water.W are 50 pixels long.

Then geoo popularized powers of 2, they became a big hit. The basher was 18 hi-res pixels high because of tradition with Lemmings 1, slightly too much for grid-16. He got his 2 insensitive pixels at the top. Unfortunately I don't remember anything for the digger. The digger hole is 18 hi-res pixels wide, I've likely introduced lenience quickly for the old 100-%-sensitivy diggers.

Late C++ Lix to D Lix 0.6 had a very lenient digger: Digger chokes iff both of the following areas have at least one steel pixel each: The leftmost 12/18 pixels, and the rightmost 12/18 pixels. This is effectively a 3/9 digger because steel on both sides is very rare. We increased the sensitivity it to 7/9 (= choke if central 14/18 hi-res pixels have any steel) for early 0.7, then lessened it to 5/9 for 0.7.15.

Now even considering to move to 9/9. Proxima doesn't like that 5/9 gives more lenience than the basher's 2 pixels. geoo doesn't like how a 16-pixel-fat cuber plugs a digger hole in one shot near steel. A 7/9 or 9/9 digger needs a fatter sprite, and probably blueprints (silhouettes, shadows) before assignment.

Can't blindly copy Neolemmix either, which has a 1/9-digger.

-- Simon
Title: Re: Physics: Digger-digger cancelling, steel sensitivity
Post by: ccexplore on August 10, 2017, 07:22:31 AM
How important (and how common) is the case quoted by Proxima where there are steel on both sides of the tunnel?  The concern for that case is confusing the player on the viability of digging/bashing through the tight space.  Yet that case seems to be specifically exasperated by power-of-2 layout, which makes me wonder if those cases often have an acceptable alternative of just tweaking the steel positioning involved to intentionally break power-of-2, in order to allow the tunnel sizes to better match what the basher/digger takes out?

Then we are left with the case quoted by Simon where there is just steel on one side, but the solution requires you to dig exactly so that there are no leftover bits of terrain still adjacent to the steel after digging.  Those cases do require more precision if there is less leniency, but at the same time, unlike the steel-on-both-sides case, it doesn't seem like the player would get confused about viability of the precision digging.  There is clearly at least one position where digging/bashing can work as desired without also requiring any steel leniency, and so at least in singleplayer, the player can anticipate using precision controls like framestepping to handle that part.  The leniency then becomes more about convenience, or if the setup also appears often enough in multiplayer that we can't just fall back to framestepping.
Title: Re: Physics: Digger-digger cancelling, steel sensitivity
Post by: Proxima on August 10, 2017, 04:45:57 PM
So we've had a lot of discussion over this in chat recently, and it comes down to this: All possible options have advantages and disadvantages. The final decision will depend on which of these we feel strongly about, and which we're willing to let pass.

16-wide terrain between steel: This is rare in currently existing levels. (The level I cited, Cold Irons Bound, is one we've decided to remove -- for reasons completely unrelated to the digger/steel issue; it just happened to be the weakest of a group of levels we were deciding between.) Nevertheless, I think it's important to consider what possibilities we are giving to, and taking away from, future level designers. Lix strongly encourages use of 16-wide blocks; ccexplore asks "couldn't we just violate the grid?" but (1) this would force ugliness in levels using brick or tile terrain that emphasises the separate blocks; (2) you then can't use the editor's snap-to-grid function, so placing the terrain becomes much more of a hassle, and there may be a lot of adjacent terrain that has to be moved slightly off-grid to accommodate.

And then there's my earlier point about consistency between the basher and digger. geoo has pointed out that usually, the basher is walking on ground that determines his starting height, so it doesn't matter how much leniency he has. Still, it would feel like a major inconsistency if the basher can get between steel blocks that are 16 pixels apart, and the digger can't do so at all.

So, for me, this is an absolute deal-breaker that prevents the 9/9 digger being a viable option. Others may feel less strongly about this issue.

This is also a strike against the 7/9 digger, which allows digging down 16-wide terrain between steel, but only with a frame-perfect starting point. New players may miss a few times and give up, not realising there is a viable starting point.

Razor's Edge digger: Simon brought this up in chat. With a 5/9 or lower digger, you can dig down along the edge of 1-wide steel, and remove terrain on the other side. geoo's "construction" set does actually include 1-wide steel, so we can't write this off as "academic, will never meet in practice".

The miner and bomber can also remove terrain on the other side of narrow steel, so it's not necessarily a big problem. However, it feels especially weird with the digger, because you can continue down the edge of 1-wide steel and remove terrain on the other side all the way. Sooner or later, someone will (re)discover this and use it in an intended solution.

Cuber plugs digger hole: This is geoo's objection. With a 7/9 or lower digger, you can dig close in to steel so the steel "covers" part of the dig pit, allowing the remainder to be plugged with a cuber. This is especially bad for the 7/9 digger, because only a single starting pixel allows this trick, making it harder to discover (and, again, sooner or later someone will use it in an intended solution).

I don't think allowing this trick is necessarily bad, but I do agree with the point that it's bad to allow tricks that are inherently precise. (Then again, one is used to cuber placement being precise, for instance when trying to cover a gap with the minimum number of cubers. Levels like Cubic Interpolation give enough leeway that this isn't required, but it's always encouraged, because each cuber kills one lix.)

"Changing of the Guards" scenario: You have to dig close to steel, and some other factor encourages getting as close as possible, even if the level actually gives some leeway so that it's still possible to solve if you start your digger a bit further out.

This seems to be much more common in actual practice than the "steel on both sides" scenario, and it's an argument against the 7/9 and 9/9 diggers. With more leniency, you can start just after the walker lix has crossed from steel onto normal terrain. With less leniency, you have to learn the amount the lix has to walk before she can start digging. This feels like fiddliness we don't want (and note that it has no equivalent for the basher).

In summary, my vote is for the 5/9 digger, but in that case we'd have to accept the "Razor's Edge" problem. I wouldn't mind going with the 7/9 digger if others strongly want to avoid that problem, but I strongly object to 9/9.
Title: Re: Physics: Digger-digger cancelling, steel sensitivity
Post by: geoo on August 10, 2017, 09:46:19 PM
I'm not sure why everyone's thinks I'm vehemently against plugging a digger hole with a single cuber. Having the width of a digger tunnel guaranteed to be the same, always, was just one of the points I brought up in favour of 9/9. A corollary of that is that you can never plug a digger hole (consistency), and that you can't have bumpy digger tunnels allowing to e.g. block climbers from climbing up the tunnel.

I never saw consistency with the basher as a major argument in favour of 7/9, as the miner works differently anyway. It forfeits the advantages of 9/9, while keeping some of its disadvantages (extra precision when digging alongside steel).

I don't see the Razor's Edge digger as more than a theoretical issue against 5/9. If someone exploits that in their intended solution, we might just consider it bad design and discourage it. Anyone can design levels that go against good design guidelines. And this trick also works with miners and bashers btw. I also think it's unlikely to be exploitable for backroutes, it's rare to occur in the first place and then a very specific setup would be needed, and most likely easily avoided by using thicker steel.

Overall I'd support 5/9 or 9/9, but I'd be against 7/9.
Title: Re: Physics: Digger-digger cancelling, steel sensitivity
Post by: ccexplore on August 11, 2017, 04:49:51 AM
The razor edge digger is something I haven't thought about until now, although I was already aware of the analogous case with bombers and had always considered that relatively normal.  (It makes sense to me anyway that at least for bombers, the explosion's shockwave is perfectly capable of penetrating through the steel to destroy stuff on the other side.)  I think I'd have to agree with geoo's opinion on this particular case.  At least it will be kind of obvious since such thin steel is uncommon (I think?) and thus its mere presence would likely signal something unusual solution-wise to many players.
Title: Re: Physics: Digger-digger cancelling, steel sensitivity
Post by: Simon on August 11, 2017, 05:24:24 AM
Thanks for the thorough posts! Proxima has an exhaustive list of possible raw concerns, followed by his judgements. Like geoo and ccx, I'll focus on razor-edge digging here, the critical concern for the candidate 5/9.

Razor-edge digging (image attached) won't produce backroutes: The designer can use slightly thicker steel, as explained by geoo. Vertical 1-lo-res-wide steel is extremely rare. Horizontal 1-lo-res-high steel is more common, it's in some one-way-bashing gadgets.

Razor-edge digging can appear as intended routes, this is Proxima's main concern. We can either shun it, because 5/9 is a strong candidate for other reasons, and the other reasons should carry more weight than razor-edge digging. Or we can embrace razor-edge digging even more?

3/9? We haven't dismissed 3/9 and 1/9 altogether yet. The main drawback of 5/9 is that razor-edge digging is possible, but very precise. If we allow Razors-Edge-digging, 3/9 allows it more clearly. This would even encourage the trick in intended routes.

Proxima didn't like how a 3/9 digger with the 0.6 sprite looks like when it cuts through steel. I wouldn't thin the sprite further, it's already thinner than the tunnel. On the other hand, we dismissed 0.6's (effectively-3/9-if-steel-only-on-one-side) merely for the special casing with steel on both sides. We didn't dismiss it for being too lenient.

If anybody would like to make a case for 3/9 or even 1/9, go ahead. Otherwise, it'll probably be 5/9. The 5/9 digger can then keep its sprite loop, and I've drawn 4 unique frames for before the animation loop.

5/9 with special anti-razor-edging? Whenever the digger doesn't choke on steel, in 0.6 through the current 0.7.17, it removes all earth pixels in the next row. I could add a special case here: Starting from the middle of the row-to-be-removed, working towards either side, remove the earth/air normally pixel-for-pixel -- but stop in a direction once you hit steel. Whatever lies behind the steel isn't removed.

Is it worth to special-case that? No other skill special-cases like that, ccx is right. (Also slightly complicated to program because the game buffers all terrain changes for efficiency. It likes simple commands that do the same all the time. But that's not a concern for game design.)

-- Simon
Title: Re: Physics: Digger-digger cancelling, steel sensitivity
Post by: Simon on August 15, 2017, 09:14:19 AM
Bump for opinions on anti-razor-edge special casing yes/no:
I've test-implemented antiRazorEdge, but haven't released yet. See attached screenshot.

When the digger has passed the steel, its tunnel will widen (blue arrow). This can again be used for solutions. >_>; Where do we draw the line? Allow razor-edging (screenshot in previous post) or forbid razor-edging (screenshot in this post)?

-- Simon
Title: Re: Physics: Digger-digger cancelling, steel sensitivity
Post by: Simon on August 16, 2017, 01:24:37 AM
0.7.19 has a 5/9 digger with antiRazorEdge. This is the behavior of the screenshot with the blue arrow.

-- Simon
Title: Re: Physics: Digger-digger cancelling, steel sensitivity
Post by: ccexplore on August 16, 2017, 02:22:15 AM
When the digger has passed the steel, its tunnel will widen (blue arrow).

But that was going to happen anyway regardless of razor-edging?  If the steel had been 2 pixels thick instead of one, there would be no razor edge to be made but the tunnel would still widen once you're past the steel, I think?
Title: Re: Physics: Digger-digger cancelling, steel sensitivity
Post by: Simon on August 16, 2017, 02:29:05 AM
You're right: With or without diggerAntiRazor, the 5/9 digger removes earth there. I saw that removal as a possible argument to allow razor-edging, but apparently it's not. Thanks for removing doubts!

-- Simon
Title: Re: Physics: Digger-digger cancelling, steel sensitivity
Post by: geoo on August 19, 2017, 11:21:58 AM
I think you should cut the antiRazorEdge behavior. It makes the rules more complicated, and introduces inconsistency with all the other skills: Builder, platformer, basher, miner all allow for razor-edging. So why shouldn't the digger?

And it's highly unlikely to be exploitable unless you specifically design a level for that.
Title: Re: Physics: Digger-digger cancelling, steel sensitivity
Post by: Simon on August 20, 2017, 11:50:37 AM
I see the good argument to allowing razor-edging by comparing all skills, observing how all others razor-edge, even though all others would stop after that cycle.

I deem the precision of allowed razor-edging worse than the rules complexity and code complexity of antiRazorEgde.

But I agree that there is complexity, and I was reluctant at first to test-implement it. It took over an hour to get it right. The code didn't support anything like it before.

I'm rubbing mainly against this:
Quote from: geoo
If someone exploits that in their intended solution, we might just consider it bad design and discourage it.

We can disallow razor-edging with a game rule. Why socially discourage when we could use a hard game rule instead?

Nepster didn't have a strong opinion on the matter, but leaning towards allowing razor-edging, agreeing with geoo's comparison to other skills. I believe Proxima likes antiRazorEdge and plans to post here.

-- Simon
Title: Re: Physics: Digger-digger cancelling, steel sensitivity
Post by: Proxima on August 20, 2017, 02:19:13 PM
Thanks Simon :lix-cool:

There are two reasons why I think it's important to introduce special-casing for the digger, and not important for the basher and miner. (I wouldn't be against special-casing for all three, but that's extra work that we probably don't want.) Firstly, the basher and miner can remove terrain through steel, but not continuously like the 5/9 digger. In one of the topics when namida was considering adding the fencer to NL and asking how it should work, Simon made the point that all non-permanent skills always perform at least one cycle, giving the player confirmation that their action was processed. So it feels right that a basher or miner close to steel should perform one stroke and then be stopped. I wouldn't have a problem with it if a level used that in its intended solution. But the digger can go right down a 1-wide steel wall and strip terrain from the other side all the way. And that feels really, really wrong.

Secondly, it's easy for the player to discover this behaviour (and thus assume it's intended and acceptable), because all you need to set it up is 1-wide steel separating terrain blocks which you can walk over the top of. (Admittedly, these pieces aren't used very often, but they are there, so we can't assume future designers won't use them.) Bashing or mining close to thin steel is something you're less likely to try, because in general it's going to take more effort to get the lix to the right position.

I agree that social discouragement of exploiting game mechanics is unlikely to get anywhere. It got nowhere back in the days of L1 / Lemmix glitches. It's never gotten anywhere in DROD. We can discourage hidden traps by talking about how they disrupt the playing experience. For specific game mechanics, all we can really say is "This mechanic is fiddly and I don't like it", which is too subjective to be worth much. (Simon would have said "it's fiddly and I don't like it" about basher staircases; I liked them being part of the game.)

Finally, I would point out that there are different types of complexity involved. Anti-razor-edging makes the internal rules more complex, but it makes the observed behaviour simpler and more predictable.
Title: Re: Physics: Digger-digger cancelling, steel sensitivity
Post by: Simon on August 21, 2017, 08:40:31 PM
I will keep antiRazor. Even if it has no effect in any level, antiRazor discourages building a level that relies on razor-edging diggers. I'd like to discourage such levels for precision and discoverability.

The continuous razor-edging feels too wrong to me for the 5/9 digger. Even vertically, the Lix digger has always stopped early during his 18x4 clear on hitting steel, clearing fewer than 4 rows. All other skills place their full chunk, the digger never has.

I wouldn't have minded the razor-edging as much for 3/9 and even less for 1/9 because of relaxed precision. I'm not even 100 % sold on it for 5/9. Given how rarely it even applies, if anybody wanted to port Lix and not copy the antiRazorEdging, it would be a perfectly fine mechanics change with me. Levels should carry over fine. To change from razorEdging to antiRazorEdging seems harder.

-- Simon