Logbook 4: Gathering data for algorithms to implement, fitness function and evaluation techniques
So I’m having a hard time balancing coursework and dissertation but I have finally started to search around in terms of the some of the algorithms I want to implement and some examples of code that has been implemented. I want to make a platformer generator in AR (if possible) loosely Super Mario Bros based. Definitely want to used Graph Grammars, looking into CPPNs/NEAT if it is possible to convert what I find to 3D spaces.
I will note down below the links that might help with implementing such things:
DREAM IMPLEMENTATION:
NEAT implementations online:
NEAT PCG — content generation:
MAP-Elites pseudocode:
Char-RNN Super Mario generation level:
REALISTIC IMPLEMENTATION:
N-grams in platformer implementations/ 3D objects:
- View N-gram Network for 3D Object Retrieval
- Linear levels through n-grams
- Composing Video Game Levels with
Music Metaphors through Functional Scaffolding
Genetic algorithm:
EA + mutation and crossover with tree genotype. One that focuses on population diversity. Island Model? Maybe use similar evolutionary algo used in ANGELINA → co operative coevolutionary ea , improvement of co operative evolutionary ea
- Mario Level Generation From Mechanics Using Scene Stitching
- Illuminating search spaces by mapping elites
- Evolutionary Algorithms for solving multi-objective problems
- PCG of balanced levels for 3D Paintball Game
- PCG in 3D game
- Improving Evolutionary Algorithms
Genetic algorithm implementations (explore):
- AForge.NET Framework Documentation :: Table of Content
- An Introduction to Evolutionary Algorithms and Code with Genetic Algorithm in Unity. | by Venkatesh Tata | Medium
- Mario level generation using the Mario Bros engine (here)
EVALUATION:
I will also need to get a solid evaluation technique so any fitness function I implement can make sense. Currently I am thinking of the following for fitness function/evaluation:
- Number of different path to goal
- Number of tiles not visited
- Can be completed (Through agent modelling- A* agent or sarsa) within a set period (1/2mins)(100 Iterations?)
- Number of different tiles
- Broken Rules
- No Goal
- No Obstacles
- length of shortest path to exit
- Percentage of area used by shortest path
- Ability to produce playable games on different AR planes
- Entropy → measure sections of completed ground level (example here)
- Sparseness →a layout is sparse if the average distance between two NPCs or actionable powerups/coin is high (look at here for more info)
Weighted combination of some of the above use a heuristics for fitness function. Will get back to this when I have a clearer idea!