Academia.eduAcademia.edu

Learning to Make Computer Games: An Academic Approach

2008

Anything that combines aspects of play, challenge and conflict can be seen as a game. Therefore, games provide a versatile but demarcated setting for education. From the students' perspective the concept of 'game' is familiar, approachable and diverse, which makes it motivating for them. From the teachers' point of view, a game can serve as a mixing pot for various study subjects. For example, making a game can concretise study topics as well as work practices and on-the-fly collaboration across many different disciplines. Therefore, games as an educational form seem to suit to situations where the study material cannot be partitioned into strict independent fragments. Because our areas of teaching are digital arts and software development, it is natural to instruct students using computer games projects.

Harri Hakonen | Tuomas Mäkilä | Jouni Smed | Andy Best Learning to Make Computer Games: An Academic Approach TUCS Technical Report No 899, June 2008 Learning to Make Computer Games: An Academic Approach Harri Hakonen Department of Information Technology, FI-20014 University of Turku, Finland. Email: [email protected] Tuomas Mäkilä Department of Information Technology, FI-20014 University of Turku, Finland. Email: [email protected] Jouni Smed Department of Information Technology, FI-20014 University of Turku, Finland. Email: [email protected] Andy Best Digital Arts, Arts Academy, Turku University of Applied Sciences, Joukahaisenkatu 3–5, FI-20520 Turku, Finland. Email: [email protected] TUCS Technical Report No 899, June 2008 Abstract Anything that combines aspects of play, challenge and conflict can be seen as a game. Therefore, games provide a versatile but demarcated setting for education. From the students’ perspective the concept of ‘game’ is familiar, approachable and diverse, which makes it motivating for them. From the teachers’ point of view, a game can serve as a mixing pot for various study subjects. For example, making a game can concretise study topics as well as work practices and on-the-fly collaboration across many different disciplines. Therefore, games as an educational form seem to suit to situations where the study material cannot be partitioned into strict independent fragments. Because our areas of teaching are digital arts and software development, it is natural to instruct students using computer games projects. However, the selection of a game as an educational form does not solve problems in learning such as misconceptions due to simplification. To deepen the students’ understanding we have to cope with at least the following issues: how to verify and validate acquired knowledge, how to distinguish and intermix the essentials, and how conflicting interests in the domain of computer games are resolved. From our experience, in digital arts and software development a teacher cannot—and should not—expect pre-made plans to hold when teaching more advanced knowledge: To understand the ‘whys’ we have to consider holistically the contexts, contents, and organizations of the study topics. To meet these prerequisites with tested practices we (i.e., the teachers and the students) create computer games in actual software development projects. There is a myriad of ways for arranging a software development project. We present three project configurations that depend on how closely the teachers participate to the actual project work. We describe and analyse our experiences from several course instances and student projects on computer game development, and discuss their implications for the teacher. Keywords: Computer games, education, student project TUCS Laboratory Algorithmics 1 Introduction The computer game industry has been historically founded on self-taught game programmers who mostly earned their credits from other fields. Even in the mid 1980s many commercial games were created by small groups who had an intriguing idea for a new kind of end-user experience and mutual ambition to put it into a publishable form. Since then, the industry has grown steadily more professional and large-scale. The increasing complexity of the computer game development demands advanced technologies and practices, and consequently the first academic programs for teaching game making started in the late 1990s. International Game Developers Association (IGDA) laid down their principles for academic curriculum in 2003 [6]. It divides the area to different approaches (called “core topics”) and assigns them as fields of study. The core topics are • critical game studies, • games and society, • game design, • game programming, • visual design, • audio design, • interactive storytelling, • game production, and • business of gaming. Each core topic has then subcategories that have a specific focus. For example, game programming is broken down to • math and science techniques (e.g., Newtonian physics), • style and design principles, • information design (e.g., data structures), • prototyping, • testing, • programming teams, 1 Humanistic perspective Business perspective (e.g. end−user experience) (e.g. markets and competitors) Game Construction perspective » Game design » Content creation » Game programming » Software construction Figure 1: The three perspectives for making a computer game. • design/technology synthesis, • system architecture for real-time game environments and simulations, • data-driven systems, • game logic, • multimedia programming, • artificial intelligence, • networks, and • tools for designers and play analysis. One can argue that the IGDA classification is just a list of techniques and approaches lacking broader perspective in the academic field. For this reason, we summarize three academic perspectives for computer game research and education (see Figure 1): • Humanistic perspective is about how a game affects and changes the users, gaming communities, other social networks, and society at large. • Business perspective concerns economics around computer games (e.g., competing on the markets, productisation, and investment strategies). • Construction perspective deals with the actual making of an executable computer game. Although each of the perspectives provides essential topics for study, in this paper we focus on the construction perspective. In other words, our viewpoint is the constructional aspects of software development within the domain of computer games. This has four subcategories: 2 Rules Goal Representation mo tiv ati on Challenge n tio uc str ob Play nt me ree ag co rre sp on de nc e definition Conflict Player concretization Opponent indeterminism Figure 2: Components, relationships, and aspects of a game [9, p. 2]. 1. Game design: What is the intended end-user experience and what game elements contribute to it? 2. Content creation: What are the entertainment artefacts and functionalities and how they are represented? 3. Game programming: How to implement the software mechanisms that serve the content creation so that the game design is achieved? 4. Software construction: How to weave the digital game components into an executable game? These perspectives target product design and development and they categorize the main artistic and technical concerns in the making of computer games. Let us consider how these perspectives relate to one another. The game design concretizes the vision, intention, concept and theme of a game. Among other things it includes activities for designing the back-stories, composing the opposing forces and the major roles, and developing the synthetic participants (e.g., in-game characters, sidekicks, and deus ex machina). Game design is a creative process but it is governed by the rules of play, since we need an outcome that fulfils the definition of game. Any system that consists of the following properties can be seen as a game: players who participate the game, rules that set the limits to the game, goals that motivate the players towards achievements, opposing forces that obstruct the players, and representation that concretizes the game. These elements form the defining aspects of challenge, conflict, and play (see Figure 2). Nowadays, the demands on the aesthetics, end-user experience, and replayability of a game are high. To meet them cost-efficiently the game design is implemented in two fronts at the same time. Simply put, the intended game features can be divided into art and technology. ‘Art’ comprises the entertainment content, which is run on the technology platform. The platform requires specialized programming effort in some form (even if it is purchased 3 from a third party). These two fronts require deep expertise, and thus, they form their own special areas. However, they are not dissociated in the game development, but one of the key challenges is bringing them together. In other words, when making a game we have to consider, for example, programming, 3D modelling, and animation together. The game industry has pioneered finding practices and technologies to have the interaction between many disciplines such as computer science, art and design, business, management, and productisation. One can argue that game development is an expertise area in itself by connecting these disciplines. Because all these perspectives are present at the same time in a game, they are often developed in parallel: At first the emphasis is on the game design and gradually, as the game attributes and features become fixed, the focus moves towards content creation and software system issues. However, it is only seldom possible to stabilize and freeze the whole game design. Thus, there must be feedback activities that evaluate and control the possible changes to the game design. This uncertainty is intrinsic to software development in general and it arises from the digital nature of the computer programs. Especially due to different cost structures, software construction differs considerably from the manufacturing process for physical products. Games are useful in education because they provide versatile but demarcate setting that can include almost any kind of a topic. Furthermore, games tend to intrigue the humans intrinsically, which can be used for motivation and encouragement. Games are interactive when playing and making them. This allows a teacher to blend in topics that develop social skills and group work practices. Making computer games—and specialized education for it—teaches more than just creating the games. We claim that the domain of computer games is one of the most challenging software product domains, and thus, the students also learn beneficial practices used in the software industry [4] and in multimedia industry in general. To facilitate this extrapolation the teacher (or the group of teachers collectively) should have profound experience on the whole computer game domain, teaching methods, and project work. In this paper, we discuss how to teach the making of computer games. To simplify the effort we place emphasis on the construction perspective. In Section 2 we introduce the main factors of game development that influence the education. In Section 3 we examine how to organize the study fragments into a curriculum. Section 4 consists of an introduction to project attributes, forces, and configuration. Sections 2–4 summarize the rationale of our educational decisions for a project where students construct a computer game. Section 5 presents models for game production, and their impact on teaching is discussed in Section 6. After that, we present three schemes of how to arrange a student project: In Section 7 the game development project is configured as a traditional assignment. In Section 8 the project is run as 4 a research laboratory course where the teachers participate as on-site customers or consultants. In Section 9 we describe a project where the teachers work together with the art and technology students. Then, we discuss the excluded issues and sum up the lessons learnt in Section 10. Finally, the concluding remarks appear in Section 11. 2 Domain of computer games Expertise on a complicated domain is not only about understanding advanced concepts and topics at hand. Deep know-how is also about knowledge with respect to the context in a given situation. For example, one must be proficient in applying various operation strategies and methods, evaluating relevancy, changing the context or the perspective, interconnecting the details with the abstractions, and recognizing failures. These skills cannot be categorized into isolated disciplines nor be learnt one by one. In our case, this observation applies to the digital arts as much as to the game software development, which together form the domain of computer games. However, the setting is not necessarily doubly complex, because in computer games the notion about ‘context’ can be approached from two aspects. These aspects are present at the same time but they can be considered sequentially. More specifically, in computer games it is possible to fractionate—with a certain cost and effort—the game content and the underlying technology. Computer game construction succeeds in joining two areas of expertise, the digital arts that creates the game content and the game software development that provides the game technology. The bipolar characteristics of computer game development offers us two directions for scaling the game problems. On one hand, the amount, quality and finesse of the content concern mainly the effort put in by the artists; from the technology perspective these are managed via resource parameterization, not by changed functionality. On the other hand, the technology issues, such as state-of-the-art algorithms, networking, and compensation of resource limitations [9], matter mostly for the game software development; from the arts perspective they set the boundaries for the creative mind. In addition to these two polars, there must be a context that connects them. The game developers have many, often ingenious solutions for this purpose, but this topic is outside the scope of this paper. From the education point of view, the bipolarity of the computer games has a significant consequence: There are many aspects that can be adjusted without losing the characteristic attributes of computer game construction. In other words, the central part of the work (in both the digital arts and game software development) made in large commercial games can also be demonstrated with small non-commercial games. This property of multi5 scalability makes the domain of computer games well-suited for teaching the actual profession of computer game making. 3 Organization of the study fragments The selection of topics to be studied is not the only educational problem, because we have to decide how the content to be taught is organized so that new things do not pile upon the student all at once. Spiral curriculum [1, p. 13] is a common approach to achieve this at the introductory education level or with the topics that have a clear conceptual structure. For example, the fundamentals of software construction can typically be taught apart and without knowledge about application domains. In principle this is also the case with digital arts but the approach is often considered impractical. The reason for this difference is that the basic software concepts are mostly based on mathematical formalisms and detachable details, but in digital arts it is significant that the wholeness binds the minor features. In the spiral approach, a topic is taught starting from a reduced and simple instance to more diverse and complex occurrence. This can be accomplished by organizing the study fragments of the topic by the following guideline: 1. Introduce the topic as simply as possible by a concrete example or instance. The students should be able to understand what is the topic compared to the other topics. 2. Demonstrate the most important variations of the topic. The students should be able to recognize the forms in which the topic appears: What are the common factors and how the changes relate to them. 3. Invite the students to create simple new variations from the topic. The students should be able to discern the topic and imitate the presented examples. 4. Present the topic as an isolated concept having a static aspect (e.g., structure) and a dynamic aspect (e.g., change) with respect to its context. The students should learn the schema of the topic and the fundamental rules associated with it. 5. Show the boundaries of the topic by exceptions, misuses, and conflicts. The students should grasp the applicability of the topic. 6. Invite the students to apply the topic in new non-trivial situations and to assess the outcome. The students should be ready for unaided study of the topic. 6 The phasing of the study fragments according to increasing complexity is the essence of the spiral approach. It underlines that recognition of a topic and understanding of it are different. For example, knowing a programming language does not make one a programmer or knowing how to use an image editor does not make one an artist. From the education perspective, the spiral curriculum specifies how the knowledge-base evolves, and thus, the selection of a study level becomes straightforward. For example, a teacher can adjust the starting level to match the students’ skills or set prerequisites for the course. Furthermore, changing the pace of study, omitting some details, giving specialized teaching for the more advanced students, or jumping from one spiral topic to another do not mix up the curriculum. The advanced phases act often as a context for the simpler ones, which forms a continuum of abstractions. From the student’s perspective this gives time for comprehension because falling behind does not blur the direction. The downside of the spiral approach is that the student must be able to cope with uncertainty and to have confidence that the topic gets more understandable later. From the teachers’ perspective the spiral approach requires deep understanding of the topics. Otherwise, the teacher is not able to prepare the spirals beforehand and the possible chains of dependencies between the spirals are lost. Despite many pros and few cons, the spiral approach is too limited for advanced studies or with intertwined topics and we have to use more elaborate curriculum form, such as lattice [3]. As an example, we demonstrate the following higher-level issues to our students: • what kind of contexts, aspects, viewpoints, and perspectives must be considered and how they are related, • how the knowledge appears in various situations and how to interpret the knowledge, • how the balance of conflicting interests reflects the intention behind a solution, • what knowledge-seeking strategies suit for a certain kind of situations, • how to apply the general lessons learnt in software development into the context at hand, • what conceptual elements are relevant and how they combine, • how the evolution of the solutions is managed, • how to cope with inaccuracy, uncertainty, risks, and mistakes, and • how to plan and what, and especially, how to change on-the-fly the approach or the way of working to resolve surprising problems. 7 We teach these issues inside the specific domain the students are working with. The idea is that the more advanced the topic is the more the students should form the idea of it by themselves; the teachers’ role is just to be catalyst by giving concrete instances. Because the making of computer games includes both well structural and non-structural concepts, we apply both spiral and lattice approaches when organizing the study fragments. The overall setting from the technical perspective is depicted in Figure 3. The computer game has some use features that can be observed and experienced by the player. For example, the player can share the game world with a remote player via networking or the player can record the game play for later viewing. These use cases of the game are implemented by some technical functionalities that are, due to a need for resource optimizations, only seldom in one-to-one relationship with the features. For example, ‘start and stop’ of the game is often considered in isolation from the actual game flow. Furthermore, ‘start and stop’ can be structured, and thus, it can be approached by the spiral curriculum. Because the features and functionalities have complex many-to-many relationships, the game is not made one spiral at a time but the spirals are advanced gradually over time in a suitable order. The making of the game involves also non-structuralities that require more sophisticated approach. For instance, let us consider decision-making at the strategic level of software development. We must take into account among other things conflicting interests, different perspectives, the current situation at each workflow discipline, the upcoming situations, the workers’ capabilities, and risks involved. At this level, to learn methods for knowledge navigation and knowledge transferring one has to have experience from concrete project cases. 4 Project as an instruction form The organization of the study fragments does not assert how the actual instruction is carried out. This leeway to choose how the teachers and the students co-operate narrows down when we take into account, for instance, the following issues: • resource limitations, such as time schedule in the study period, available learning materials, and the number of students per teacher, • risk management policy, for example concerning the absences and dropouts, and • goals of the course, such as acquired proficiency levels in the study fragments. 8 Technical game features recording/ logging networking Technical functionalities start/stop Work sequence time Considerations (the sets of issues) perspectives situations practices uncertainty management the links of knowledge acquisition Figure 3: The organization of well structural and non-structural topics in a technical software development. The arrows indicate conceptual dependency from dependant towards dependee. Dotted line connects the considered issues in the ‘landscape’ of software development concepts. 9 Business Customer »milestones »contracts »markets »competitors Product t »rationales »requirements »money c Proje People »roles »activities »artefacts Management Process »teams »planning »criteria »steering »skills »motives »knowhow »creativity »features »architecture »quality »tools »standards (libs, langs, notations, ...) Technologies Support »intra−project issues (SPI, reuse, ...) Figure 4: The typical attributes of a project that produces a product [4]. It is not uncommon that in the advanced education the resources are scarce, the working environment is volatile, and the planned results change over time. Although this is also the case in the digital arts and in the software industry, we are in a beneficial circumstance: We have opportunity to put the students in the situation that resembles the actual work in the companies. This gives the idea to arrange the instruction as a project. A project is an undertaking that lasts for limited time period (i.e., has start and end) and aims to produce an unique result. In a company a project can be depicted as in Figure 4: The needs of a customer and the company’s way to make business shape the project so that its outcome, in this case a product, is beneficial for all the participants. Typically, a project has five main attributes: The people operate together by following some process and utilizing development technologies. This effort is facilitated, co-ordinated, and supervised by management activities. If many accomplished projects are similar the collected expertise can be used to support the new resembling projects. We configure the instruction of the selected study topics as a project on the computer game domain. To concretize the topics the end result of the course is a finished product (i.e., a computer game). This choice gives us methods to validate and verify the acquired knowledge (e.g., have the students made rational decisions and does the game fulfil the given requirements and specifications). Also, due to long history in the software development industry, the project-like form of instruction advises how to distinguish and intermix the essential activities and work products. For example, there are 10 many proven practices for prioritization and organizing parallel work. The project practices are imperative also in resolving the conflicting interests and forces that are involved in the making of computer games. A computer game development project is demanding educational method because it integrates the education aspects with many other areas of knowledge and with technical capabilities. For example, all the participants, while attending the instructions, must have adequate knowledge on teamwork, general software development, applicable technologies, tools, project management, and the specific problem domain. This results often in a conflict, especially when the educational goals are high and the time schedule becomes tight. To keep the project feasible and manageable we have to reduce the requirements for the teaching. Apart from getting rid of the irrelevant details, there are two dimensions for the simplification: We can leave out the project attributes, as summarized in Figure 4, or we can specialize more the project features. We claim that ignoring the key project attributes eradicates the whole idea of real-world experience and without the attached interest groups the over-simplification leads apace to ordinary group work assignments. This increases the possibility for misconceptions and introduces conceptual distortions that can interfere with the more advanced learning given later. Thus, we are interested in preserving the inherent complexity of the domain knowledge; instead of mock-up projects we recommend true projects where the project, product, and process issues are present together. To make the project simpler we inject more assumptions into it by adding further non-volatile requirements and forces. These additions are educational in nature, and they can modify the project so that it can be carried out with the given resources (especially with respect to time, because it is a course with a set end date). The problem with this idea of simplification by assumptions is how to actually configure the project. This depends on the case, but as an example, we can • ascertain the students’ starting level to match the pre-requirements so that a student does not exhaust and quit the course, • run greenfield projects over clear application programming interfaces (APIs) rather than extend a legacy system so that the progress is not buried, • make variable details static so that the structure of the topics emerges in such a way that serves the course, • prioritize the usual ‘happy’ cases over the exceptions and error cases, • detract the productisation issues by introducing intermediate objectives that are valid handover points of the project results, and 11 • assume short product life-cycle so that there is no need for maintenance and reuse issues. In general, the setting of a project configuration goes as follows: Before starting the project the teacher must determine what are the educational goals to be demonstrated with respect to the actual real-world issues. Next, the teacher establishes the perspectives from where the selected study topics are to be approached. Then, by using hands-on experience and imagination, the teacher collects the simplifying assumptions so that the project becomes feasible without losing the intention and the central aspects of the real-world work. In our case, we select and abstract the topics in the computer game development. For example, the goal can be an introduction to multiplaying via a local area network (LAN) and the perspective can be a construction of communication technology. From this sub-domain we can select the topic, for example, the implementation of proper balance between consistency and responsiveness for a given game. To simplify the project we can stipulate that the LAN connections are slow and have narrow bandwidth, the self-steering software team is located into one room, and the customers want only to see the alpha release of the game with just the placeholder graphics in place. It is clear that there is a correspondence between the problems in learning and the practices in a software development project: Obvious matters need not to be treated with a project, and the non-obviousness arises especially from the unknown. Let us cover the key issues of learning (italicised in the list below) and how they are matched up in a game development project. The prime learning aspects and issues are summarized, for example, in [3]. • Sufficient base-knowledge gives the students readiness to learn advanced and abstract topics. Before the project starts we can arrange selection interviews to assess the students’ skills and knowledge on technologies, mechanisms, and application domains. • The novices differ from the experts in relation to amount of knowledge, way to acquire further knowledge, way to apply knowledge, and thinking strategies. The diversity can be put to use because proper mixture of novices and experts in the project steps up the activities in peerlearning, mentoring and coaching. • Prior learning, including misconceptions, affects the later comprehension. Because the misconceptions are inevitable, we should detect them as promptly as possible. Thus, the project must have many levels of feedback loops that makes it possible to monitor the ongoing work. For example, the feedback can go through the co-workers, the testing systems, the team leader, the teachers, and the customers. 12 • A complex topic can be understood by going through many different learning episodes from it. In the project this is captured by iterativeincremental development where, essentially, iterative development is about proceeding in small pieces and incremental development is about building on the previously acquired system. • The more advanced the knowledge to be learnt is the less there are right and wrong solutions; instead the solutions should become more credible. The same applies in the software development: The system is not right or wrong, it is usable or less usable for a customer. Furthermore, the system testing does not prevent all faults but it increases the belief and plausibility. • The advanced knowledge cannot be taught in isolated categories if they overlap or have deep interconnections. Analogously, in the making of a software system the most of the challenges are caused by such parts that comprise many, even conflicting, decisions. In the project a complicated situation can be simplified by stabilizing the non-structural issues in order to make them more compatible with the structural ones. For example, in the computer game development some flexible description interfaces can be utilized to separate the construction of the arts and the technologies. • The assessment of the knowledge acquisition must take into account the desired educational goals as well as the causes for the comprehension failures. When the project is concluded it can be analysed in a feedback meeting. One practice is to write a post-mortem document from the project which lists a few most critical reasons for the successes and the failures. 5 Game production The goal of game production is to produce fully-working game products. It builds on the tradition and the methodologies of disciplines such as project management, software engineering, and culture production. Game production life-cycle defines the basic activities which have to be accomplished before a game idea actualizes into a working game product. Although every game and every production team has its own ways of working, some generic models for game production life-cycle activities have been proposed (e.g., game production process and game production hand-book). Figure 5 visualizes the main phases in two game production models [8, 2] and in one software product development model [5]. The essential activities in the production and development phases of each model are also listed in the figure. 13 Game Production Models by Manninen et al. Software Product Development Model by Chandler by Hohmann Game concept Pre−production Concept proposal Pre−production Production Product proposal Production Testing Development plan Quality assurence Wrap−up Development Release Quality assurance Post−release Prelaunch Launch Production: Production: Concept art Level design 3D design Animation Graphics Audio design Program code Play testing Implementation plan Progress tracking Task implementation Design Art Engineering Development: Requirements Analysis Design Implementation Testing Figure 5: Comparison between game production models of Manninen et al. [8] and Chandler [2], and software product development model of Hohmann [5]. The development phases are described on the upper half and more detailed production phase steps on the lower half. 14 If we compare game production models to the generic software product development model we find notable similarities. All models have a starting or a pre-production phase when a (game) product idea is defined and its feasibility is evaluated from the production and business viewpoint, a production phase when the actual product is developed, a quality assurance phase when the final quality of the product is tested, and a release phase when the project is wrapped up and the product is released to the customer. Manninen et al. [8] address the post-release activities (e.g., bug-fixes and user support), which are a natural part of the product life-cycle. Development and production activities are also quite similar between the game production models and the software product development model. The multidisciplinary nature of game production is the main difference. While the activities in the software product development model focus solely on the software development and testing, game production activities include co-operative work of artists, animators, game designers, level designers, musicians, and programmers. Although production modes and best practices exist, surprisingly many game production projects do not utilize well-known project management practices. Some of these productions still manage to be highly successful [7] which implicates that there is not one right way to carry out (or teach) game production but also that the production training has its place. 6 Teaching game production Our curriculum has included other game related issues, such as game algorithms, artificial intelligence, object-oriented programming patterns, interactive storytelling, game design, and co-operation between artists and programmers. Since our universities do not have a degree program in game development, our goal is to teach the students general skills on computer science, software engineering and digital arts. Although teaching game production process itself was not our main goal, we constantly ended up with course formats where the students go through the game production cycle. We observed that using a game production as educational format creates several opportunities: • Versatile but demarcated setting. From the teachers’ point of view, a game can serve as a mixing pot for various study subjects to be included into a curriculum. Also, the project-like form of instruction helps us to distinguish and intermix the essential activities and work products. • Pragmatic teaching approach. It is easier for the students to understand advanced issues connected to the game content when they actually make games themselves. 15 • Higher motivation. The students are motivated by real game development projects (i.e., simple “tic-tac-toe assignments” do not hold students’ interest long enough). • Visible results. A working game demonstrates the acquired knowledge. For example, the students can assess themselves whether they have made rational decisions or fulfilled the given requirements and specifications. Also, the user features are more visual in a game than in other kinds of software products. • General applicability. We claim that the domain of computer games is one of the most challenging software product domains, and thus, the students learn also beneficial practices used in the software industry [4] and in multimedia industry in general. There are also several challenges in using game production as a teaching method: • Sufficient multidisciplinary teaching skills. To facilitate this extrapolation, the teacher (or the group of teachers collectively) should have profound experience on the whole computer game domain, teaching methods, and project work. • Readiness to learn. Students participating game development courses must be proficient at their own study field. The digital design and art students should have traditional visual art skills as well experience on the software tools used for digital art creation. The software developers should master programming and information system design. However, they must also be able to apply the acquired knowledge in the game domain, be ready to work in teams and willing to quickly learn new work practices. • Uncertainty. It is not uncommon that in advanced education the resources are scarce, the working environment is volatile, and the planned results change over time. For this reason, the students must be able to cope with uncertainty and to have confidence that the topics get more understandable later. • Controlled simplification. Over-simplification of complicated and intertwined topics can lead to misconceptions and conceptual distortions that ruin the learning. However, to keep the project feasible and manageable we have to reduce the requirements for the teaching. Apart from getting rid of the irrelevant details, we recommend that the inherent complexity of the domain knowledge is preserved. We claim that injecting more assumptions (i.e., non-volatile requirements and forces) into real-world project carries out the actual simplification. 16 The next three sections present three different approaches—traditional assignment course, research laboratory course, and intensive course—which we have used in our curriculum. 7 Traditional assignment course In traditional assignment course1 students form a team and solve the given problem assignment as a homework exercise. In the software development industry this kind of arrangement is called outsourcing, and the goal of the assignment is to implement a complete computer system. To concentrate the students’ effort on the relevant issues the teachers lecture the theory behind the selected study topics beforehand. Hence, the assignment should demonstrate the practical applications of those theories. Although an assignment course concentrates on the production phase of a game project, the preceding phases must also be taken into account. To give the students a grounding for ideas each student analyses individually some existing game that fits in with the course topics. Then each student writes a game treatment that suggests the main ideas and features for a new game. These game treatment documents form the basis from where the actual game concept is developed at the beginning of the production phase. To keep project management issues simple one team consisting of three to five students runs the game production life-cycle. If more students enrols the course, each teams is given the same assignment. The main activities of this course type are illustrated in Figure 6. The project work can be divided into three phases: inception, construction, and conclusion. At the inception phase, the teachers prepare the assignment and the theory lectures. This activity begins with selecting the study topics, outlining the game concept, and determining the results of the preproduction phase. These three work products determine the perspective and depth of the theory issues that are tackled in the project. After that, the project setting is introduced to the students in lectures where the theoretical background is taught. To support the game production aspect the lectures should include practical guidance for solving the most crucial problems. Whereas the lectures ascertain that the students’ starting level matches the prerequisites, the presentation of the actual assignment acts as a decision point where the students either commit themselves to the course or drop out. The presentation of the assignment is one of the key activities for the successful execution of the assignment. The teacher should write down explicitly and 1 Acknowledgement: The case is based on the on-line course Games and Virtual Environments (“Pelit ja virtuaaliympäristöt”) lectured by Dr Tony Manninen from the University of Oulu. The case study presented here is based solely on the assignment work carried out by the teachers and students of the University of Turku. 17 Teachers Students Prepare assignment and lectures Give lectures Attend lectures Present assignment Design and create game Guide assignment work Evaluate and grade Present game Figure 6: The main activities in a traditional assignment course. explain the assignment milestones, communication mechanisms and practices between the teachers and the students, references to guidance and extra resources, and the grading principles. This focuses the students’ work on the assignment and they do not have to consider the organizational details of the assignment. In the beginning of the construction phase, the students are taught and prepared for the forthcoming teamwork. Especially if the students already have experience on teamwork and the assignment is extensive, the teachers can advise how to divide the work into sub-teams. However, the main idea of traditional assignment course is that the students organize their own work when making more elaborated design and creation of the game. The teachers’ role is not to control how the team operates, how the development conflicts become resolved, or what tactical decisions are made. Thus, this is the most demanding project course format we give to our students. The teachers act as outside customers and they follow the progress through the project milestones set in the assignment. For example, the teacher assesses the feasibility of the work plans. The teachers also provide external support on request for the project, for example, by advising, guiding, and coaching in situations that 18 halt the project. In an extreme case, the teachers can intervene and freeze the project until the problems are analysed and further actions are found. The rationale behind this kind of autonomous assignment is to teach tacit knowledge about software development in teams. For example, the students should find out themselves how to take responsibility, communicate, and share know-how. From our experience, if the students have sufficient initial competence and the preceding activities are effective, they do not need extensive assistance to accomplish advanced results. As in projects in general, the assignment has a strict deadline after which the students present the game, demonstrate its features and write a postmortem document from the project. The writing of a post-mortem about the game project is a retrospective practice, where the participants list and analyse the most influential successes and failures. In addition to concluding discussion, the post-mortem document sums up the tactical and strategic lessons learnt and provides the teachers feedback from the inception and construction phases. Lastly, the teachers evaluate the results and grade the students on the team level. We prefer not to evaluate each student individually because a team should be seen as one development unit; the balancing and fairness issues must be considered during the project, not after it. In principle, a student can be expelled from the project but in our course instances this situation has never occurred but the students have kept their enthusiasm throughout the course duration. 8 Research laboratory course In a research laboratory course, the students alongside the teachers examine a scientific problem, work to find a practical solution to it, and report the results to the whole class. Usually, the course is aimed at advanced level because it requires that the participants to have pragmatic skills of collaboration and knowledge acquiring methods. In the software development industry, similar kind of work is carried out in customer-on-site projects. This course format has two goals: Firstly, the students learn about the latest scientific topics and they have hands-on training into scientific work. Secondly, the teachers—who are also researchers—benefit from fresh ideas and possibly new solutions to the research topic. In our case, this kind of co-operation has often led to further studies and even to joint research papers. Our latest instance of this course focused on software technologies, and especially how certain object-oriented design patterns affect the software architecture of a multiplayer game. When the research question is specific and mainly technical one, the influence of the preceding and succeeding phases of the game project can be reduced. This reduces the risk of failure, although the outcome of the project tends to stay unpredictable until the deadline. 19 Nevertheless, this poses also an educational problem because we are leaving out real-world problems concerning, for example, the launching of the project. Fortunately, there are adequate solutions to this such as organizing a separate project course without detailed construction phase. To keep the project management as simple as possible one team includes five to seven students. If more students have enrolled the course, each team is given the same problem and the teams are encouraged to find a balance between cooperation and friendly competition on technical and content assets. Also, if the problem turns out to have many differentiating aspects, the teams can decide to distribute them. The main activities of this course type are depicted in Figure 7. The project work consists of three phases: inception, co-operative construction, and conclusion. At the inception phase, the teachers conduct also the whole preproduction phase. At first, the teachers prepare the assignment based on their research questions which determines the main concerns of the project. Then, to make the experiment repeatable and to have a case setting the teachers design the game concept and features. The game design is used to constrain the general research question; the idea is to have a non-trivial case example that is feasible to solve with the given resources. The assignment and the game design are presented to the students after which they commit themselves to the course. Finally, the teachers guide the students to organize the teamwork and to select practices, methods, and development tools. Unlike in the traditional assignment course, the inception phase can be rather informal if the research problem is well-defined The construction phase of the pre-made game design is realized in several iterations where the teachers and the students work alongside. The students make decisions and construct the game mainly at the operational and tactical levels. They are responsible for software and game level design, iteration planning, system and content development, and unit testing. To facilitate the construction the teachers can operate also at the tactical level but they should avoid affecting the results. Instead of giving ready solutions, the teachers should reveal on need-to-know basis what aspects and alternatives the students should consider. In other words, the teachers act as on-site customers who are interested in the outcome and not the means. This puts the students into a situation where they have to think proper questions and possibly find out unforeseen answers. The teachers control the strategic work by organizing frequent follow-up meetings where they verify the progress, prioritize the game features, and guide the forthcoming tasks. The construction phase has a strict deadline after which the project proceeds to the conclusion phase. At first, the students present the game demonstrating its features and discuss the project in retrospective. Unlike in the traditional assignment course, the teachers should write the post-mortem document because they are more experienced in reflecting scientific issues. 20 Teachers Students Prepare assignment and research Design game features Present assignment and game design Organize team, methods, and tools Verify and guide implementation Create game Evaluate and grade Present game several iterations alongside Analyse scientific results Figure 7: The main activities in a research laboratory course. 21 After that, the teachers evaluate the outcome and grade the students. Although we consider the team as one, individual grading is also possible because the iteration work has been transparent and the game design is complex enough so that it leads to clearly specialized and dedicated roles. Lastly, the teachers, preferably together with the students, analyse and report the scientific results. Often this can result in other research questions, study papers, or thesis work. 9 Intensive course In an intensive production course, the students and teachers work together as one team to produce a computer game that demonstrates both artistic and technological skills. The production goal is to create a functional game prototype in a short period of time. The project proceeds in intensive workdays of six to eight hours at one site with interconnected computers. In the software development industry, this is called as customer-as-expert project. Due to the intensiveness, each participant must attend to all the workdays to be at the team-mates’ disposal and to keep up with the project’s pace. The educational goal of the course is to encourage the students with different backgrounds (e.g., digital arts and software technology) to work together. Also, we foster mutual learning and extend understanding of the multidisciplinary nature of game development. The main focus of the course is collaboration between different disciplines so that it concretizes as a computer game. This approach gives us leeway to adjust our emphasis for the course without changing its format. For example, if all the participants are already familiar with the development tools in their own expertise area and skilled in handling versioning tools, the course can tackle more content creational and technological challenges. On the other hand, the course can emphasize the challenges in multimedia design and art by selecting ready-made technology platforms with uncomplicated scripting languages. Thus, the teachers can put the students in a situation where they are kept motivated: They have meaningful tasks from their own discipline but, at the same time, they have to understand their impact to the whole project. The latter is not possible without collaboration over the discipline boundaries. As with the other course types, we prefer one-team co-located projects because we want simple communication practices. Because the project has many disciplines and the teachers also work as team members, the teams become relatively populated. To keep the number of participants between ten and twenty the students apply to the course with an informal application letter including a curriculum vitae. This allows the teachers also to plan the course adjustments, possible sub-teams, and role descriptions beforehand. 22 Teachers Students Prepare assignment and infrastructure Present assignment several iterations together Organize team, methods, and tools Design game Coach and guide team and Verify in−game assets and resolve conflicts Create game Evaluate and grade Present game Figure 8: The main activities in an intensive production course. From the three course types, intensive course is the most challenging for the teachers because the schedule is tight, the workdays turn sporadically into chaos that must be managed, and in-advance and on-the-fly planning have to be constantly balanced. The main activities of this course type are presented in Figure 8. The project work has three phases: inception, continuous construction, and conclusion. In the beginning of the inception phase, the teachers prepare a preliminary schedule for the course assignment and set up the infrastructure for the project. The actual game idea and design are still left open. The inception ends with assignment presentation where the students are introduced to the project topics and facilities. Because the students have passed the application process they have already been committed to the course. The continuous construction begins with an open debate and brainstorm23 ing on game ideas, their possibilities and the students’ interests in them. It is important that in this stage the students form a mental bond to the game, and thus, the teachers should act only as moderators trying to shape up even the oddest ideas. In our courses, the proposed game idea have included, for example, ladies’ tea-party poisoning contest, medieval time-travelling to fetch the last virgin, and a non-violent first-person shooter (of which the last one got selected). Then, the most promising ideas are refined and among them the core game idea is selected. This is where the teachers experience is needed to consider the amount of required work, required production tools, and overall technical feasibility. The actual project work iterates the idea into a computer game. The teachers take the responsibility for project management and product level quality assurance. Their first activity is to organize teamwork, practices, methods, and development tools. Then, they coach and guide the students, verify art assets and software quality, resolve workflow conflicts, and plan and prioritize the creation process. In other words, the teachers act as onsite customers who are experts on the disciplines and actively participate in the development of the game. The students are responsible for the game design and its implementation. In other words, they have to make decisions on the game creation from the operational level up to the strategic level. For example, the students must assign a level designer who looks after the playability and immersion of the game. The most difficult problems arise from where the disciplines are bound tightly together into one. As with the other course types, the construction phase has deadline when the conclusion phase begins. Despite the teachers participation to the project, the students present the game in the final project meeting. The relaxed atmosphere usually creates long retrospective discussions and the teachers can verify their understanding about the successes and failures before writing the post-mortem document. Finally, the teachers evaluate the results and grade the students. As in the traditional assignment course, we prefer to evaluate the team as one unit, because in this kind of intensive project individual work is subject to circumstances. 10 Discussion The preceding sections described the main activities involve in three different teaching approaches and discribed the differences between them. Let us now list the common characteristics of the three approaches and summarize the key lessons we have learnt during the courses. Lesson 1 Game production provides a natural framework for project courses. The game production provides characteristically suitable context for project24 oriented courses, because the projects are not mock-up projects constructed to meet only pedagogic needs. Instead, the game production acts as a practical framework to which the pedagogical elements are injected. This partly explains why the students are motivated to pass these courses and feel that the course setting is quite realistic. Lesson 2 Larger team sizes has to be managed. Other characteristic of the game production is that the productions are usually self-organizing one team projects. This can make course organization and evaluation harder when the course size increases. We have found two methods to handle the problem: (1) divide the students into smaller teams each with own responsibilities, or (2) divide the students into smaller teams and give the same production task to each. Surprisingly, using the latter method the teams still end up with completely different results. Lesson 3 Course formats do not restrict what kind of games can be developed. In the courses presented here, students have produced a wide variety of different games from 2D real-time strategy games to 3D first-person shooters. Although none of the games meets the modern commercial standards, with a small further development effort many of them could reach the level of shareware or independent games. Since the majority of the students have been computer science and engineering students, the emphasis of the game development has been on the technical issues of the game production. Still, some of the games have also been visually appealing, partly because the student groups have been experimenting with unorthodox game concepts. The course formats presented here do not set restrictions themselves on what kind of games can be produced, but the length of an academic term sets the timeframe and limits what can be done and how polished the resulting games will be. Lesson 4 Assignment format may seem easy for the teachers but it has pitfalls. For the teachers, project courses are basically easy because students do most of the work. Naturally, the preparations for the course and assignment have to be prepared well so that students can focus on the assignment work itself. In the research laboratory course and intensive course approaches, the preparation activities can be seen as a part of the pre-production of the game and, therefore, they affect directly the end result of the course. The teachers have to follow the students’ work throughout the course and assist them as needed. The effort for this task depends on the activity and skills of the students. 25 Lesson 5 Pre-production and production phases are emphasized during the project, but it still includes the whole production cycle. Although main goal of our courses has been teaching game production related issues and not the game production itself, we have to know which parts of the game production used approach teaches. If we compare the workflow models of each teaching approach and the generic game production models, we can see that the activities related to the pre-production and production phases are emphasized. However, all characteristic activities of game production are present in the course structures in one way or another. The only significant omission is the business aspect of game production. Because the basic activities of a noncommercial small-scale game project are the same than the activities of a large-scale commercial game project, each teaching approach gives students a good insight into actual game production. In addition to the production phase, we have to consider the production disciplines. All game production activities are done in small scale during the courses and, therefore, all game production disciplines are covered from digital arts to software technology. The emphasis between the disciplines can be adjusted by selecting the course objectives and needs. The teachers have to be set the main focus of the course and understand that there are students who do not have excellent skills in each necessary discipline. Lesson 6 Game production teaches skills that can be used outside the game production domain. The teachers should pay attention also to how well the skills learnt can be generalized outside the domain of game production. During a game production course, software engineering students can deepen their knowledge of the software engineering issues, since the game production process resembles general software engineering processes. The skills obtained are also applicable to other kinds of software project outside game production. The multidisciplinary nature of game production teaches software engineering students that software projects are not only about programming but there are also other things to consider. Although the multidisciplinary nature makes a game production project more challenging to manage, it makes concepts like project roles and release integration more concrete to the students. From this perspective, game production assignments are good all-around project management and team work practices. The comparison done between the game production models and the software product development model in Section 5 reveals a rather interesting fact: Game production is actually a product development process rather than just a software engineering or art production process. This means that the end result of the process is a complete package, which can be evaluated more easily than an individual algorithm implementation or a prototype application. At the same time, the prerequisites have to be set more carefully and 26 end-user needs have to be taken into consideration throughout the process. 11 Final Remarks In computer game industry, a production project binds together many perspectives and disciplines by inventive balancing of conflicting interests. Because the balance of decisions culminates in the game production, game creation is a holistic process. In other words, we cannot isolate parts like digital arts and software technology assets, project activities (e.g., requirement management, risk management, budgeting, resource allocation, prioritization, quality assurance, and motivation), productisation, product line management (i.e., strategic business decisions on products), and marketing from each other without losing a realistic representation of the game development. However, due to time and budget limitations, the game creation education cannot take into account all of these perspectives at the same time. Instead contenting with mock-up projects where some of the production perspectives are just ignored, we have identified three project schemes used in software development industry that also suit student projects. The traditional assignment course emphasizes game production work, the research laboratory course focuses on technological design and implementation of a game, and the intensive production course stresses collaboration among the selected game disciplines. These three case schemes demonstrate that it is possible to arrange game projects that have educational goals and reflect the projects in the software industry in general. There are game production models and general software product development models that support this observation. The successful injection of educational goals into the game projects is also well-founded. The three game project schemes involve much software technology work, because computer games are executable programs, where the software platform runs the game content. We utilize this relationship to give the project adaptations concrete form and to determine the consequences. For example, there are tried practices for estimating how much time a given software implementation work takes. From study topic aspect the reason is that we have wide know-how on how to implement the game technicalities [9]. However, it is a misconception to believe that the essence of a computer game comes from technological solutions alone. The game must have intriguing end-user experience (entertainment, education, or other kind) that is only obtained by creative content and playability. For this reason the involvement of artistically oriented students is important. To teach game production the teachers have to jointly understand the practicalities of computer game domain, education methods, software development projects in general, and ludic values of game playing. Only then they 27 can educate the students not only about game production but also general software production and modern team practices. References [1] J. S. Bruner. The Process of Education. Harvard University Press, 1960. [2] H. M. Chandler. The Game Production Handbook. Game Development Series. Charles River Media, 2006. [3] A. D. Efland. The spiral and the lattice: Changes in cognitive learning theory with implications for art education. Studies in Art Education, 36(3):134–153, 1995. [4] H. Hakonen. Game industry versus software industry: Similarities and differences. In A. Tuominen, editor, New Exploratory Technologies 2006, pages 124–132, Salo, Finland, Sept. 2006. [5] L. Hohmann. Beyond Software Architecture: Creating and Sustaining Winning Solutions. Addison-Wesley Signature Series. Addison-Wesley Professional, 2003. [6] International Game Developers Association. IGDA curriculum framework: The study of games and game development, 2003. Available at hhttp://www.igda.org/academia/IGDA_Curriculum_Framework_Feb03.pdfi. [7] S. Larsen. Playing the game: Managing computer game development. Technical Report International Edition, Version 1.1, Blackwood Interactive, 2002. Available at hhttp://blackwood.dk/pdf/PlayingTheGame-IE.pdfi. [8] T. Manninen, T. Kujanpää, L. Vallius, T. Korva, and P. Koskinen. Game production process—a preliminary study. Technical Report v1.0, LudoCraft/ELIAS-project, 2006. Available at hhttp://ludocraft.oulu.fi/elias/dokumentit/game_production_process.pdfi. [9] J. Smed and H. Hakonen. Algorithms and Networking for Computer Games. John Wiley & Sons, Chichester, UK, 2006. 28 Joukahaisenkatu 3–5 B, FI-20520 Turku, Finland | www.tucs.fi University of Turku • Department of Information Technology • Department of Mathematics Åbo Akademi University • Department of Computer Science • Institute for Advanced Management Systems Research Turku School of Economics and Business Administration • Institute of Information Systems Sciences ISBN 978-952-12-2105-7 ISSN 1239-1891