Skip to content

MMLV dataset extraction with A* traversability option on complete levels #235

Description

@schrum2

Currently, the A* filter for MMLV levels is problematic because the start and end points are often poorly placed. They are heuristically placed within each scene. Here is an idea:

When parsing the individual level scenes from the complete ASCII levels, let's first use the start/end locations present in the levels and then compute an A* path between them across the complete level. For levels that are beatable in this way, this ensures that the path goes through each scene in a reasonable way.

First, this gives us a new option for filtering levels: if the overall level is not beatable, we can filter out all scenes from it. Although this is an option, I'm not sure if it is a good one. MMLV levels might be so complex that we can hardly beat any of them, so we'll need to check of this makes sense first.

However, assuming that a fair number of levels are beatable, we can use this path information when creating the individual level scenes. Place start/exit tiles in every scene based on how the path goes through the scene. Or, maybe we just mark the scene as traversable in the metadata, which means we don't even need to run A* again on the individual scenes (we trust they are traversable, as long as the path goes through them at all ... some MMLV scenes might not even contain the solution path).

This provides an alternative approach to filtering scenes based on traversability, and will also help us find complete levels that are untraversable, even though they probably should be ... we might be able to tweak the tileset or A* state transitions slightly to make levels beatable after all.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions