Physics: Digger-digger cancelling, steel sensitivity

Started by Simon, July 31, 2017, 10:57:27 AM

Previous topic - Next topic

0 Members and 3 Guests are viewing this topic.

Proxima

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.

geoo

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.

ccexplore

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.

Simon

#18
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

Simon

#19
Bump for opinions on anti-razor-edge special casing yes/no:

  • 5/9 with antiRazorEdge: Per row, don't delete earth behind steel?
  • Or 5/9 that always deletes the full row of 18 hi-res pixels?
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

Simon

0.7.19 has a 5/9 digger with antiRazorEdge. This is the behavior of the screenshot with the blue arrow.

-- Simon

ccexplore

Quote from: Simon on August 15, 2017, 09:14:19 AMWhen 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?

Simon

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

geoo

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.

Simon

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: geooIf 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

Proxima

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.

Simon

#26
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