[SUG][PLAYER/SITE] Solvability verification

Started by namida, April 04, 2019, 09:53:27 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

namida

I noticed a recent discussion, and a few other historical cases, where creators have carelessly released impossible levels. On the flipside, there have been cases where levels have been suspected of being impossible, but the creator insists they're not - and they in fact are possible.

I'm thinking - could we implement a way to verify the solvability of a pack, without requiring an end-user to run a replay manually (which may spoil the solution, and even if done via the mass-replay checker can interfere with the completion ticks; not to mention a creator may want to be able to prove their levels are solvable without actually releasing replays)?

My thoughts here is to have some kind of formula that creates a level hash from the details that are relevant to solving it - the physics map, skillset, save requirement, etc. This hash would be accessible at any time. Then, some kind of other value derived from this hash, via a formula that's nontrivial to follow by hand, is provided only upon solving the level. The website would in turn have a calculator that someone can enter the hash and derived value into, and the site will confirm "yes, the hash is valid, someone has managed to solve this level". Maybe rather than doing this on a per-level basis, just do it on the scale of the entire pack.

Of course, this wouldn't be foolproof - someone who really wanted to create impossible levels just to troll could simply compile the code or figure out how to calculate the derived value themself - but it might serve as a line of defence against people who don't do proper testing, as well as a reassurance if someone suspects an impossible level - they can use this calculator to confirm the levels are indeed solvable.

Perhaps the site doesn't need to be involved at all - the derived value could be inserted into the pack's info.nxmi or levels.nxmi file and NeoLemmix itself confirms "yes, this pack has been proven solvable". If the pack is modified in a way that affects solvability - ie: not just a change in titles or ordering etc, or even adding decorative items that don't affect the physics in any way - the code would no longer be valid, so it would also catch cases where an initially-possible level was rendered impossible via an untested backroute fix.

Maybe some detail should also be included in these values of which NeoLemmix version was used. Ideally, versions that have identical physics (and simply differ in UI / etc) would pass each other's tests.

Maybe this is unneccessary, and simply reminding people "always test your packs" is the better solution here. This is just an idea I got and figured it wouldn't hurt to write down.
My 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)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

IchoTolot

I think maybe a result textfile from the mass replay checker in which every level is solved is enough. ???   Of course with included info about NL and Pack version.

We've also got the green markers in the level select screen. Maybe a screenshot including a green mark on the pack is also a good indicator.