Game Development as Software Development

1. Introduction

Game development is a collaborative art. Creating games require many teams working together in drawing, choosing music, writing scenario and programming!
This blog post aims to compare game development with the general software development in order to find the best methodology for game development. While most applications are service-oriented, games goal is to entertain users. Since there are some differences between games and software, there will be some differences in the development process. Will traditional project management techniques work with games? What about waterfall and agile methods? Let’s see!

2. Games Development

2.1. Video Games VS. Software

Nintendo…the world’s largest video game company by revenue

A video game is an electronic game that involves human interaction with a user interface to generate visual feedback on a video device[1]. There are several types of games such as casual, educational, and serious.
Video Games are just like any other computer program in terms of intangibility. However, there are some differences. We usually create applications to provide services. Microsoft Word for example is software to create/edit/print textual data! However, the main aim of games is to provide some “fun”[2]. Games are created to entertain users! Even if they are educational, the goal is to teach the user while he is having some fun.

2.2. Game Development VS. Software Development

Video game development is the process of creating a video game[3]. Just like any other software development there are plenty of methodologies we may follow. Games are, most of the time, large-scale software. In game development there are several teams working in the same project. There are teams for programming, drawing, designing..etc. Games include audio, video, images, and a scenario. Another important thing to consider is the “experience” we aim to create and evolve in games[2].

Many teams work together to build a successful game

In “Probabilistic Modelling and Reasoning” course[12] we learnt that one of the hot topics in machine learning now is how to match players with similar skill levels in a large online gaming site[11]. It is about “measuring” experience of players! Or measuring experience of one player in order to let him play with a difficulty-level that matches his experience!
Game development is not just about programming! It is a creative work! We learnt that a piece of software is considered a successful one if it is delivered on schedule, within budget and meets users’ needs in scope and quality[4]. A good question to ask here: “What are users’ needs for a video game?”. In lectures we discussed how hard it is to measure software! It is even harder to measure how fun a game is! Or How entertained the gamers are! We studied some measures for software but here the measurements are harder since game development is driven by innovation.
Sometimes we have the time limit. For example, a game for Christmas should be published before Dec.25th!

2.3. Choosing the Methodology

Game development is a software development process[3]. Some people say that game development is not suited for typical software life cycle methods, such as the waterfall model[5]. Waterfall is a hated process especially in games[7]. Some developers say it is not practical because creating fun(user needs) is an experimental process. Building software iteratively by separating it into small deliverables and working on tight timeframes seem more reasonable for some developers[7]. However, some others believe in creating a balance[6] between the agility and the waterfall approaches. Game development involves an overlap of many methodologies[6]. When we have clear requirements and specification we can use waterfall but the design will be iterative[5].

2.4. Personal Opinion

Assassin’s Creed Revelation Development team

In SAPM lectures[10] we studied that it is important to use the formal traditional project management charts and methods when there are tasks with complex dependencies. I believe that there are higher dependencies in game development than any other software. There are high numbers of people working together in a tight-connected tasks. Artists should finish drawing the characters in the game in a specific time. Programmers can’t do some tasks without having some images and audio files. In game management we need to use the traditional techniques for the whole project. Contracts and assets could be written waterfally. However, we still need to use some agile methods for the design. Successful games projects are delivered on time, within budget, and they should entertain the users. Finding the balance in using the methodologies is a core key for this.

3. Conclusion

Games are just like any other software in terms of intangibility. However, games are more complex in terms of having multiple teams working together with complex related tasks. The goal of games is to entertain the user. The best approach for game development is to use a mixture of methodologies starting from formal traditional techniques to deal with the whole project, to waterfall method in writing contracts, till agility in programming!

Recommended Video (less than 3 minutes)- The Evolution of PC Games

5. / page 225
12. – slide 2