Procedural Content Generation for Cooperative Games Bologna
Total Page:16
File Type:pdf, Size:1020Kb
Procedural Content Generation for Cooperative Games Rafael Vilela Pinheiro de Passos Ramos Thesis to obtain the Master of Science Degree in Bologna Master Degree in Information Systems and Computer Engineering Supervisors: Prof. Rui Felipe Fernandes Prada Prof. Carlos António Roque Martinho Examination Committee: Chairperson: Prof. Mário Rui Fonseca dos Santos Gomes Supervisor: Prof. Rui Felipe Fernandes Prada Member of the Committee: Prof. Luis Manuel Ferreira Fernandes Moniz November 2015 Acknowledgments I thank my supervisors Rui Prada and Carlos Martinho for guidance and insight provided throughout the year, when developing this work. I would also like to thank fellow student Miguel Santos for his invaluable assistance during testing even when health wasn’t helping. I would like thank Sofia Oliveira for her suggestions in experimental methodology. Lastly a big thanks to my parents, my family and all my friends who put up with me year long, listening and discussing whatever subject I threw at them. i Abstract A popular topic now more than ever, procedural content generation is an interesting concept worked on several areas, including in game-making. Previously mainly as a mean to compact a lot of data generated content has been used to generate theoretically infinite worlds. Level and content generation ease the burden on game developers and artist. As more realism and bigger diversity is being required the need for efficient and fun level generators increases. On the other hand, a cooperative option on games is becoming more and more common, with a majority of games having a cooperative mode. A noticeable amount of research has been done on both of these areas and what makes them fun, however, little work has been done on a joint effort on both these fields. This work attempts to start filling the gap, linking together concepts worked on both cooperative games and procedural level generation and what makes them interesting. We look at some of the existing research on the separate areas, seeing what seems to work and in what ways can a generator be conceptualized. We then proceed to define what needs to be done for level generation to work on a cooperative game. We then propose a solution based on our findings for a cooperative platform game, Geometry Friends. Finally we discuss how could the system be improved based on test results and where should future work be aimed at on the subject of Procedural Level Generation for Cooperative Games. Keywords: Procedural content generation, Cooperative play, Procedural level generation, Procedural generation of cooperative challenges. ii Index Acknowledgments ........................................................................................................................................................ i Abstract ......................................................................................................................................................................... ii Index ............................................................................................................................................................................. iii List of Figures ............................................................................................................................................................... v List of Tables ............................................................................................................................................................... vi 1. Introduction ............................................................................................................................................................. 1 1.1 Motivation ......................................................................................................................................................... 1 1.2 Problem Formulation ...................................................................................................................................... 2 1.3 Summary of Contributions ............................................................................................................................. 3 1.4 Outline ............................................................................................................................................................... 3 1.5 Summary ............................................................................................................................................................ 3 2. Background .............................................................................................................................................................. 4 2.1 On Procedural Generation ............................................................................................................................. 4 2.1.1 Describing a Procedural Content Generator ...................................................................................... 5 2.1.2 Generation Methods ............................................................................................................................... 7 2.1.3 A Quick Look Back .................................................................................................................................. 8 2.2 Cooperative games .......................................................................................................................................... 9 2.3 Summary ............................................................................................................................................................ 9 3 Related Work ..........................................................................................................................................................10 3.1 Procedurally Generated Cooperative Games...........................................................................................10 3.2 Procedural Level Generation .......................................................................................................................11 3.3 Cooperation in Games ..................................................................................................................................14 3.4 Evaluating Cooperative Games ...................................................................................................................18 3.5 Driving Players to Cooperate ......................................................................................................................21 3.6 Summary ..........................................................................................................................................................23 4. Testbed Game – Geometry Friends ..................................................................................................................24 5. Tools ........................................................................................................................................................................25 iii 5.1 C#/XNA framework ......................................................................................................................................25 5.2 Java ...................................................................................................................................................................25 5.3 Choice ..............................................................................................................................................................25 6. Level Generator .....................................................................................................................................................26 6.1 Brainstorming .................................................................................................................................................26 6.2 First Approach ................................................................................................................................................28 6.3 Discrete Approach .........................................................................................................................................30 6.4 The Final Generator ......................................................................................................................................32 6.5 With Heuristics...............................................................................................................................................39 7. Evaluation ...............................................................................................................................................................41 7.1 The Pre-tests ..................................................................................................................................................41 7.2 The Experiment ..............................................................................................................................................42 7.3 The Results ......................................................................................................................................................43 7.3.1 Participants .............................................................................................................................................43 7.3.2 Statistical Hypothesis Testing .............................................................................................................44 8. Conclusions ............................................................................................................................................................50