## Wednesday, April 10, 2013

### GALE + PCG

What if while recursing in RRSL clustering method, we only go down 1 level (split only a single time)?   Previously, we were going down  4 levels (because rstop = square root(mu=100)).

NOTE: We tested below on a really small sample for quick results, using rho=0.005.  That means we were running GALE for a -long- time, and still get results under <30 numEval.  With rho=0.10, the numEval would be ~ 4-5.

1) "Outer Loop"

decisions = {all the features used to build the game} *these are categories and non-numeric*
evaluate = the player plays the game, and rates it 0-5 stars across categories
objectives = the player rating (aesthetic, story, gameplay, replay, overall)

A designer builds the game (a supply of the decisions).  Then, a player plays it (evaluates it across objectives).  The evaluation is human feedback, which is subject to human error and bias.  It takes a long time for a player to play the game.  It takes a long time to get the feedback.  And the feedback may not even be correct.  SBSE can be theoretically used, but it would take decades.

GALE can speed this up, tremendously.  But there's still the risk of human error in the feedback.  The method of evaluation is subjective here.  And the decisions may not be easily modelled at all.

2) "Inner Loop"

There are many "inner loops" that complete the single "outer loop" for the whole game.

decisions = {parameters that define one feature of the game} *introducing PCG*
evaluate = the player plays the game, and is scored on his/her performance w/ respect to that feature
objectives = the player score (points, accuracy%, evade%, time taken, etc)

A designer builds the game.  The game supplies the decisions to a PCG module in the game; i.e. the generation of random AI (speed, strength, defense) enemies.  The player plays the stage in the game for which these enemies are met.  After completion of the stage (or failure to), the player is graded across objectives: for example, points, accuracy of hitting the enemies, evasion rate of avoiding enemies, time taken before death or completion, etc.

The inner loop provides SBSE a way to search on the fly while the gamer is playing.  It avoids the issue of human bias/error.  A single stage can be rapid, and there is no overhead of feedback.  The game attunes itself according the players that play it, and searches for optimal PCG that can provide entertainment on the assumption that when players score well, they are having fun.  With GALE, a user only needs to play ~2-8 games before seeing decent results, and after 20 results, the optimality should be superb.