schrum2 / MM-NEAT

Modular Multiobjective (Hyper) Neuro-Evolution of Augmenting Topologies + MAP-Elites: Java code for evolving intelligent agents in Ms. Pac-Man, Tetris, and more, as well as code for Procedural Content Generation in Mario, Zelda, Minecraft, and more!
http://people.southwestern.edu/~schrum2/re/mm-neat.php
Other
50 stars 20 forks source link

Convert .mmlv (and VGLC) to JSON #502

Closed cappsb closed 4 years ago

cappsb commented 4 years ago

Scan the .mmlv file for d(x,y) and i(x,y) (and maybe e(x,y) as well) to map to the integer format matching VGLC

Might want to consider doing .mmlv ---> List<List> just like VGLC, then create a method to convert List<List> into JSON from there.

schrum2 commented 4 years ago

I think that getting things into json format is all that matters. It makes sense to read the VGLC format, but there is not much benefit to writing into the VGLC format

schrum2 commented 4 years ago

Some more work needed to convert general MMLV levels to json. We need interesting test cases. Try converting all of the MMM provided example levels one by one and put pictures in this thread demonstrating how it goes.

In particular, convert the MMLV examples levels to json, and then back into the limited/simplified MMLV format that we produce from json and play those levels to see what they are like.

schrum2 commented 4 years ago

On my machine, the example MMLV levels are located in C:\MegaManMaker_v1_6_3\ExampleLevels so they are definitely accessible for training. @cappsb

cappsb commented 4 years ago

Awesome! I found mine in my download folder. For whatever reason when I searched one of the example level names it didn't come up earlier today. I must have mistyped it.

schrum2 commented 4 years ago

What is left to do on this issue? Is there a json training set based on either the example levels or online levels yet?

cappsb commented 4 years ago

Unusable Levels: Blast Mans Hot Cave (15): Impossible for current code to interpret what is and is not a H, U, D, Corner Crash Bomb Palace (20): ibid Developer Challenges (24): Teleporters everywhere to get to several bosses (no usable rooms) Double Trouble (25): Boss level (5 sets of two bosses, little to no interesting data) Escape From The Station Puzzle (26): teleporters everywhere. Forgotten Fortress (27): too many ways to go (The level is basically one giant rectangle) Infiltration (30): Too many ways to go and level too ambiguous for current code Obligatory Boss Rush Level (34): Boss level Wind City (38): Level is a giant rectangle Trial of Force (40) Core parts of level are folded in on itself (code can't label if null exists in more than two places) Trio Towers Ascent (41) Giant rectangle Whirlpool Ocean (42) Level winds too much Wily Public Works (44) ibid

Total number of usable levels (that are naturally compatible or that I have been able to repair): 21 Total number of unusable levels: 13

schrum2 commented 4 years ago

So, some levels are unusable only if we insist on distinctly modelling horizontal, corner, vertical segments.

In the long run, it might be possible to use this data somehow, but I agree for now that sticking to a straightforward linear path makes more sense.

Now we just need the json and then the GAN models.