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

PistonVSAirBlocks #885

Closed TjRaffert closed 1 year ago

TjRaffert commented 1 year ago

Create a test for counting air blocks and pistons.

TjRaffert commented 1 year ago

I committed the files to run this.

schrum2 commented 1 year ago

Currently testing on my machine. It runs at least

schrum2 commented 1 year ago

The AIR vs Piston binning scheme always assigns every shape to the bin for 0 air blocks. This is because the list of blocks sent to the NumAirFitness class doesn't actually include AIR blocks, since AIR is assumed to occupy the space of the world anyway. This means that NumAirFitness cannot simply extend TypeCountFitness, and instead needs to be written to extend MinecraftFitnessFunction directly.

What you should do is count the total number of blocks in the shape (none should be AIR), and then subtract that amount from the max possible volume of the shape (since all the other spots are assumed to contain air).

schrum2 commented 1 year ago

I'm running this at home, combined with SBX. It seems to work now, but we'll need to wait and see if it produces flying machines.

schrum2 commented 1 year ago

Here is what the final archive looks like for the Air vs Piston run with SBX. It gets decent coverage on the air block axis, not not along the piston axis. We discussed that it makes some amount of sense that there is not good coverage along the piston axis since there are so many block possibilities that turning them all to pistons is difficult.

BigMinecraft-AirVSPistonSBX0_MAPElites

This run also did not produce any flying machines, which isn't too weird for 5x5x5 shapes, but is disappointing.

schrum2 commented 1 year ago

This issue is done, but is transitioning into a new issue at #894