Software engineering research for computer games: A systematic review
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)
- et al.
Lessons from applying the systematic literature review process within the software engineering domain
Journal of Systems and Software
(2007) - et al.
An analysis of topics in software engineering – 2006
Journal of Systems and Software
(2008) - et al.
Empirical studies of agile software development: a systematic review
Information and Software Technology
(2008) - et al.
Research in software engineering: an analysis of the literature
Information and Software Technology
(2002) - et al.
Systematic literature reviews in software engineering – a systematic literature review
Information and Software Technology
(2009) - D. Budgen, X. Turner, P. Brereton, B. Kitchenham, Using mapping studies in software engineering, in: Proceedings of...
Awesome 3D Game Development
(2004)- et al.
Evidence based software engineering for practitioners
Software Magazine, IEEE Computer Society
(2005)
Cited by (89)
Co-evolving scenarios and simulated players to locate bugs that arise from the interaction of software models of video games
2024, Information and Software TechnologyThe consolidation of game software engineering: A systematic literature review of software engineering for industry-scale computer games
2024, Information and Software TechnologySoftware architecture for digital game mechanics: A systematic literature review
2021, Entertainment ComputingAn evolutionary approach for generating software models: The case of Kromaia in Game Software Engineering
2021, Journal of Systems and SoftwareA game engine to make games as multi-agent systems
2020, Advances in Engineering Software