Project Documentation Project Seminar: Balancing in Games
Total Page:16
File Type:pdf, Size:1020Kb
Department of Information Systems and Statistics Prof. Dr. Heike Trautmann Project Documentation Project Seminar: Balancing in Games Supervised by: Dr. Mike Preuß, Nicolas Pflanzl Submitted by: Aleksandr Agureikin <[email protected]>, Alexander Anokhin <[email protected]>, Marlene Beyer <[email protected]>, Christoph Laenger <[email protected]>, Felix Nolte <[email protected]>, Marcel Renka <[email protected]>, Martin Rieger <[email protected]>, Jonas Winterberg <[email protected]> Deadline: 2016-03-18 Abstract This documentation will show in detail the outcomes of a research oriented project seminar that investigated means of non-manual or semi-automatic methods of game parameter balancing. The findings are based on a game prototype, provided by Blue Byte GmbH, one of the leading computer and console games developers in Germany. The documentation will provide insights on the game itself as well as the applied modifications. Based on an extensive literature analysis in the field of Modern Gaming and Artificial or Computational Intelligence, an evolutionary algorithm was applied in order to discover an optimal set of game parameters. It will be shown that results from the algorithmic experiments are good candidates for a positive human player experience. A detailed data analysis will discuss the results delivered by the algorithm. Additionally, challenges and natural limitations of the conducted approach will be discussed and an outlook of potential future fields of research will be proposed. i Contents 1 Introduction 1 2 Research Approach 4 3 Literature Analysis 7 3.1 Goals of Game Balancing . .8 3.2 Data-driven Optimization Methods . 10 3.3 Practical Examples: Unbalanced Games . 12 3.4 Practitioner’s Perspective on Game Balancing . 18 3.5 Artificial Intelligence Methods: An Overview . 21 3.6 Procedural Content Generation . 25 3.7 Dynamic Difficulty Adjustment . 26 3.8 Balancing Applications in Other Domains . 27 3.9 Game Balancing by Computational Mechanism Design . 28 3.10 Main Findings of the Literature Analysis . 29 4 Project Organization 31 4.1 Project Set-Up . 31 4.2 Application of Management Methods . 31 4.3 Tools Used . 32 5 Game Description 33 5.1 Gameplay Environment Setup . 33 5.2 The Zombie Village Game . 33 5.3 The 2D Roguelike Game . 36 6 Build of the Balancing Environment 38 6.1 General Methodology . 38 6.2 Game Scene . 39 6.2.1 Scenes . 39 6.2.2 Goals . 41 6.2.3 Interface Structure . 45 6.3 AI Development . 46 6.3.1 Development Techniques . 46 6.3.2 Zombie Village Game Player AI . 49 6.3.3 2D Roguelike Player AI . 56 ii 6.4 Optimization Algorithm . 60 6.4.1 Concept . 60 6.4.2 Evolutionary Algorithm Variants . 70 6.4.3 Balancing Environment Instructions . 73 6.4.4 Technical Implementation . 78 6.5 The "Optimal Optimization" . 83 7 Balancing Showstoppers 89 7.1 Communication . 89 7.2 Bugs: Zombie Village Game . 89 7.3 Bugs: 2D Roguelike . 90 8 Manual Balancing 92 8.1 Zombie Village Game . 92 8.1.1 Preliminaries . 92 8.1.2 The Balancing Process . 93 8.1.3 Parameter Setting . 94 8.1.4 Documentation of the Manual Balancing Process . 95 8.1.5 Playtesting solution identified by Balancing Environment . 97 8.1.6 Result and Insights . 98 8.2 2D Roguelike Game . 98 8.2.1 Preliminaries . 98 8.2.2 The Balancing Process . 99 8.2.3 Parameter Setting . 100 8.2.4 Documentation of the Manual Balancing Process . 101 8.2.5 Insights . 102 9 Simulation 103 9.1 Data Logging . 103 9.2 Simulation Description . 108 10 Data Analysis 111 10.1 Algorithm Performance . 111 10.2 Top Solutions . 113 10.3 Balancing Mechanisms . 116 10.4 Prediction of Fitness and Game Outcome . 119 iii 11 Balancing Process Model 124 11.1 Modeling Approach: BPMN . 124 11.2 Main Process: Balancing in Games . 124 11.3 Subprocess 1: Assess Context . 124 11.4 Subprocess 2: Set Environment . 126 11.5 Subprocess 3: Perform Automated Balancing . 129 11.6 Subprocess 4: Perform Manual Balancing . 130 11.7 Subprocess 5: Analyze Data . 130 12 Conclusion 133 12.1 Practical Use of Automated Balancing Tools . 133 12.2 Discussion . 134 12.3 Outlook . 135 Literature References 137 Web References 140 iv List of Figures 1 Working Concept: Automated and manual game balancing . .5 2 Diablo III Item: Cain’s Insight . 16 3 The Model of AI . 23 4 Difficulty Flow Channel . 26 5 Panorama of AI research, [YT14] Fig. 2 . 30 6 General Project Procedure . 32 7 Survival Goal standard setup . 44 8 Graphic Panels Structure . 45 9 Behavior tree element: condition . 47 10 Behavior tree element: action . 47 11 Behavior tree element: selector . 47 12 Behavior tree element: sequence . 47 13 Behavior tree element: parallel . 48 14 Behavior tree element: until fail . 48 15 Behavior tree for the Zombie Village Game (ZVG) . 49 16 Influence map for the 2D Roguelike (2DR) . 57 17 A* pathfinding for the 2DR . 58 18 Behavior tree for the 2DR . 59 19 Optimization methods [Tal09] . 61 20 Working cycle of an evolutionary algorithm [Pre15] . 63 21 Development of the generations’ fitness of algorithm runtime 289 . 70 22 Choosing a scene to balance . 74 23 Necessary game object ModifyGameParameter ............. 74 24 Adding ComplexGame.cs . 75 25 Attaching the Balancing Environment frame . 75 26 Name for session log file . 76 27 Player AI configuration . 76 28 Goal configuration . 77 29 Algorithm configuration . 77 30 Feature and Solution Entities . 79 31 Game Entity . 80 32 Algorithm Entity and Exemplary Extension Evolutionary Algorithm . 81 33 BalancingSuite Entity . 83 34 Sample Configurations for F-RACE . 84 v 35 F-RACE Overview . 85 36 Sample configurations expected to be removed by F-RACE . 88 37 Algorithm Performance Report Example . 112 38 Top Solutions Report Example . 115 39 Sample Heatmaps for ZVG . 117 40 Heatmaps for non-deterministic fitness outcome in 2DR . 118 41 Prediction of the outcome of the ZVG simulation and fitness value. Errors based on 20-fold cross validation . 121 42 Good Solutions . 122 43 Optimal Attack Power ratio . 122 44 Feature Importance . 123 45 Balancing in Games Main Model . 125 46 Subprocess: Assess Context . 126 47 Subprocess: Set Environment . 128 48 Subprocess: Perform Automated Balancing . 129 49 Subprocess: Perform Manual Balancing . 131 50 Subprocess: Analyze Data . 131 vi List of Tables 1 Presentation Topics per Student . .7 2 Prisoner’s Dilemma Payoff Matrix . 13 3 Generic CS:GO Round . 13 4 Should I build a Warhound? . 14 5 How do I gain experience most efficiently? . 16 6 de_overpass Payoff Matrix with Boost . 17 7 AI Concepts . 22 8 Balancing goals for the ZVG . 35 9 Balancing goals for 2DR . 37 10 Sample Set for Input of the Balancing Environment . ..