Skip to content

windo/toribash-evolver

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Toribash move evolver

Organized like this:
src/
 *.lua - scripts to be executed from options/scripts/...
 evolve/
  evolib.lua - general functions for population management, simulation running
  GA.lua     - genetic algorithm main part - run_GA()
  GA_default.lua - default configuration for GA
  show_population.lua - population (or best.txt) viewer and browser

The basic principle is:
 * get default conf from GA_default.lua
 * run_GA(conf) for a while
  * loops over whole population, applying GA when each individual has run
  * produces bestfile (with all new best performers during the run)
  * and population file (with the whole population)
  * suggestion - press 'v' to disable uke, tori and hud + minimize the window
 * run show_population(file) to view the results
  * save any replays or study the moves

Different runs produce different results, you will usually get *something* in
about 10 minutes or so.

Current GA is not so good with long combos, specializes on one move.

TODO ideas:
 * enhance GA
  * more generic move format - do not have a particular number of "moves"
   * individual can do anything at any point possible by game rules
    * but discourage random jolting (try 50 moves currently)
   * chromosomes are blobs of values over time and (adjacent?) joints
    * stretch/shrink/move in time/joints
    * activate/deactivate
    * merge/split
   * can keep current GA on top of that
    * or have more advanced one as well, same file format
	* generate individual from replays?
  * track the "mutability" of values which in turn are mutable
   * allow some parts of genome to become more stable?
   * better evolving of high move-count populations, opening semi-fixed
  * individual ages
   * allow mediocre performers evolve longer (more diversity)
   * discourage everyone becoming the same as elites
  * 
 * GA the GA - run multiple populations in parallel with different params
  * kill population when it ceases to develop
  * check if alternating params has any good results (population pressure)?
 * more interesting fitness functions
  * based on movement cost - encourage purposeful movements?
  * monitor damage during simulation - reward early agression?
  * monitor simulation and cancel pointless movements - can be detected?
 * improve population stats - which GA strategies are better
  * similarity/clusters?

Releases

No releases published

Packages

No packages published