thesis

Towards Bug Localization in Models in Game Software Engineering

Abstract

Video games have unique characteristics that differentiate their development and maintenance from classic software engineering (CSE), which led to the emerging subfield of Game Software Engineering (GSE). One of these differences is that video game developers perceive more difficulties than other non-game developers when it comes to locating bugs. The aim of this thesis is to address bug localization in software models in GSE by leveraging the data (i.e., traces) generated from simulations of the behavior of non-player characters (NPCs). NPCs (e.g., bots in First-Person Shooters) are not controlled by the player and are key components of video games. Hence, exploiting the data from simulations can be instrumental in locating bugs.

The approaches that are proposed in this work explore: 1) how the data from simulations can be used to automatically locate potential buggy elements in software models, which refer to high-level representations that describe the structure and behavior of game content (e.g., NPCs) and are interpreted at run-time; 2) how the human effort for assessing candidate solutions influences the location of bugs; 3) whether component-specific operations can boost bug localization. The approaches proposed are evaluated at the scale of industrial settings with a commercial video game (Play Station 4 and Steam) and 29 professional video game developers. The results show that the approaches improve the quality of the solution of the model fragment that may contain the bug compared to the baselines, and the manual effort is reduced.

This thesis presents a compendium of three research papers published in academic journals and conference. The contributions demonstrate that these novel Search-Based Game Software Engineering approaches significantly improve the quality of the solution of located model elements. This is essential to the maintenance of video games for reducing the amount of tedious manual work and minimizing the number of bugs that go unnoticed.