Executable Formal Specifications in Game Development
Total Page:16
File Type:pdf, Size:1020Kb
TIMO NUMMENMAA Executable Formal Specifications in Game Development Design, Validation and Evolution ACADEMIC DISSERTATION To be presented, with the permission of the Board of the School of Information Sciences of the University of Tampere, for public discussion in the Auditorium A1 of the Main Building, Kalevantie 4, Tampere, on November 30th, 2013, at 12 o’clock. UNIVERSITY OF TAMPERE ACADEMIC DISSERTATION University of Tampere, School of Information Sciences Finland Copyright ©2013 Tampere University Press and the author Cover design by Mikko Reinikka Acta Universitatis Tamperensis 1875 Acta Electronica Universitatis Tamperensis 1356 ISBN 978-951-44-9275-4 (print) ISBN 978-951-44-9276-1 (pdf) ISSN-L 1455-1616 ISSN 1456-954X ISSN 1455-1616 http://tampub.uta.fi Suomen Yliopistopaino Oy – Juvenes Print Tampere 2013 Abstract Games provide players with enjoyment, escapism, unique experiences and even a way to socialise. Software based games played on electronic devices such as computers and games consoles are a huge business that is still growing. New games are con- tinually developed as demand for these digital games is high. Digital games are often complex and have high requirements for quality. The complexity is especially ap- parent in complex multiplayer games and games that are constantly evolving. This complexity can be problematic in various stages of development. For example, under- standing if a design of a game works as intended can be difficult. Managing changes that need to be made to a game during its lifetime, even after its initial release, is also challenging from both a design and an implementation standpoint. In this thesis these problems are addressed by presenting a method of utilising formal methods for simulations of game designs as a way of development, commu- nication, documentation and design. Formal methods are methods that aim to help developers create better software through the usage of tools and notations based on formal syntax and semantics. A specific sub-area of formal methods, namely execut- able formal specifications, was chosen as a starting point. This is because the ex- ecutability of the specification makes it possible to simulate game progression which can be used to understand and communicate the design of a game better. The DisCo methodology and language are an implementation of executable formal specifications and feature an action based execution model. This toolset and language was modified 3 and extended to make it more suitable to game development based on findings made in a series of case studies. In the case studies, specifications are created based on two existing games and one new design. The case studies also lead to discoveries in what features a methodology and tool for formal specifications in a game development process requires. Formal methods can be applied fairly naturally in game design. Because games are defined with rules, and due to the complexity of many games, methods are needed to manage that complexity. Action-based, executable methods fit especially well. Game development can benefit from formal methods if the methodology and tools are easy to use and the methodology incorporates properties, such as probabilities, deemed to be important for game specifications. The benefits apply to the whole development cycle of a game. A development process which includes formal methods can result in less problems during development and games of better quality. Keywords: game development, game design, formal specifications, executable formal specifications, formal methods, game evolution, software evolution, simu- lation 4 Preface I remember when my dad brought home our first computer, a Macintosh plus. I was two years old, but I can still remember how amazing the games on the system were. This was the beginning of a journey that involved playing games on various systems. I can also remember that my dad had made a game of his own called “Naamapeli” as a coursework at the university on the old Mac plus. Maybe that had been the initial catalyst, for it turned out that playing games was not enough, but making them was also highly interesting. After experimenting with creating games first for fun and later for research purposes, I have come to understand that the act of creating a game and the act of playing a game are not what is most interesting to me. The most interesting thing to me is to understand games and their development and work on making both the games themselves better but also work on improving their development. Although this work is a scientific monograph, it is based on previous publications. Apart from the author’s MSc thesis and one other publication, those publications have been collaborative work. The author of this thesis is the first author of 7 of the collaborative publications, and in those cases has done most of the research and direction of the research related to the publication. In the 4 other joint publications, the author has had a considerable contribution to the research. I would like to thank my supervisors Eleni Berki and Tommi Mikkonen for their guidance and support. Without them this thesis would never have been completed. 5 It has been a great privilege to work in the Game Research Lab from the Tampere Research Center for Information and Media (TRIM) and the MESSI group from The Tampere Research Center for Information and Systems (CIS). I would like to thank all the wonderful people in these groups. I would especially like to thank the head of the Game Research Lab, Frans Mäyrä, for all of his hard work. I would like to thank my co-authors and collaborators, especially Jussi Kuittinen, Annakaisa Kultima, Jussi Holopainen, Kati Alha and Aleksi Tiensuu. I would like to thank Peter Thanisch for great comments and help with language issues. I would like to thank the Tampere Doctoral Programme in Information Science and Engineering (TISE) for financial support and the Games and Innovation (GaIn) project for both financial support and collaboration opportunities. Also, the EU- project IPerG (FP6–004457) and Nokia Research Center Tampere have played a part in the creation of this thesis. I would like to thank my Family who has supported me in my studies, and espe- cially my father Jyrki Nummenmaa, who is also the head of the CIS research center, for support and encouraging me to apply for a position in TISE in the first place. I would like to thank my external examiners Staffan Björk and Jose Zagal for their comments. In addition, I would like to thank everyone else who has contributed to this work in any way. 6 Contents Abstract 3 Preface 5 1 Introduction 13 1.1 Research problem . 14 1.2 Research methods . 15 1.3 Contributions . 16 1.4 Terms and definitions . 17 1.5 Thesis structure . 20 I Games and Formal Methods 23 2 Game development, game design and game evolution 25 2.1 Game development . 26 2.1.1 Developers, sponsors and players . 26 2.1.2 Teams in game development . 27 2.1.3 Development process . 28 2.2 Modelling game design and the design process . 29 2.2.1 The model of designing by Lawson . 30 7 2.2.2 Three levels of abstraction by Löwgren and Stolterman . 32 2.2.3 Representations . 33 2.3 Game evolution . 35 2.3.1 Software evolution . 35 2.3.2 Evolution in games . 37 2.3.3 Types of evolution in games . 39 2.3.4 Three types of change . 45 2.3.5 The relation of game evolution to software evolution . 46 2.3.6 Game evolution and game experience . 49 2.3.7 Game evolution planning . 51 2.4 Conclusions . 53 3 Formal methods for game development 55 3.1 Formal models for games . 56 3.2 Three abstraction levels for game development . 57 3.3 Formal methods and formal specifications . 58 3.4 Executable formal specifications in software development . 59 3.5 Simulation . 61 3.6 Agility vs. formal specification . 63 3.7 Formal specifications and stakeholders . 65 3.8 Conclusions . 66 4 The DisCo method and the family of associated tools 69 4.1 Overview . 69 4.1.1 Formal background . 73 4.1.2 Execution model . 74 4.1.3 Different variants of DisCo . 75 4.2 DisCo2000^2 . 76 8 4.2.1 Probabilistic execution . 77 4.2.2 External UIs and other external sources . 82 4.3 Issues in transitioning from specification to implementation in DisCo . 85 4.4 The DBDisCo system . 88 4.4.1 Specification simulation . 91 4.4.2 Applications of the simulation system: real user interfaces and software testing . 93 4.4.3 Grammatical model transformations . 94 4.4.4 Software verification with DBDisCo . 96 4.4.5 Discussion . 99 4.5 Conclusions . 100 II Case Studies 103 5 No-one Can Stop the Hamster 105 5.1 Introduction . 105 5.2 Method and data sources . 107 5.3 Analysis . 110 5.3.1 Design starting points . 110 5.3.2 Concepting . 111 5.3.3 Bodystorming and sketching . 113 5.3.4 Early playtesting . 115 5.3.5 Fine tuning the interaction and game mechanics . 116 5.3.6 Game title . 117 5.4 Discussion . 118 5.5 Conclusions . 118 9 6 Mythical: The Mobile Awakening 119 6.1 Introduction . 120 6.2 Modelling based on an existing game . 121 6.2.1 Objects . 122 6.2.2 Actions . 124 6.3 DisCo model . 126 6.3.1 New types in the MythicalLayerMain layer . 127 6.3.2 Classes in the MythicalLayerMain layer . 128 6.3.3 Classes in the EnvironmentInt layer . 132 6.3.4 Relations . 133 6.3.5 Actions in the MythicalLayerMain layer . 134 6.3.6 Actions in the EnvironmentInt layer .