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

Save Whole Minecraft Archive at the End #911

Closed schrum2 closed 1 year ago

schrum2 commented 1 year ago

Somewhere in the code is a bit that creates and saves Minecraft block lists to the directory finalFlyingMachines. This code specifically waits until the end of evolution, scans the whole archive, but then ONLY saves elites that register as flying machines. It is very useful that the machines are saved as block lists, since these are easier to work with and more human readable than the xml genotype files that are normally saves in the archive.

Unfortunately, if we are not using the change center of mass fitness, nothing like this gets saved. There needs to be a command line parameter "saveWholeMinecraftArchiveAtEnd" that, if true, saves every shape in the final archive to a "finalArchiveOfShapes" directory no matter what its fitness score is. This would basically be saving similar information to what is in the finalFlyingMachines directory, except that it would save all shapes for any fitness function.

This could help us with some of the new fitness functions we don't understand too well yet.

schrum2 commented 1 year ago

I just gave a starting point for this issue in the last commit. Merge my branch and then start working on this.

TjRaffert commented 1 year ago

This is tested and works the parameter is set to true unless changed.