Page 49 - SMILESENG
P. 49
Intl. Summer School on Search- and Machine Learning-based Software Engineering
Towards Bug Localization in Models in Game Software Engineering
Rodrigo Casamayor, Lorena Arcega, Francisca Pe´rez, and Carlos Cetina Universidad San Jorge
Escuela de Arquitectura y Tecnolog´ıa
Zaragoza, Spain
Email: rcasamayor@acm.org, {larcega, mfperez, ccetina}@usj.es
Abstract—Today, video game development is one of the fastest growing industries in the world. Video games present character- istics that differentiate their development and maintenance from the development and maintenance of classic software. Nowadays, most video games are developed by means of the so-called game engines. A key artifact of game engines are software models. Hence, the way in which testing is done must inevitably be different in video games than in traditional software since the artifacts used are also different. Current approaches for locating bugs in software are focused on source code, while the approaches needed to locate bugs in video games should consider other artifacts such as software models. The lack of specific approaches leads to a longer development time, which sometimes causes delays in the deadlines and postponement of the launch date. This results in the video game being released without having been properly tested. In our work, we want to evaluate whether the bug localization techniques applied to the models of classic software engineering work in game software engineering. Specifically, we want to leverage the use of evolutionary algorithms and explore different fitness functions, such as textual similarity with the bug reports and the defect localization principle. In addition, we want to study the application of one of the main inherent features underlying the video game domain to achieve bug location: the simulations using non-player characters (NPC). It is common for video games to include non-player characters that accompany the player in the adventure, are the enemies to beat, or simply populate the world recreated in the video game. These NPCs have pre-programmed behaviors and can be used to launch gameplay simulations.
I. INTRODUCTION
Today, video game development is one of the fastest grow- ing industries in the world. Such is the relevance and depth that video games have in our society that, if we put it in terms of developer population, the video game industry is responsible for 8.8M active developers as of 2019 [1]. According to the same report, the total number of active software developers is 18.9M, so almost one out of every two developers is involved in the games sector. Furthermore, video game development is instrumental in achieving the vision of the Metaverse. This might suggest that the number of video game developers will continue to grow in the future as the Metaverse is developed.
Video games present characteristics that differentiate their development and maintenance from the development and maintenance of classic software [2]. Most video games are developed by means of so called game engines. A game engine refers to a development environment that integrates a graphics engine and a physics engine as well as a set of tools that wraps
around them in order to accelerate development. Developers can create video game content directly using code (e.g., C++) or the software models of the engines.
Current approaches for locating bugs in software focus on source code, while the approaches needed to locate bugs in video games should consider other artifacts such as software models [2]. Nevertheless, a fault localization survey [3] reveals that none of the bug localization approaches consider models as the source of the bugs, which poses a considerable problem for developers since much of the video game content remains unexplored. Actually, Politowski et al. argue that the way in which developers deal with bugs must inevitably be different in video games than in traditional software since the artifacts used are also different [4].
The lack of specific bug localization approaches leads to a longer development time, which sometimes causes delays in the deadlines and postponement of the launch date. This results in the video game being released with an excessive number of bugs, such as the case of the blockbuster Cyberpunk 2077 [5].
There are significant differences between Classic Software Engineering (CSE) and Game Software Engineering (GSE) [6], [4]. Our work argues that the differences can become opportunities for tackling the challenge of bug localization in video games. Specifically, we propose to leverage game simu- lations to locate bugs in the software models of video games. In video games, it is common to include non-player characters (NPCs). They accompany the player in the adventure, are the enemies to beat, or simply populate the world recreated in the video game. These NPCs have pre-programmed behaviors and can be used to launch gameplay simulations.
II. BACKGROUND
The case study that we are using to evaluate our ideas is performed using the bosses of the video game Kromaia 1. Kromaia is a three-dimensional video game. Each of the levels involves a player’s spaceship flying from a starting point to a target destination reaching the goal before being destroyed. If the player manages to reach the destination, the final boss corresponding to that level appears and must be defeated in order to complete the level.
1See the official Playstation trailer to learn more about Kromaia: https: //youtu.be/EhsejJBp8Go
37