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

Evolve Paver/Road Builder #873

Closed schrum2 closed 1 year ago

schrum2 commented 1 year ago

With the success of #863 I think we can do more complicated things with Water/Lava machines now. It would be nice to have flying machines that pour water and lava around them to build up cobblestone structures.

I'm not sure whether the best way to do this would focus on the fitness function or the behavior characterization, or both. The previous fitness function encourages more cobblestone, and in theory a machine that moved around would be able to put cobblestone in more areas and get a higher fitness. Maybe we just need to run more experiments, possibly with longer evaluation times, to get a sense for what our baseline performance is.

Eventually, we may want to specifically reward cobblestone that is farther away from the starting point (higher distance is more fitness) or create a new behavior characterization that distinguishes shapes that create cobblestone in different areas.

JoannaBlatt commented 1 year ago

https://www.youtube.com/watch?v=gA5ZTLjZlC8&t=53s a starting idea for paver.

JoannaBlatt commented 1 year ago

It can work with just what looks like sticky pistons, slime, observers, redstones, lava, water, and dispensers. It is incredibly complex since pistons and observers have to go off with specific timing to keep the lava and water. I started to try and make a single row of the machine but it was taking forever so I left it for now.

JoannaBlatt commented 1 year ago

Would also need to create dispensers with buckets in them

schrum2 commented 1 year ago

The requirement for dispensers with buckets seems to make this infeasible for the EvoCraft API, and Lava/Water by itself cannot be moved by pistons, so I think this issue is a dead end.