-
Notifications
You must be signed in to change notification settings - Fork 1
Toribash move evolver
siimphh/toribash-evolver
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
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?
About
Toribash move evolver
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published