Software engineering research for computer games: A systematic review

https://doi.org/10.1016/j.infsof.2010.05.004Get rights and content

Abstract

Context

Currently, computer game development is one of the fastest growing industries in the worldwide economy. In addition to that, computer games are rapidly evolving in the sense that newer game versions arrive in a very short interval. Thus, software engineering techniques are needed for game development in order to achieve greater flexibility and maintainability, less cost and effort, better design, etc. In addition, games present several characteristics that differentiate their development from classical software development.

Objective

This study aims to assess the state of the art on research concerning software engineering for computer games and discuss possible important areas for future research.

Method

We employed a standard methodology for systematic literature reviews using four well known digital libraries.

Results

Software engineering for computer games is a research domain that has doubled its research activity during the last 5 years. The dominant research topic has proven to be requirements engineering, while topics such as software verification and maintenance have been neglected up to now.

Conclusion

The results of the study suggest that software engineering for computer games is a field that embraces many techniques and methods from conventional software engineering and adapts them so as to fit the specific requirements of game development. In addition to that, the study proposes the employment of more elaborate empirical methods, i.e. controlled experiments and case studies, in game software engineering research, which, have not been extensively used up to now.

Introduction

Currently, 3D applications appear to be one of the most modern and fast growing software fields from industrial point of view. The most popular subcategory among 3D applications is considered to be computer games. In 2007, the video game industry revenue was approximately $60 billion; that almost equals the size of the US Department of Defense expenditures on research [17]. Furthermore, the game industry is so innovative that in many cases, the hardware and software technological advancement, are applied to games before being adopted by other scientific domains [12], [14]. Additionally, among the young game playing hours surpass television watching and listening to music. Finally, concerning open-source communities, games appear to be thriving [15].

Creating computer games is a very complicated task that requires the involvement of extremely skilled professionals from a wide spectrum of computer science [4]. Typically, computer games demand real time high quality performance. The main performance aspects are related to display frame rate, real time audio playback and processor response. Programming a game in low level is so complex that hundreds of thousands of code lines are required in order to implement a commercially viable game. The size of such programs, in combination with the evolving nature of the software, demands flexible design, maintainable implementation and straightforward documentation, in order to improve understanding among the development group and facilitate future developments. Consequently, game developers must employ specific software engineering techniques in order to achieve high quality levels.

In McShaffry et al. [13] the authors present a practitioner’s approach to the aspects that differentiate game software engineering from classical software engineering. More specifically, games are products that have much more limited lifecycle than conventional software products. Games are usually developed in a smaller time period and all phases of the lifecycle need to be shrunk. In addition, the main maintenance activity for computer games is corrective maintenance, because most games, after being delivered to the market, have an average life of 6 months and in that time interval the next version of the program is created. During this period, the main maintenance task performed is bug fixing, which is typically provided without charge to the end-users. Consequently, the game development companies do not have corrective maintenance income [13]. However, successful games are often the basis for one or more sequels. If the sequel includes revisions to the user interface or game controls as a result of comments from users, this is a form of perfective maintenance. This procedure does not directly provide any income to the game development company which provides an additional revenue stream to the game developers. Additionally, another interesting characteristic of games is the fact that in many cases, the game development companies release purchasable extensions. These releases use the same game core in order for the “new story” to be told through the “old” game engine, which is already purchased from the end user. This process can be characterized as adaptive maintenance, as well.

Financial shortcomings that derive from the absence of income from the maintenance phase are balanced by game extensions and from marketing campaigns that aim at selling old game titles at lower rates. The extreme marketing demands of the game industry sometimes press the development companies to further shrink their development timetables. Often the schedules are overrun and poor release date estimation becomes an issue. Considering the above, game project management is a complicated task that diverges from traditional software project management.

Even though software engineering methodologies for game development is a field of great interest, there is no clear picture on the advancements in this field. Additionally, to the best of our knowledge no systematic reviews concerning game development has been reported in the literature. The purpose of this study is to summarize the existing evidence concerning software engineering techniques applied to computer games and identify possible gaps in current research, in order to suggest areas for further investigation and to provide background information to any relevant future work. Furthermore, the paper aims to describe the current state of the art in game software engineering with respect to research approaches and methods. In order to achieve this, the evidence-based research paradigm has been employed. The possibility of employing the evidence-based paradigm in software engineering has been proposed in [6], [10]. This procedure aims to identify an answerable question that provides information, find evidence that answers the question and evaluate that evidence [1]. According to [1], a systematic review of the literature constitutes the first step of performing evidence-based research. Guidelines on conducting a systematic literature review are thoroughly explained in [1], [8].

In the next section, we explain how we have used the methodology discussed in [1]. In Section 3, we present some statistics about the primary studies we analyze in this paper. In Section 4, we answer our research questions and in Section 5 we present possible threats to validity and our plans for future work. Finally, in Section 6 we present our conclusions.

Section snippets

Review methodology

Performing a systematic review can be decomposed into three main phases: planning, conducting and documenting the review [1]. Every phase is a combination of other simpler procedures.

Planning phase:

  • specify research questions

  • develop review protocol

  • validate review protocol

Conducting phase:

  • identify relevant research

  • select primary studies

  • assess study quality

  • extract required data

  • synthesize data

Documenting phase:

  • write review report

  • validate the report

According to [8], [9], planning a review consists

Results

This section of the paper deals with presenting the results of the statistical analysis on the dataset of primary studies. At this point, it is necessary to clarify that a comparison between game engineering and other fields, accompanied with discussion on the research questions (Section 2.1) is provided in Section 4. The dataset of the primary studies characteristics are tabulated, so as for the reader to be able to trace the categories that each study is mapped to and the interested reader

Discussion

This section of the paper discusses the finding of the review concerning the research questions specified in Section 2.1. The findings of our research on game engineering will be compared to the results of similar studies [3], [5], [7] in order to identify domain specific characteristics.

Threats to validity

This section of the paper discusses possible threats to the validity of the paper and future work. In addition to that, studies that do not mention the word “game” in the title of the article have not been included in the primary studies set. Thus, it is possible for the search procedure to have missed a limited number of studies that refer to game development, but this is not referenced to its title. Moreover, the inclusion of workshop papers in the review might have altered the results of the

Conclusions and future work

This paper aimed at summarizing the current state of the art concerning scientific research on software engineering for computer games. In order to achieve this goal we performed a systematic literature review, which is considered to be the first step of the evidence-based research paradigm. The results confirmed that computer games are a fertile domain for applying software engineering technologies and that it is a research field that is growing more active year by year.

In addition to that,

Acknowledgements

The authors would like to acknowledge many valuable suggestions made by the anonymous reviewers with regard to the discussion on game requirements, game project management and game maintenance.

References (17)

There are more references available in the full text version of this article.

Cited by (89)

  • A game engine to make games as multi-agent systems

    2020, Advances in Engineering Software
View all citing articles on Scopus
View full text