Exploring Game Space

Overview

Game designers adjust game parameters to create an optimal experience for players. We call this high-dimensional set of unique game variants game space. To help designers explore game space and better understand the relationship between design and player experience, we present several methods to find games of varying difficulty. Focusing on a parameterized version of Flappy Bird, a popular minimal score-based action game, we predict each variant’s difficulty using automatic play testing, Monte-Carlo simulation, a player model based on human motor skills (precision, reaction time, and actions per second), and exponential survival analysis of score histograms. Our techniques include searching for a specific difficulty, game space visualization, and computational creativity to find interesting and unique variants using clustering and genetic algorithms. We validate our player model with a user study, showing it is effective at predicting game difficulty.

exploring game space teaser

Publications

[PDF] Isaksen, Aaron, Dan Gopstein, and Andy Nealen. "Exploring Game Space Using Survival Analysis.Foundations of Digital Games. 2015. Best Paper in Artificial Intelligence and Game Technology.

[PDF] Isaksen, Aaron, Dan Gopstein, Julian Togelius, and Andy Nealen. "Discovering Unique Game Variants," Computational Creativity and Games Workshop, hosted by The Sixth International Conference on Computational Creativity, ICCC 2015.

[PDF] Isaksen, Aaron, and Andy Nealen. "Comparing Player Skill, Game Variants, and Learning Rates with Survival Analysis," to appear in Player Modeling Workshop hosted by AAAI AIIDE 2015.

Demonstration

Images

world_parameters

In Flappy Bird, the player must navigate the bird through a series of pipes without crashing.  We modify the labeled parameters to generate unique game variants. By varying these parameters within sensible ranges, we can generate all variants of Flappy Bird that use the same set of rules.

 

unnamed

We explore game space by simulating game variants and estimating their difficulty using survival analysis.  The process to calculate difficulty d is composed of three main steps: 1) Generate – build a new game variant based on the given parameters, 2) Simulate – use an AI to play the game with human-like behavior, and 3) Analyze – examine the resulting score histogram using exponential survival analysis to estimate the difficulty of the simulated game.  Generate and Simulate steps are repeated until we have a stable score distribution for measuring in the Analyze step.  

 

deoptim-examples

Differential Evolution Optimization helps us search for a target difficulty.  Each point indicates a variant tested to find the target; X indicates impossible games, Dot size and color indicates closeness to the target.  280 points were searched to find a value within .1% of the target difficulty d=.3.  Three example games are shown, but every dot represents a unique variant.

 

jump_v_gravity3

Sampling game space in two dimensions, jump velocity j vs gravity g, shows a narrow band of playable games.  We can see jump velocity and gravity are dependent.  When gravity is too high or low relative to jump velocity, the bird crashes into the floor or ceiling.  In the middle, gravity and jump velocity are balanced, and we see as they increase together, the game gets more difficult — faster reaction times are required as the bird is moving rapidly up and down.  Lower values of gravity and jump velocity give the player more time to react and are easier to play.  Holes and islands are due to stochastic simulation, and can be reduced with a larger number of simulations.

 

evolved-game-1-gnat

evolved-game-2-blimp

evolved-game-3-brick

evolved-game-4-pogo

The four game variants discovered using our Most Unique evolution method with k=4.  This method searches for the k games which maximizes the minimum distance between any two points in the set. The games are generated by the authors, not by the algorithm.  (a) Needle Gnat: tiny player trying to thread a tight horizontal space.  (b) Lazy Blimp: slow moving blimp-like player with minimal gravity and jump.  (c) Droppy Brick: frequent rise and fall with high gravity.  (d) Pogo Pigeon: very tall, thin bird that frequently hops to avoid crashing into the ground.