Skip to content

Releases: schrum2/MM-NEAT

Flying Machines in Minecraft

Choose a tag to compare

@schrum2 schrum2 released this 06 Sep 16:21

This release incorporates work evolving flying machines in Minecraft using the EvoCraft API. This work resulted in a 2023 paper at GECCO. Some additional Minecraft work beyond the results of the GECCO paper are also included in the release.

Some more substantial changes were also made that break some backwards compatibility, but should make the code easier to use. All code related to DL4J and GVG-AI have been removed. None of this code was part of any published papers, but a few cool prototypes and simple demos were lost. For example, innovation engines (evolving picbreeder images and assessing them with a convolutional neural network) are no longer supported, and the interactive evolution of GVG-AI levels is also no longer possible.

Lode Runner and Mega Man GAN Levels

Choose a tag to compare

@schrum2 schrum2 released this 10 Sep 17:33

This release incorporates all of the work done by my SCOPE 2020 research students, which will serve as the foundation for publications to be released in 2021. The GAN-based approach to game level generation that has already proven successful in Mario and Zelda is extended in this release to generate levels for the games Lode Runner and Mega Man. The Lode Runner levels can be played using packaged source code from here. The Mega Man levels can be played using the third-party program Mega Man Maker.

This release also adds a new approach for using a GAN to generate game levels: CPPNThenDirect2GAN. This approach is a hybrid of the Direct2GAN and CPPN2GAN approaches described previously in this publication. Also, as was done for Mario and Zelda in this publication, this release includes the ability to interactively evolve levels for Lode Runner and Mega Man.

Zelda and Mario GAN Evolution

Choose a tag to compare

@schrum2 schrum2 released this 13 Jan 05:08
83a9d1e

This release allows for use of a Generative Adversarial Network (GAN) trained in Python to be used to generate both Mario levels and Zelda levels. A lot of the Mario GAN evolution is adapted from a repository I worked on with attendees of the 2017 Dagstuhl seminar on AI and Games. That repo is here:
https://github.com/TheHedgeify/DagstuhlGAN
However, some extensions to that work which began in this MM-NEAT repository are also being extended further in this other repo of mine derived from MM-NEAT:
https://github.com/schrum2/GameGAN

However, the main contributions to this MM-NEAT repo in this release are the ability to both create rooms for a dungeon crawler game based on The Legend of Zelda using a GAN, and to combine those rooms into a dungeon using a generative graph grammar. The resulting dungeons can be played with a Rogue-like game engine. We also ran a human subject study evaluating dungeons generated by the system ... publication forthcoming. However, all of the batch files used to launch the experiments in the study are in:
batch/Experiments-2019-ZeldaGAN

To experience what the participants did, launch Zelda_Study.bat with a numeric command line parameter from 0 to 29 inclusive, such as:
Zelda_Study.bat 5

SCOPE 2018 Update

Choose a tag to compare

@schrum2 schrum2 released this 24 Aug 05:49
13f90eb

Every summer, a team of undergraduates enhance this code as part of the Southwestern University SCOPE program (https://www.southwestern.edu/academics/scope-summer-research/). This release incorporates all of their work, which includes the following.

  1. MM-NEAT can now evolve agents in Unreal Tournament 2004 using Pogamut. This feature was present in the past, but buggy. Not only has this functionality been restored, but related code has been incorporated. In particular, my own work on UT^2 (http://nn.cs.utexas.edu/?ut2), which won the 2012 BotPrize competition, has been incorporated. I also incorporated MirrorBot, the other bot that also won the Grand Prize that year.

  2. The latest version of the Ms. Pac-Man vs Ghosts competition (http://www.pacmanvghosts.co.uk/) incorporates partial observability, and now this version of the code is incorporated with MM-NEAT. My previous dissertation research exhibited breakthrough results in Ms. Pac-Man, but was not involved in any of the official competitions. However, this latest version of MM-NEAT was used to evolve a Ms. Pac-Man agent that just won first place in the Ms. Pac-Man track of the new competition (CIG 2018, agent Squillyprice01: http://www.pacmanvghosts.co.uk/results.html). Although MM-NEAT was used to evolve this agent, a stripped down version of the code that is only for running the agent is in a separate project: https://github.com/schrum2/MsPacManEntry

  3. Several methods for defining more complex custom Neural Network architectures for HyperNEAT have been defined.

  4. I have incorporated all major functionality from the Mario GAN research that I conducted with several colleagues around the world (https://github.com/TheHedgeify/DagstuhlGAN). This research uses a Generative Adversarial Network defined in Python using PyTorch to generate levels for the classic game of Mario that are similar to levels from the original game. Additionally, because the inputs to the GAN are vectors of real numbers, these can be evolved to maximize arbitrary fitness functions. MM-NEAT allows you to evolve levels that an A* agent can beat, but finds difficult (in terms of number of jumps), just like in the original code. However, MM-NEAT adds an ability to evolve levels with the GAN using an interactive evolution interface.

Please contact me if you have any questions about how to take advantage of any of these new features.

Maven and added Tetris functionality

Choose a tag to compare

@schrum2 schrum2 released this 03 Dec 02:42
1d397bb

The biggest change in this version is full integration with Maven, mostly done to incorporate libraries from DL4J. This version also has code for new Tetris experiments using CNN architectures in HyperNEAT, and various forms of interactive evolution (pictures, animations, 3D shapes, 3D animations, sounds)