This section presents the results of statistical analysis of the data set discusses the findings concerning the RQs formulated in Section 3.1. The characteristics of the data set are tabulated for better understanding. To trace the categories of each mapped study, the interested reader is referred to the Additional file 2: Appendix B. A total 148 studies were collated and analyzed as part of this review. To identify GDSE process life cycle domain specific characteristics, the findings of this review will be compared to results from similar studies done by Cai and Card (2008), Glass et al. (2002), and Dyba and Dingsoyr (2008).

RQ1 What is the intensity of research activity on the GDSE process life cycle?

Table 8 clearly shows that GDSE process life cycle research intensity has increased during the last few years. Figure 4 showed an increase in GDSE process life cycle over time. The y-axis represents the number of publications in the form of a fraction and is calculated by taking year (i) ’s number of publications as the numerator and year (0) ’s number of publications as the denominator. From Table 8, 2007 was taken as year (0) , and the first data point of the graph was calculated for year (1) i.e., 2008. Figure 4 shows the results up to 2015. Years are given on the x-axis.

Table 8 Type of citation and per year research activity Full size table

Fig. 4 Increase in GDSE process life cycle research activity Full size image

Figure 4 illustrates that during the last few years, research activity in the GDSE process life cycle domain has continuously increased and the number of publications in the GDSE domain has increased at a polynomial growth rate since 2005. During 2013, 2014 and 2015 the drop in research activity is noted. It seems obvious that most of the work related to GDSE research activity was not published on the selected sources for this study. During 2014, most of the research activities were seen on the game development associations/groups web sites, like DIGRA association and Gamastura, or game developers personal blogs.

Moreover, Fig. 5 shows the list of countries most active in GDSE process life cycle topics research. Looking at research activity based on countries, China now dominates GDSE process life cycle research, but its research into the game domain started only in 2010. In four years, China has come to dominate this area of research. Before 2010, the United States and the United Kingdom were dominant.

Fig. 5 Research activity per country Full size image

Authors from North and South America have played a dominant role since 2004 and are still contributing in this area. Contributors in Europe also started research into the GDSE domain in 2007, but the Asian continent has dominated the GDSE domain since 2010. It can be visualized in Fig. 6. The most popular venue for GDSE research publication is IEEE; it seems that IEEE accounts for the main bulk of publications (approximately 63 %), followed by Elsevier, Springer, and ACM.

Fig. 6 Research activity by continent Full size image

RQ 2: What topics are being researched in the pre-production. Production and post production phase?

This section addresses the identification of main research topics in the GDSE process life cycle domain. Table 9 clearly suggests that most research has been conducted in the production phase, followed by the pre-production phase. On the other hand, the post-production phase has not attracted much research interest. These GDSE process life cycle topics are somewhat different than in software engineering because of two factors: first, the GDSE domain has special needs and priorities, and second, it is a young domain which requires more fundamental research in the area of requirements, development, and coding tools. When the GDSE domain becomes mature, then other areas in the field, like testing and verification, will attract the interest of researchers.

Table 9 GDSE process life cycle topics Full size table

As mentioned earlier in Section 2, games have specific characteristics, which the conventional software development process cannot completely address. In the past years, research on GDSE process life cycle topics has become more active because, unlike other software products, games provide entertainment and user enjoyment, and developers need to give more importance to these aspects. As a result, research about the pre-production phase has increased. The implementation phase is shorter than in the traditional software implementation process because of the short time to market. This production-phase research intensity has attracted the interest of many researchers, and maximum research activity has been reported because the GDSE domain requires efficient development and coding techniques. McShaffry (2003) also highlighted the importance of the production phase to counteract poor internal quality. There is much less research activity in the post-production phase than in the pre-production and production phases.

Figure 7 presents the growth of each GDSE process life cycle research topic since 2000. It is apparent that in the pre-production phase, the most researched topic is management of the game development process, followed in this order by production-phase development platforms, programming, and implementation topics. In the post-production phase, the marketing area attracted the largest amount of research interest. The state of the art research is the description of actual primary studies, and, therefore, they are mapped according to the research topics they addressed (Budgen et al., 2008). Next, a short description of each GDSE topic is presented along with a full reference list. A full reference list of all the studies included is presented in Additional file 1: Appendix A.

Fig. 7 GDSE process life cycle research topics Full size image

Pre-production phase

Management

In the pre-production phase, most of the studies categorized under this topic address management issues during the GDSE process life cycle. The overall management of the game development process combines both an engineering process and creation of artistic assets. Ramadan and Widyani [S1] compared various game development strategies from a management perspective, and most studies like [S3], [S6], [S7], and [S8] have proposed frameworks for game development. Game development guidelines can be followed to manage GDSE process life cycle. The presence of agile practices in the game development processes is also highlighted by some studies. Tschang [S4] and Petrillo et al. [S17] highlighted the issues in the game development process and their differences from traditional software development practices. Management of development-team members and their interaction is critically important in this aspect.

Some studies [S10] and [S11] have provided data analytics and empirical analysis of the game development process and issues of interdisciplinary team involvement. Best management practices in the game development process must consider certain elements such as staying on budget, timing, and producing the desired output. To assess game quality, five usability and quality criteria (functional, internally complete, balanced, fun, and accessible) can be used, but a process maturity model specific to the game development process is still needed to measure these processes for better management and high performance.

Requirements specification

One of the main differences between the traditional software development process and GDSE process life cycle is the requirements phase. The game development process requires consideration of many factors such as emotion, game play, aesthetics, and immersive factors. In four studies, the authors have discussed the requirements engineering perspective to highlight its importance for the whole game-software development process. They discussed emotional factors, language ontology, elicitation, feedback, and emergence [S19], [S20], [S21], and [S22]. In particular, game developers must understand these basic non-functional requirements along with the game play requirements and incorporate them while developing games. The main challenges in requirements identification are a) communication between diverse background stakeholders, b) non-functional requirements incorporation with game play requirements, such as media and technology integration, and c) validation of non-functional requirement such as fun, which is very complex because it is totally dependent on the target audience. Callele et al. [S20] further fabricated a set of requirements based on emotional criteria, game-playing criteria (cognitive factors and mechanics), and sensory requirements (visual, auditory, and haptic). The requirements specification phase must address both the functional and non-functional requirements of game development.

Game system description language

Many description languages are currently used by developers, such as the UML model, agent-based methodologies, and soft-system methodologies. Quanyin et al. [S32] proposed the UML model for mobile games. They performed experiments and reported that it would be a good model for further development of games on the Android operating system. Shaker et al. [S33] extracted features of the Super Mario Brothers game from different levels, frequency sequences of level elements, and statistical design levels. Then, they analyzed the relationship between a player’s experience and the level design parameters of platform games using feature analysis modelling. Tylor et al. [S28] proposed a soft system methodology for initial identification of game concepts in the development process. The proposed approach can be used instead of a popular description language because it provides an overview of the game. Chan and Yuen [S30] and Rodriguez et al. [S31] proposed an ontology knowledge framework for digital game development and serious games modelling using the AOSE methodology. A system description language for games must be both intelligible to human beings and formal enough to support comparison and analysis of players and system behaviors. In addition, it must be production-independent, adequately describe the overall game process, and provide clear guidelines for developers.

Reusability

The existence of reusability of software (Capretz and Lee 1992) and development platforms in game development has been reported by some researchers, but to gain its full advantages, commonality and variability analysis must be done in the pre-production phase. This category addresses reuse techniques for game development software (Ahmed and Capretz, 2011). Neto et al. [S34] performed a survey that analyzed game development software reuse techniques and their similarity to software product lines. Reuse techniques in game development could reduce cost and time and improve quality and productivity. For reuse techniques, commonality and variability analysis is very important, similar to a software product line. Szegletes and Forstner [S36] proposed a reusable framework for adaptive game development. The architecture of the proposed framework consisted of loosely coupled components for better flexibility. They tested their framework by developing educational games. The requirements of the new game must be well aligned with the reusable components of the previously developed game.

Game design document

The Game Design Document (GDD) is an important deliverable in the pre-production phase. It consists of a coherent description of the basic components, their interrelationships, directions, and a shared vocabulary for efficient development. Westera et al. [S37] addressed the issue of design complexity in serious games by proposing a design framework. Furthermore, Salazar et al. [S38] highlighted the importance of a game design document for game development and provided an analysis of many available game design documents from the literature. They also compared their findings with traditional software requirement specifications and concluded that a poor game design document can lead to poor-quality product, rework, and financial losses in the production and post-production phases. Hsu et al. [S40] pointed out the issues of level determination in games and trade-off decisions about them. They proposed an approach to solve the trade-off decision problem, which is based on a neural network technique and uses a genetic algorithm to perform design optimization. Khanal et al. [S41] presented design research for serious games for mobile platforms, and Cheng et al. [S42] provided design research for integrating GIS spatial query information into serious games. Finally, Ibrahim and Jaafar [S43] and Tang and Hanneghan [S44] worked on a game content model for game design documents. Currently, GDD suffers from formalism and incomplete representation; to address this issue, the formal development of GDD is very important. A comprehensive GDD (focused on the game’s basic design and premises) results in good game quality.

Game prototyping

Game prototyping in the pre-production phase helps the developer to clarify the fundamental mechanics of the final game. Game prototyping in the preproduction phases is considered important because it is used to convey game and play mechanics and also helps in evaluating a game player’s experience. Reyno and Cubel [S49] proposed automatic prototyping for game development based on a model-driven approach. An automatic transformation generates the software prototype code in C++. De Silva et al. [S48] proposed community-driven game prototyping. The developer can approach the well-established community and focus on the technical stuff rather than starting from scratch. They used this approach for massive, multi-player online game development. Guo et al. [S50], Kanev and Sugiyam [S51], and Piesoto et al. [S52] proposed analysis of rapid prototyping for Pranndo’s history-dependent games, 3D interactive computer games, and game development frameworks respectively. Prototypes also help to identify missing functionality, after which developers can easily incorporate quick design changes. Model-driven or rapid-prototyping approaches can be used to develop game prototypes.

Design tools

Game design tools are used to help game developers create descriptions of effects and game events in detail without high-level programming skills. Cho and Lee [S56] and Segundo et al. [S57] proposed an event design tool for rapid game development and claimed that it does not require any kind of programming skill. These tools also enable reuse of existing components and reduce the total time of the game-creation process.

Risk management

In the game development domain, risk management factors do not receive much discussion by researchers. Risk management is very important from a project management point of view. Identifying risk factors in the game development process is also important. In game development, the project manager is the game producer and must bring together management, technical, and aesthetic aspects to create a successful game. The study by Schmalz et al. [S58] is the only study highlighting the issue of risk management in video development projects. They identified two risk factors during the development process: failure of development strategy and absence of the fun factor. In game development, important risk factors can be the development strategy, the fun factor or extent of originality, scheduling, budgeting, and others, but very low priority has been given by game developers to formal analysis of risk factors.

Production phase

Asset creation

Asset creation in the production phase is the foundation stage where game developers create the various assets and then use them in the game implementation phase. In the production phase, the first step is to create assets for the game. One of these assets is audio creation. Migneco et al. [S63] developed an audio-processing library for game development in Flash. It includes common audio-processing routines and sound-interaction Web games. Minovic et al. [S65] proposed an approach based on the model drive method for user interface development, and Pour et al. [S64] presented a brain computer interface technology that can control a game on a mobile device using EEG Mu rhythms. For audio processing, open-source libraries are available, especially for games. Audio and interface design are examples of game assets.

Storyboard production

Storyboard production is the most important phase of game production; it involves development of game scenarios for level solutions and incorporation of artificial intelligence planning techniques for representing the various features of games through a traditional white board or flow chart. Pizzi et al. [S59] proposed a rational approach that elaborated game-level scenario solutions using knowledge representation and also incorporated AI techniques to explore alternative solutions by direct interaction with generated storyboards. Finally, Anderson [S61] presented a classification of scripting systems for serious and entertainment games, and Cai and Chen [S62] explored scene editor software for game scenes. Their approach was based on the OGRE.Net framework and C++ technology. Various scripting editors based on different technologies are available for game developers to produce storyboards. Some of this software helps to develop and edit scenes at different game levels, and other software helps by generating game levels automatically based on a description.

Development platforms

The studies classified under this category proposed various types of platforms for game development. Development platforms provide a ready-made architecture for server–client connectivity and help developers create games quickly. Open-source development platforms are available, but developers must customize them according to the required functionality. Peres et al. [S69] used a scrum methodology for game development, especially for multiple platforms, and implemented interfaces with social networking Web sites such as Twitter and Facebook. Jieyi et al. [S70] proposed a platform for quick development of mobile 3D games. First, the platform implemented the game template in two environments such as the Nokia series 60 platform and the Symbian OS. The second part of the process involved analysis of the entire game structure and extraction of game parameters for later customization. Finally, the tool could be used for game customization. Lin et al. [S] developed intelligent multimedia mobile games from embedded platforms. The proposed communication protocol was able to control the embedded platform to achieve the game usability and amusement. Mao et al. [S78] presented a logical animation platform for game design and development, and Alers and Barakova [S81] developed a multi-agent platform for an educational children’s game. Suomela et al. [S77] highlighted the important aspects of multi-user application platforms used for rapid game development. Some researchers have proposed a development platform similar to that described above that provides connectivity along with client customization and unnecessary updating of game servers.

Formal language description

Game semantics can be classified under formal language description for programming languages; only two studies were reported under this classification. The formal language description of game semantics provided a way to gain insight into the design of programming languages for game development. Mellies [S99] proposed a denotational prepositional linear logic for asynchronous games, and Calderon and McCusker [S100] presented their analysis of game semantics using coherence spaces. Very little work has been reported in this area, and very few game semantic descriptions of languages have been published.

Programming

Code complexity is increasing, especially in game development, because of the incorporation of complex modules, AI techniques, and a variety of behaviors. The most common programming languages used in game development are object-oriented structured languages such as Java, C, and C++. Studies classified under this category explored the programming aspect of game development. El Rhalibi et al. [S82] proposed a development environment based on Java Web Start and JXTA P2P technologies called Homura and NetHomura. It extends the JME game engine by facilitating content libraries, providing a new interface, and also providing a software suite that supports advanced graphical functionalities within IDE. The other two studies, done by Meng et al. [S84] and Chen and Xu [S85], also explored programming languages such as C++, DirectX, and Web GL and also Web Socket technologies for game development. Three studies by Yang et al. [S87], Yang and Zhang [S88], and Wang and Lu [S89] explored collision detection algorithms from a game logic aspect for software games, proposed A* search, and AI optimization-based algorithms.

Wang et al. [S83] proposed a framework for developing games based on J2ME technology. Zhang et al. [S92] also explored the effects of object-oriented technology on performance, executable file size, and optimization techniques for mobile games and suggested that object-oriented technology should be used with great care because the structured programming in game development is highly competitive. Bartish and Thevathayan [S86] and Fahy and Krewer [S90] analyzed the use of agents, finite state machines, and open-source libraries for the overwhelmingly complex process of multi-platform game development. Optimization techniques can be used with object-oriented programming to avoid unnecessarily redundant classes and inheritance, and to handle performance bottlenecks. These languages can be used across different development environments such as Android, iOS, Windows, and Linux. Researchers have proposed various approaches and tools for efficient game development. The integration of various development artefacts into games can also be done by generative programming, which also helps to achieve efficient development.

Game engine

A game engine is a kind of special software framework that is used in the production phase for creating and developing games. Game engines consist mainly of a combination of core functionalities such as sound, a physics engine or collision detection, AI, scripting, animation, networking, memory management, and scene graphs. Hudlicka [S108] identified a set of requirements for a game engine, including identification of the player’s emotions and the social interactions among game characters. This is the only study that has highlighted the important functionalities that an affective game engine must support. Another study by Wu et al. [S109] focused on game script engine development based on J2ME. It divided script engines into two types. The first type is the high-level script engine that includes packaging and refining of the script engine. The second type, the low-level script engine includes feature packages associated only with API. Four studies [S102], [S105], [S106], and [S107] explored the development of game engines on mobile platforms. Finally, Anderson et al. [S109] proposed a game engine selection tool. Recently, developers have been using previously developed or open-source game engines to economize on the game development process. Various researchers have proposed script-based, design pattern-based, and customizable game engines. In the GDSE process life cycle, game engines automate the game creation process and help a developer to develop a game in a shorter time.

Implementation

The foundations of game theory are used in game development because it is a branch of decision theory that describes interdependent decisions. Most studies in this category described different aspects of game implementation technologies on various types of platforms. They considered improving programming skills, 2D/3D animations and graphics, sound engineering, project management, logic design, story-writing interface design, and AI techniques. Various kinds of game implementation technologies can be found in the literature. Vanhatupa [S117] presented a survey of implementation technologies especially for browser games. The technologies explored in these studies are mainly server applications (application runtime, server-side scripting, and user interface and communication), client applications, databases, and architecture. The same study also described the accessories that can be used for implementation: application platforms, game engines, and various types of plug-ins. Abd El-Sattar [S112] proposed an interactive computer-based game framework for the implementation process. The framework includes steps from design through implementation that are based on game theory foundations and focus mainly on game models, Nash equilibrium, and strategies of play. The proposed framework includes architectural design and specifications, a proposed game overview, a game start-up interface and difficulty scaling, game modelling, the game environment and player control, and a free-style combat system.

Four studies [S113], [S114], [S119] and [S120] focused mainly on a development framework for mobile devices. Su et al. [S96] proposed a framework describing implementation of various main modules such as pressure movement, a thread pool based on the I/O completion port, and a message module. They also claimed that their proposed framework addressed the problems of traditional frameworks such as the single-server exhaustion problem, synchronization, and thread-pooling issues. Jhingut et al. [S114] discussed 3D mobile game implementation technologies from both single-player and multi-player perspectives. They also evaluated two game APIs: MDP 2.0 and M3G API. Finally, Kao et al. [S120] proposed a client framework for mobile devices that used a message-based communication protocol and reserved platform-specific data as much as possible. A few researchers have proposed agent-based frameworks as explored above for effective communication and synchronization between system components.

Post-production phase

Quality assurance

Process validation plays an important role in assessing game quality. Collection and evaluation of process data from the pre-production phase through to the post-production phase either provide evidence that the overall development process produces a good-quality game as a final product or reveal that it cannot. Only two studies were reported under this classification. Stacey et al. [S122] used a story-telling strategy to assess the game development process. They carried out a two-year case study on a four-person development team. Astrachan et al. [S126] tried to validate the game creation process by analyzing the development process and design decisions made during development. The scope of studies done under this category was limited. The case studies were done for small teams and were limited to only one phase. In the game development process, quality assurance and process validation are critical components, and standard methodologies are lacking. More exploration is needed to provide deeper insights. QA for games needs more research attention because very little work has been reported.

Beta testing

Beta testing in games is used to evaluate overall game functionality using external testers. Beta testing is a kind of first public release for testing purposes by users. Game publishers often find it effective because bugs are identified by users that were missed by developers. If any desired functionality is missing, it must be addressed at this stage. This testing is performed before final game release. Under this classification, only four studies [S127], [S128], [S129], and [S130] were reported. Hable and Platzer [S129] evaluated their proposed development framework for mobile game platforms. Omar et al. [S128] evaluated educational computer games and identified two evaluation techniques: Playability Heuristic for Educational Games (PHEG) for expert evaluators, and Playability Assessment of Educational Games (PAEG) for real-world users. The proposed AHP-based Holistic Online Evaluation System for Educational Computer Games (AHP_HeGES) online evaluation tool can be used in the evaluation process. Very little work was reported in this category.

Heuristic-based testing

Heuristics are a kind of design guideline and can be used as an evaluation tool by game design developers or users. Basically, heuristics can be used in software engineering to test the interface. In games, evaluation must extend beyond the interface because other playability experiences also need evaluation such as the game story, play, and mechanics. Six studies [S132], [S133], [S134], [S146], [S147], and [S148] fell under this classification. Al-Azawi et al. [S132] proposed a heuristic testing-based framework for game development. The proposed framework divides testing by two types of user: experts and real-world users. Experts evaluate playability, game usability, and game quality factors. Users evaluate the game as a positive or negative experience. Omar and Jaafar [S133] and Al-Azawi et al. [S134] proposed a framework for the evaluation phase in the game development process. Heuristic testing can be done during the development process and repeated from the early design phase. It is perfect for game testing because after the game is implemented, if anything goes wrong, it will be too expensive to fix and will affect the project schedule. This topic also needs attention by researchers.

Empirical testing

Empirical testing approaches for the game-testing phase have been explored by only a few researchers. The approaches described by these researchers have focused only on final-product quality and usability. Only two studies were reported under this classification [S135] and [S136]. Escudeiro and Escudeiro [S135] used a Quantitative Evaluation Framework (QEF) to evaluate serious mobile games and reported that QEF frameworks are very important in validating educational games and final-product quality. Choi [S136] analyzed the effectiveness of usability-expert evaluation and testing for game development. Experimental results showed the importance of the validation process in game development. The scope of the studies done under this category was very limited, and other aspects of final-product testing have not been explored by researchers.

Testing tools

Development of testing tools has not been addressed by many researchers. Only one study [S137] was reported under this classification. Cho et al. [S137] proposed testing tools for black-box and scenario-based testing. They used their tool on several online games to verify its effectiveness. Tools for game testing facilitate the testing process. The proposed scope of study was also limited, and available testing tools have focused only on evaluation of online games.

Marketing

After a game has been developed, the final step is marketing. Marketing of games includes a marketing strategy and a marketing plan. The marketing strategy is directly related to the choice of users and the types of games that are in demand. The marketing plan is something that a publisher can give to a distributor to execute on the publisher’s behalf. Some studies have been done from the perspective of game-user satisfaction that provide the baseline for the factors that game developers must take into account for new game development. Yee et al. [S142] described a game motivation scale based on a three-factor model that can be used to assess game trends. Three studies [S139], [S143], and [S144] empirically investigated the perspective of game-user satisfaction and loyalty. No study in the literature has directly captured a marketing strategy and a marketing plan for games.

RQ 3: What research approaches are being used by researchers in digital game domain?

Table 10 shows that most GDSE process life cycle studies have used an exploratory research approach. Figure 8 shows a comparison between the three research approaches used in the GDSE process life cycle domain. Figure 9 shows a comparison among the empirical research methods used in the GDSE process life cycle domain. The results suggest that surveys are most frequently used in GDSE domain research.

Table 10 GDLC research approach Full size table

Fig. 8 GDSE process life cycle research approaches Full size image

Fig. 9 Empirical research approaches Full size image

These results were to be expected because the GDSE domain has only been growing since 2005; before 2010 more studies follow the descriptive approach because the field was young. After 2010, more studies have followed the exploratory approach because the domain has been maturing. More specifically, exploratory and descriptive approaches seem now to be equally used in the GDSE process life cycle domain.

RQ4: What empirical research methods are being used in the software games domain?

Table 11 depicts the results of the RQ4. The experimental empirical method is less used in the GDSE process life cycle domain, as mentioned by Wohlin et al. (2000), because carrying out formal experiments requires significant experience. The case-study method has also been used infrequently by researchers. The reason for this could be that case studies require project data obtained through various types of observations or measurements, and no research database or repository is available for the GDSE process life cycle domain. Finally, the survey method was more common than the other two methods. This is reasonable because the GDSE domain is still immature and researchers are trying to produce knowledge by questioning game users, experts, and others.