breve-Monsters Copyright (c) 2010 The University of Texas at Austin All rights reserved. Refer to LICENSE.txt for detailed license information. WEBPAGE http://nn.cs.utexas.edu/?brevemonsters ABOUT breve-Monsters is a collection of software for simulating several 3D video games featuring NPC monsters, as well as a collection of algorithms for evolving neural network controllers for the monsters in these games. The code was developed by Jacob Schrum (schrum2@cs.utexas.edu). The primary method used for evolving controllers is NSGA-II, a multiobjective evolutionary algorithm, details about which can be found in: K. Deb, S. Agrawal, A. Pratab, and T. Meyarivan, "A fast elitist nondominated sorting genetic algorithm for multi-objective optimization: NSGA-II". PPSN VI, pp. 849-858, 2000. NSGA-II is enhanced to improve performance in agent control problems, such as the included video games, via methods described in the several papers available at: http://nn.cs.utexas.edu/?brevemonsters This software package is called "breve-Monsters" because it runs using the multi-agent simulation environment "breve", developed by Jon Klein, and described in detail in: Klein, J. 2003. BREVE: a 3D environment for the simulation of decentralized systems and artificial life. In ALIFE VIII, 329-334. Cambridge, MA, USA: MIT Press. The breve simulation environment is required to run this source code, and should therefore be downloaded from: http://www.spiderland.org/ In particular, this software was developed for use with "breve CLI 2.7.2 for Linux". While this code may work with other versions of breve, such functionality is not guaranteed. For those new to breve, it is recommended that you attempt executing some of the basic examples provided with breve before attempting to run this software package. For further instructions on how to run this code, see TUTORIAL.txt. DIRECTORY CONTENTS Agent.tz - Agent abstraction BehaviorState.tz - Used by the Behavioral Diversity method of fitness-based shaping CommandLineHandler.tz - Handles commandline parameters Constants.tz - Simulation constants Environment.tz - Model of environment EvolutionMode.tz - Stores bundles of commandline parameter settings to make simulation execution simpler FreeNetGa.tz - Handles genetic operations on neural networks FreeNetwork.tz - Neural networks with arbitrary topologies GraphicsHandler.tz - Handles graphics HUD.tz - Used for picture within picture functionality (see NetViewer.tz) LICENSE.txt - Licensing information for this software Log.tz - Logs data during simulation execution Math3D.tz - Helper functions ModeArbitrator.tz - Used by multi-modal networks Monster.tz - Monster/NPC abstraction NSGA2.tz - Multiobjective Evolutionary Algorithm NetIO.tz - Reads and writes networks from/to file NetViewer.tz - Allows network visualization Player.tz - Abstraction for human players and static strategy bots README.txt - This file Selection.tz - Abstraction for selection methods Sensor.tz - Monster input sensor Simulation.tz - Control class for simulation. Run this file with breve. TUTORIAL.txt - Help getting started as well as examples for recreating results from previous papers Triangulate.tz - Helper functions UnitTest.tz - Verifies correct functioning of certain key components ZScoresGA.tz - Weighted-sum-based selection method. Only works with Battle Domain. FOR MORE INFORMATION CONTACT schrum2@cs.utexas.edu