Serious Game to Learn
DISSERTATION
PORTO, 2017 FEBRUARY
EDITED BY
J
OSÉT
AVEIRAG
OMESSUPERVISOR: ANACRISTINARAMADA PAIVA
Abstract
Throughout history games have always assumed an essentially playful component; This fact is in itself positive. However, with the emergence of video games, associated with a great offer and ease of access to them, negative aspects also began appearing. This is particularly true for children and young people such as students, who often deviate from what should be their main focus. To that extent, and given the young people’s adherence to this type of entertainment and the new technologies in general associated with it, it may be possible to promote a new method of quality teaching / learning, but more appealing and motivating than traditional methods. The combination of the ludic and learning strand is dubbed a "serious game".
Therefore, because it is a new and promising area of research, in the interface between computer science and teaching, the general objective of this work is to develop a serious game platform that is content-agnostic and to validate it using software testing learning materials. Such a platform can be used to teach any subject. The specific objectives are to allow this platform to be adaptable to the teaching / learning interest of each user: (a) choosing the type of game from the available typologies; (b) adapting it to the type of teaching / learning intended.
A serious game was developed by Ribeiro, TPB; Paiva, ACR (2015) and Paiva, ACR; Flores, NH; Barbosa, AG; Ribeiro, TPB (2016) specifically for Software Testing. We used the serious game implemented in that work as an use-case for our serious game platform that was developed from scratch using HTML5, CSS3 and a Javascript library named AngularJS. This serious game platform is called ILearnTest, and implements three types of exercises: (a) multiple choice; (b) complete a space with one word; (c) select concept(s) associated with a topic. From here, this software can be loaded with predefined learning materials, or new materials developed by the users. In this first phase, such development requires familiarity with JSON, however in the near future we intend to provide the application with a simple user interface to create such materials.
Resumo
Ao longo da nossa História os jogos assumiram sempre um componente essencialmente lúdico; este facto é em si mesmo positivo. No entanto, com o surgimento dos vídeo jogos, associ-ados a uma grande oferta e à facilidade de acesso aos mesmos, começam a surgir também aspetos negativos. Isto verifica-se, sobretudo, em relação às crianças e jovens, enquanto estudantes, que desta forma frequentemente se desviam daquele que deveria ser o seu principal foco de atenção. Nessa medida, e dada a adesão dos mais jovens a este tipo de entretenimento e às novas tecnologias em geral a este associadas, poderá ser possível promover um novo método de ensino/aprendiza-gem de qualidade, mas mais apelativo e motivador do que os métodos tradicionais. A combinação da vertente lúdica e de aprendizagem é apelidada de “jogo sério”.
Assim, porque se trata de uma nova e promissora área de investigação, na interface entre a informática e o ensino, o objetivo geral do presente trabalho é desenvolver uma plataforma de jogos sérios que seja independente do conteúdo e validá-la usando materiais de aprendizagem de Software Testing. Esta plataforma pode ser usada para ensinar qualquer assunto. Os objetivos específicos são permitir que esta plataforma seja adaptável ao interesse do ensino / aprendizagem de cada utilizador: (a) escolher o tipo de jogo a partir das tipologias disponíveis; (b) adaptando-o ao tipo de ensino / aprendizagem pretendido.
Um jogo sério foi desenvolvido por Ribeiro, TPB; Paiva, ACR (2015) e Paiva, ACR; Flores, NH; Barbosa, AG; Ribeiro, TPB (2016) especificamente para Testes de Software. Us-amos o jogo sério implementado nesse trabalho como um caso de uso para a nossa plataforma de jogos sérios que foi desenvolvida a partir do zero usando HTML5, CSS3 e uma biblioteca de JavaScript chamada AngularJS. Esta plataforma de jogos sérios é chamada ILearnTest, e imple-menta três tipos de exercícios: (a) escolha múltipla; (b) completar um espaço com uma palavra; (c) selecionar o(s) conceito(s) associado(s) a um tópico. A partir daqui, este software pode ser carregado com materiais de aprendizagem predefinidos, ou novos materiais desenvolvidos pelos utilizadores. Nesta primeira fase, esse desenvolvimento requer familiaridade com o JSON, no en-tanto, num futuro próximo, pretendemos fornecer á aplicação uma interface de utilizador simples para criar esses materiais.
Acknowledgements
The Dissertation is the final step of a journey that takes several years to complete. This would not have been possible without the help of family, friends and teachers. Therefore, I would like to express my gratitude towards them.
I would like to thank my thesis supervisor, Ana Paiva, for the help and guidance she gave me throughout this road.
I would like to thank my all my friends, in particular to Vasco Andrade, Hugo Gilvaia, João Ribeiro, José Pacheco, Rui Botto and Diana Garganta, which somehow kept me going and were there for me in my best and worst moments, helping me through them.
I would like to thank my family for believing and supporting me. A big thank you to my Mother who always was ready to help me when I most needed, to my Father who always cared for me and show me unconditional support, to my Sister-in-law who always pressures me to take part in family or group activities and to my Brother for all the time he invested in me and his belief in me. This would not have been possible without any of you.
“Keep your dreams alive. Understand to achieve anything requires faith and belief in yourself, vision, hard work, determination, and dedication. Remember all things are possible for those who believe.”
Contents
1 Introduction 1
1.1 Context . . . 1
1.2 Motivation . . . 1
1.3 Project . . . 2
1.4 Structure of the document . . . 2
2 Literature Review 5 2.1 Software Engineering and its Teaching . . . 6
2.2 Serious Games . . . 8
2.3 Pedagogical Patterns . . . 11
2.4 Educational Game Design Patterns . . . 14
2.4.1 Design Patterns . . . 14
2.4.2 Mapping between Design Patterns and Learning Experiences . . . 15
2.4.3 Game Concept Design Patterns . . . 19
2.5 Existing Games for Software Testing . . . 19
2.5.1 U-TEST . . . 19
2.5.2 Bug Hunt . . . 20
2.5.3 TestEG . . . 21
2.5.4 Conclusions . . . 21
2.6 iLearnTest . . . 22
2.7 Frameworks for Game Development . . . 23
2.7.1 GameMaker: Studio . . . 24
2.7.2 Construct 2 . . . 24
2.7.3 Unity . . . 24
2.7.4 PixiJs . . . 24
2.7.5 Comparing frameworks . . . 25
2.7.6 Selecting an adequate framework . . . 25
2.8 Conclusions . . . 25
3 Project 27 3.1 Game design patterns . . . 27
3.2 Technical Architecture . . . 29 3.3 Validation . . . 32 3.3.1 Lobby room . . . 32 3.3.2 Learning room . . . 34 3.3.3 Challenge room . . . 35 3.3.4 Room linkage . . . 36 3.3.5 Challenges . . . 36 3.4 Conclusion . . . 38
4 Conclusions and future work 39 4.1 Implemented features . . . 39
4.2 Limitations . . . 40
4.3 Future work . . . 40
List of Figures
2.1 U-TEST game . . . 20
2.2 Bug Hunt’s structure . . . 20
2.3 TestEG game . . . 21
2.4 iLearnTest’s main menu . . . 22
2.5 iLearnTest’s learning objectives for chapter 3 . . . 23
3.1 Learning and Teaching Functions Triangle . . . 28
3.2 iLearnTest’s architecture . . . 29
3.3 iLearnTest’s Json Editor . . . 32
3.4 iLearnTest’s Lobby Room . . . 33
3.5 iLearnTest’s Learning Room - Learning Objectives . . . 34
3.6 iLearnTest’s Learning Room - Content . . . 34
3.7 iLearnTest’s mini-map feature . . . 36
3.8 iLearnTest’s Find The Word Challenge . . . 37
3.9 iLearnTest’s Choose the Concepts Challenge . . . 37
List of Tables
2.1 15 areas of knowledge (KA) of Swebok [Swe14] . . . 7
2.2 Software Testing Constituents, followed by an explanation [Swe14] . . . 8
2.3 Differences between serious games and entertainment games [SB07] . . . 10
2.4 Functional and nonfunctional requirement patterns [FU01] . . . 11
2.5 Learning and teaching functions according to Shuell and Moran [SM94] . . . 13
2.6 Björk’s and Holopainen’s pattern categories [BH04] . . . 15
2.7 Mapping the learning functions of "Preparation" [KS11] . . . 17
2.8 Mapping the learning functions of "Knowledge manipulation" [KS11] . . . 17
2.9 Mapping the learning functions of "Superior order relations" [KS11] . . . 17
2.10 Mapping the learning functions of "Student Regulation" [KS11] . . . 18
Abbreviations
WWW World Wide Web
ISTQB International Software Testing Qualification Board ADDIE Analysis Design Development Implementation Evaluation HTML5 Hypertext Markup Language, version 5
GBL Game-based Learning
GML Game Maker Language
IDE Integrated Development Environment API Application Programming Interface JSON Javascript Object Notation
IEEE Institute of Electrical and Electronics Engineers CSS3 Cascading style sheet, version 3
TBI Task-Based Instruction
KA Knowledge Area
Chapter 1
Introduction
This chapter describes the context and motivation for the project, as well as the guidelines for the project development.
1.1
Context
Video game development is a field that has notably evolved throughout the last decade. Their ubiquitousness, along with the strong engagement behavior that they yield, led researchers to study the determinants of such engagement and their applications in the educational and professional settings. The advances in this field, namely in respect to the use of such games for educational purposes, led to the coining of the term ‘serious games‘ - playful activities performed in the context of a simulated reality, in which several participants try to achieve certain goals, according to certain rules [E.10]. Such games intend to exploit the determinants of game engagement in order to drive learner motivation and improve learning outcomes. However, these games take long periods of time to develop and often lead game content to become hard-coded. This makes game difficult to reuse for different subjects, and leads to game development from scratch for even similar purposes and contents.
1.2
Motivation
The observation that in general serious games seem at least non-inferior to traditional methods regarding knowledge acquisition, but drive higher self-reported learner engagement, has spawned the motivation to identify and implement game design patterns that can be applicable to learning in general. The system that implements such patterns requires however validation of their use in the learning setting. As such, we chose the field of Software Testing as a use case to develop materials with which to validate the platform. Software Testing is a subject that studies the adequacy of different testing methods to various development settings and specificities. Learning materials in this field have been organized in a knowledge base by the IEEE in order to standardize communication across professionals. The competence required to develop software
Introduction
tests is particularly well suited for instruction through serious games and thus this field was chosen to validate the platform.
1.3
Project
Despite the known potential of educational games, two major barriers regarding implementation aspects prevent its wide use. Firstly, the design of these games tends to be complex. Guidelines by Schell et al. recommend that game design must take into account several different perspectives [Sch08]. Secondly, mapping game patterns to learning processes and learning outcomes is difficult and must be carefully assessed. In order to overcome these barriers, we intend to apply well established learning frameworks to the learning materials of Software Testing in order to derive the game design patterns that are best suited for our purpose. This way we intend to improve learning outcomes on the subject of Software Testing.
We intend to develop a serious game framework named ‘iLearnTest‘ which renders learning content that is expressed as Javascript Object Notation (JSON) documents into an explorative virtual world that delivers the learning content and provides means to design learning challenges and assess learning outcomes. This framework will allow flexible game development so that gaming experiences can be tailored according to specific student needs and learning goals.
In order to make the learning experience immersive, the framework intends to employ challenges of multiple kinds to assess learner knowledge and provide feedback regarding answer correctness. It intends to employ a point scoring and badge system based on the activities completed and learner answers. This user interface aims to provide instant feedback on learner performance and allow revisiting prior completed tasks and materials. Along with this
framework, we also propose a standard for developing learning material according to our content JSON notation, and provide examples of the mapping of game patterns to learning materials on Software Testing.
1.4
Structure of the document
This document is structured in 4 major chapters. The first chapter, which is the present one, presents an introduction to the document by discussing the context and motivation of the project and the main lines of the project development.
On the second chapter it is introduced the state of the art which is subdivided in topics such as Software Engineering and its Teaching, Serious Games, Pedagogical Patterns, Educational Game Design Patterns, Existing Games for Software Testing, iLearnTest and Frameworks for Game Development.
On the third chapter it is discussed the technical and functional architecture of the project, as well as, the game design patterns used and challenges created based on those patterns. We load the software testing content onto the iLearnTest platform as a means of validation of the work done.
Introduction
On the fourth, and last, chapter it is presented the implemented features and limitations of this work and also the future work.
Introduction
Chapter 2
Literature Review
In the design of educational games the main challenge is to map game design patterns to learning experiences and goals [KS11]. The interactive aspect that makes games immersive may determine learner motivation during the learning process. In this chapter we broadly review relevant pedagogical game design patterns, their application in the field of engineering, and existing tools for game development, in order to frame the principles and scope of development for our platform.
The chapter is divided into 8 sections:
• Software Engineering and its Teaching - presents the areas of knowledge of Software Engineering on which to perform the mapping for game design standards;
• Serious Games - presents a study on the impact of serious games on education in general, and on existing games for learning Software Engineering;
• Pedagogical Patterns - reviews existing pedagogical standards that can be used in the area of Software Engineering;
• Educational Game Design Patterns - reviews the standards of design of existing educational games that may be used;
• Existing Games for Software Testing - reviews the existing games available for Software Testing;
• iLearnTest - presents the capabilities and purpose of this specific Software Testing game; • Frameworks for Game Development - reviews the existing frameworks for game
development that may be used;
• Conclusions - presents the conclusions withdrawn from the literature analysis; The rationale for structuring the review this way is firstly to frame it in the underlying engineering field and to put it in the light of learning engineering. Secondly, we embrace the
Literature Review
theory behind Pedagogical Patterns and Educational Game Design Patterns as conceptual implementation solutions to deliver serious games that may implement effective and well grounded game-based learning methodologies and strategies. Finally, we present prior research work over which we directly build from, as well as existing technical solutions for the software implementation of serious games. We discuss their advantages and shortcomings that are relevant for the technical solutions that we have chosen for the development of our system.
2.1
Software Engineering and its Teaching
IEEE defines software engineering as the application or study of a systematic, disciplined and quantifiable process development, operation, and maintenance. In Swebok [Swe14] 7 areas are identified to which software engineering is related:
• Computer Engineering • Computer science • Management (general) • Mathematics • Project management • Quality management • Systems engineering
Swebok [Swe14] also presents 15 software engineering knowledge areas (KAs), reproduced Table 2.1.
Literature Review
Table 2.1: 15 areas of knowledge (KA) of Swebok [Swe14] 15 Swebok areas of knowledge (KA)
Software Requirements Software Design Software Construction Software Testing Software Maintenance
Software Configuration Management Software Engineering Management Software Engineering Process
Software Engineering Models and Methods Software Quality
Professional Practice of Software Engineering Software Engineering Economics
Computer Foundations Foundations of Mathematics Foundations of Engineering
Software testing is continously and rapid evolving field that poses many challenges to education. Because of the rapid and cyclic waves of new technologies and trends, it is desirable that software engineering courses are able to prepare engineers with a broad and general set of competences and skills that are stable and long lasting, and over which the acquisition of mundane and practical knowledge regarding specific technologies can be rapidly acquired [GM06]. In particular, one such competence is the ability to distinguish between the essential and accidental complexities of software development [GM06]. This is a particularly crucial aspect, since taking design decisions that intend to accidental complexity that can be created by the development solutions or project constraints is cornerstone for the timely execution and easy maintainability of such projects. The field of Software Testing one of the 15 KAs is particularly relevant to answer this challenge. Thus our serious game platform considered this field relevant for validation. In Swebok the following topics are identified as constituents of this area:
Literature Review
Table 2.2: Software Testing Constituents, followed by an explanation [Swe14]
Dynamic This term means that testing always implies executing the program on selected inputs.
Finite
Even in simple programs, so many test cases are theoretically possible that exhaustive testing could require months or years to execute. Testing always implies a trade-off between limited resources and schedules on the one hand and inherently unlimited test requirements on the other.
Selected
The many proposed test techniques differ essentially in how the test set is selected, and software engineers must be aware that different selection criteria may yield vastly different degrees of effectiveness.
Expected
It must be possible, although not always easy, to decide whether the observed outcomes of program testing are acceptable or not; otherwise, the testing effort is useless.
Software developers are often not educated through the appropriate methods presented by Shaw in [Sha00], their education being confused with education for programmers and other non-engineers. One of the steps that Shaw refers to is to identify the distinct roles in software development and to apply appropriate educational methods to each of these roles. Some of the proposed measures are: distinction between the various roles involved in software development; To bet in the long term on the teaching of areas related to software development in non-higher education; And provide expertise through training and higher education.
2.2
Serious Games
Serious games are often developed ad-hoc without drawing from the evidence of using pedagogical game patterns for teaching certain subjects. This undermines the game capability of maximizing learner engagement and improved learning outcomes. It is thus relevant to review game design patterns and the best settings for their application in this section.
Digital games are a way to stimulate curiosity and motivation necessary for a good learning process. Prensky [Pre01] presents twelve reasons why digital games have the greatest attractive potential of all hobbies in the history of mankind:
1. Digital games are a form of fun. This arouses joy and pleasure in the subject. 2. Digital games are a form of play. This arouses an intense involvement of the subject. 3. Digital games have rules. This conveys a well-defined structure to the subject. 4. Digital games have goals. This arouses motivation in the subject.
5. Digital games are interactive. This arouses the feeling of effort in the subject. 8
Literature Review
6. Digital games are adaptive. This conveys a sense of flow to the subject. 7. Digital games have results and feedback. This arouses learning in the subject. 8. Digital games have states of victory. This arouses gratification in the subject. 9. Digital games have conflict / competition / challenges / opponents. This transmits
adrenaline to the subject.
10. Digital games have problems to solve. This awakens creativity in the subject. 11. Digital games have social interaction. This arouses social perception in the subject. 12. Digital games have a story and plot. This conveys emotion to the subject.
Prensky notes that while there are other media where some of these features can be found, such as movies or books, digital games are the only medium where all features are present simultaneously. It is further stated that all games must have as main objective to entertain and only then encourage learning. On the other hand, Michael and Chen [MS06] argue that, in relation to serious games, the main objective is to learn some knowledge on the part of the subject and, after that and only if possible, entertain the subject during this process.
Game-based learning, GBL, according to Garris et al. [GD02] has existed for some time in the form of simulators and motivators, that have in common the fact of capturing the subject’s attention in a series of cognitive processes that have been proven beneficial to attention and learning. Educational games in the form of simulators, also known as serious games [SB07], focus on the concept of training the subject for the application of knowledge in a real context, without being directly exposed to the risks inherent to real-world scenarios, such as the training of aviation pilots through flight simulators.
Educational games in the form of motivators, which are frequently used in higher education, are rather focused on self-directed learning, and intend to overcome lack of attention, frustration, lack of motivation or apparent lack of structure through a positive learning experience.
Susi [SB07] also suggests another classification for educational games, which differentiates them between military games, educational games, corporate games and health service games. In recent work on serious games educational games are viewed as a subclass on its own [RV09].
Corti et al. considers GBL similar to serious games. Accordingly, GBL has the ability to improve training activities and initiatives through the commitment, motivation, dramatization and replayability that are embedded in the game [Cor06]. In addition, according to Prensky et al, the new "fashion" of e-learning is based on two assumptions: Firstly, millennial students are native in the digital language and present their own set of reasoning patterns; Secondly, these learners have a new experience of interacting with digital games, changing their preferences and abilities, offering great learning potential for both adults and children [Pre01].
In terms of the difference between serious games and entertaining games, Michael and Chen [MS06] analyze the situation according to two perspectives: design and development of these
Literature Review
games. The hardware used in most serious game markets is older than that used in entertainment games; The serious gaming market is also more likely to have a wider variety of hardware and operating systems; And the serious gaming market includes not only experienced players but also new players, which requires these games to be affordable.
While experienced players look for the accurate and complete experiences, the serious gaming market looks for the model or simulation presented in the game to be able to solve real problems. Thus, in serious games it is essential that the main focus is on the elements of learning and that the assumptions of the simulation are accurate, so that the learner is does not develop biased or useless skills and knowledge. Regarding entertainment games, the simulation processes may be simplified for the sake of entertainment, which, according to Michael and Chen [MS06], should be avoided on serious games since they seek the training of real situations for which simplification may not be appropriate. Furthermore the communication processes which are usually near-perfect in entertainment games, must be adapted in serious games to reflect real communications problems. Table 2.3 presents the differences between serious games and entertainment games, summarized by [SB07].
Table 2.3: Differences between serious games and entertainment games [SB07]
Serious Games Entertainment Games
Task vs. Rich Experience Focus on the resolution of problems Preference for richer experiences
Focus Important learning
elements Entertainment
Simulation Necessary assumptions for the
application of the simulation
Simplified simulation processes Comunication Should reflect real communication
(not perfect)
Communication frequently perfect
Regarding positive impacts of digital games, Mitchell and Savill-Smith state that these can support the development of various types of capabilities: analytical and spatial capabilities, strategic and reconnaissance capabilities, psychometry skills, visual selectivity, attention, among others [Mit04]. They also point out that even violent games can be beneficial, as a way to relieve frustration and stress on the part of the player who plays them.
Enochsson et al. reported more specific positive impacts of digital games, finding a positive correlation between experience in digital games and performance in digital medical simulations performed by medical students, due to the greater three-dimensional perception obtained through digital games [ETF04]. Similarly, digital games can be used in architecture and design to develop in students confidence, capabilities in spatial modeling, design and form creation [Rad00]. Navarro et al. has shown through experiments that software specially designed for attention training, even if not used systematically, improves the child attention indexes [NA03].
Literature Review
One serious game for the area of knowledge of Software Engineering is the SimSE [Nav06]. It presents a simulation of the development of a project within a company (for various
development models) in which the player assumes the role of project manager.
2.3
Pedagogical Patterns
According to Riehle and Zullighoven a pattern is an abstraction of something concrete that repeats itself repeatedly in a non-arbitrary context [RZ96]. It is a structure that links the subject to the collection and domain in question. Fincher and Utting described the functional and non-functional requirements common to all standards, shown in Table 2.4 where the left functional requirement matches the nonfunctional requirement to its right [FU01].
To enhance intrinsic motivation, instructional methods should be learner-centered rather than teacher-centered. They should involve learning by doing, use tasks that are of inherent interest to the learner - which usually require them to be authentic - and offer opportunities for
collaboration. This makes task-based instruction (TBI) particularly appropriate as a foundational instructional theory for the information-age paradigm of education and training. Furthermore, given the importance of student progress being based on learning rather than on time, students progress at different rates. This process also adapts well to TBI because it is more
learner-directed than teacher-directed [Rei12].
Table 2.4: Functional and nonfunctional requirement patterns [FU01]
Functional Requirements Nonfunctional Requirements
Capture of Practices Not Obvious (it can’t be something mandatory and/or common)
Abstraction Comprehension
Value System
-Structural Principle Generator
Way of Presentation Communicative Power
The use of these patterns in education particularly relevant and common. Through the Pedagogical Patterns Project , a large sample of patterns essential to the application of certain pedagogical strategies was captured. For the good functioning of these standards, the following prerequisites were identified: since the subject is the central focus of teaching, subject motivation is necessary for effective learning.
Some of the standards referred to in the Pedagogical Patterns Project are presented below. All these patterns are directly applicable to a real learning situations.
• Built-In Failure - describes the method of creating a teaching environment in which failures are expected, thereby removing the fear of failing as a barrier to learning by making it part of the process;
Literature Review
• Mission Impossible - which describes the method of presenting the student with a seemingly simple problem to solve but in which his complete solution requires a deeper understanding of the matter;
• Solution Before Abstraction - which describes the method to present the student with an example of the problem in a context in which he or she feels comfortable;
Grösser, based on the work of Shuell and Moran, has created a list of 22 learning and
teaching functions that aim to encompass learning aspects regarding cognitive and meta-cognitive activities to improve learning [Gro07,SM94]. Grösser regrouped functions according to their different types: preparation, knowledge manipulation, higher order relations, student regulation and productive actions. The list of 22 learning and teaching functions is presented in table 2.5.
Literature Review
Table 2.5: Learning and teaching functions according to Shuell and Moran [SM94]
Learning Functions Teaching Functions
Preparation
Activation of knowledge Remind students of information which are pre-requirements or ask what he knows about the present topic
Motivation Persistence and contribution of the student should be nurtured
Expectations Students should have a general idea of the learning objectives in question Attention Focus students on relevant information rather than on non relevant Knowledge Manipulation
Codification Helping students assign personal meanings to the new information Comparison Make comparisons, looking for similarities and differences that allow
the formation of relations of higher order of understanding Repetition Induce multiple perspectives and systematic reviews
Interpretation Helping students convert information from one form of representation to another
Exemplification Encourage students to clarify knowledge using new examples Superior Order Relations
Combination, Integration, Synthesis
Guide students to combine the various pieces of information in a way that allows them to be integrated and synthesized. The development of schemas and tables are examples of how this function can be taught.
Classification Enable students to determine concept categories
Summarization Guide students to write summaries that represent the information
Analysis Guide students to divide knowledge into parts and determine how they relate Student Regulation
Feedback Students must interpret feedback on adequacy and accuracy of their understanding
Evaluation Give students the opportunity to interpret and evaluate feedback as well as the opportunity to evaluate their own work for certain criteria Monitoring Give students the opportunity to monitor their own learning in order to
determine if there has been significant progress
Planning Helping students in organizational methods to accomplish tasks Productive actions
Hypothesis Generation Encourage students to experiment with different methods of resolution Deduction Helping students create their conclusions about the given information Explanation Guide students in mind-building and use of cause-and-effect models Application Teach students how to use exercise and problem solving methods Production and Construction Guide students to invent a product
Literature Review
2.4
Educational Game Design Patterns
Below we describe the various patterns of game design that satisfy the aforementioned learning standards.
2.4.1 Design Patterns
Gamma [Gam95] states that a design pattern gives name, explains the motivation and a general design that corresponds to a recurring design problem. It describes the problem, the solution, guidelines on how to implement, situations in which the solution may be applicable, and its consequences. These standards are described in a predominantly textual way (Alexander [Ale78]), unlike software design standards that focus on implementation and code, which gives them three great advantages according to Agerbo and Cornils [AC98]: the encapsulation of experience, common vocabulary and improved documentation.
Björk and Holopainen [BH04] developed a large inventory of 296 game-relevant design patterns describing game development blocks. These patterns are divided into 11 categories, according to 4 views on games: holistic (description of activities), boundaries (description of activity boundaries), time (description of temporal order of play) and structural view. These 11 categories are presented and explained in abbreviated form in table 2.6.
Literature Review
Table 2.6: Björk’s and Holopainen’s pattern categories [BH04]
Pattern Category Description
Patterns for game elements These patterns describe game objects that define the area of game reality or that players can manipulate (48 patterns)
Patterns for resources and its management
These patterns describe different types of features that can be controlled by players and the system (20 patterns)
Patterns for information,
communication and presentation
These standards describe how game state information is handled, such as concealment of certain information for player
evaluation (20 patterns) Patterns for actions and events
These patterns control what kind of actions are available to players, how they relate to changes in the state of play, and how these relate to players’ goals (44 patterns)
Patterns for narrative structures, prevision and immersion
These patterns deal with the plot, immersion and commitment on the game by the players (31 patterns)
Patterns for social interaction These standards cover how games support social interaction between players (30 patterns)
Patterns for objectives Patterns that address the goals the players want to achieve (26 patterns)
Patterns for objective structures These patterns describe how gameplay affects goals (20 patterns)
Patterns for game sessions
These patterns deal with the characteristics of instances and game sessions and their limitations, possibilities and attributes of the player’s participation in the game (20 patterns)
Patterns for game mastery and balance
These patterns describe how players can use their skills and game experience and how to balance gameplay for players with
different abilities (27 patterns) Patterns for repeatability of meta
games and learning curves
These patterns deal with problems with come from outside single-player gameplay (10 patterns)
For each of these standards, Björk and Holopainen present the following components: a general description, information on how to use the standard, examples, a description of the consequences of its application and information on conflicts of this standard with others. This last detail is very important because, to form a game, the patterns need to be combined and never used alone in an application.
2.4.2 Mapping between Design Patterns and Learning Experiences
Kelle et al. in [KS11] established a mapping between the previously mentioned learning and teaching functions of Shuell and Moran (Table 2.5) and the game design patterns of Björk and Holopainen (Table 2.6). Taking into account that there is a dependence on variables such as context, domain, scenario and type of learning, only one specific scenario was analyzed, in order
Literature Review
to identify the most relevant game design patterns for a universal application, using only the standards with a higher level of abstraction and degree of connectivity (for the consequent instantiation of more detailed patterns).
Based on the previous considerations, the following mapping process was created, also taking into account the following pedagogical taxonomies: pedagogical design of Heinich et al. [HJ01], Gagné’s instructional events [Gag65], Pedagogical Objectives of Long and Robinson (1998), Kolb’s learning activities [Kol84], and Keller’s model [Kel83] for attention, relevance, confidence, and satisfaction (ACRS):
1. Start from the learning and teaching functions of Shuell and Moran.
2. Link the learning and teaching functions to the pedagogical taxonomies referred to, through semantic overlap.
3. Using the links in point 2, identify the pedagogical requirements of each learning and teaching function.
4. Choose one of the game design patterns that best support the pedagogical concepts of the learning and teaching function using the Björk and Holopainen inventory.
To validate this mapping procedure, Kelle et al. (2011) tested a sample of 11 game design patterns, one from each of the 11 categories, asking 10 experts in the pedagogical area to evaluate, following the steps presented, the support of each of these patterns to each learning function of Shuell and Moran, from 1 (lowest support) to 5 (highest support). The 11 chosen patterns were "score", "resources", "asymmetric information", "surprises", "roleplay", "gain information", "randomness", "levels", "clues", "time limits" and "replayability". After analyzing the results considering the level of usability of each standard for each pedagogical scenario and the degree of agreement of the specialists, the mapping method was shown to be viable.
Kelle et al. then applied the planning method to the full inventory of standards, which are presented below. These standards are identified by their name and a triplet that indicates their category (according to Table 2.6), their degree of connectivity and degree of conflict.
The results are the following five tables, where the first column represents the learning and teaching functions in question, the second column identifies the underlying pedagogical concepts, and the third column the mapping to the associated game design pattern classes and examples of patterns.
Literature Review
Table 2.7: Mapping the learning functions of "Preparation" [KS11] Learning Function Underlying Taxonomy Class of Design Patterns
Knowledge activation Gagné’s "Retrieval" Patterns for objectives, example "reconnaissance"(7,18,1) Motivations Keller’s ACRS Patterns related with points, example "rewards"(4, 54, 1)
Expectations Gagné’s "Expectancy"
Patterns related to objectives, example "predefined goals" (8, 10, 2), and patterns of narrative, example "anticipation" (5, 22, 2)
Attention Attention listed by
Keller and Gagné Patterns of game elements, example "clues"(1, 19, 3)
Table 2.8: Mapping the learning functions of "Knowledge manipulation" [KS11]
Learning Function Underlying Taxonomy Class of Design Patterns
Codification Kolb’s abstract conceptualization
concept Patterns for information
Comparison Kolb’s reflective observation concept Patterns for information Repetition Kolb’s confidence concept and
Heinich’s exercise design practice
Patterns for meta games, example "replayability" (11, 23, 8)
Interpretation Robinson’s pedagogical objective of encouraging multiple perspectives
Patterns for objectives, example "gain information" (7, 21, 1) Exemplification Robinson’s pedagogical objective of
encouraging multiple perspectives
Patterns for game elements, example "levels" (1, 24, 0)
Table 2.9: Mapping the learning functions of "Superior order relations" [KS11]
Learning Function Underlying Taxonomy Class of Design Patterns
Combination, Integration, Synthesis
Robinson’s pedagogical objective of multiple perspectives gain
Patterns for objectives, example "gain information" (7, 21, 1) Classification Keller’s concept of relevance, Kolb’s
concept of conceptualization
Information and communication patterns, example "perfect information" (3, 16, 8)
Summarization Event for Gangé’s performance,
Heinich’s design presentation
Information and communication patterns, example "communication channels" (3, 10, 0); Patterns for game sessions, example "time limits" (9, 39, 4) Analysis Heinich’s problem solving design Patterns for game mastery and balance,
Literature Review
Table 2.10: Mapping the learning functions of "Student Regulation" [KS11]
Learning Function Underlying Taxonomy Class of Design Patterns
Feedback Gagné’s event for feedback
Patterns related with points, example "score" (4, 18, 0); Patterns for game mastery and balance, example "near miss indicators" (10, 30, 5); Patterns for information , example "progress indicators" (3, 21, 2)
Evaluation
Gagné’s event for feedback, Robinson’s self-preservation objective of knowledge construction
Patterns for information, example "status indicators" (3, 14, 2); Patterns related with scores, example "rewards" (4, 54, 1)
Monitoring Gagné’s event for learning guidance
Patterns for information, example "status indicators" (3, 14, 2); Patterns related with scores, example "rewards" (4, 54, 1) and "penalties" (4, 51, 3)
Planning Kolb’s concept of concrete exploitation Patterns for game mastery and balance, example "stimulated planning" (10, 51, 0)
Table 2.11: Mapping the learning functions of "Productive actions" [KS11]
Learning Function Underlying Taxonomy Class of Design Patterns
Hypothesis Generation Heinich’s discovery and problem-solving design
Patterns for interaction, example "exploration" (6, 33, 1)
Deduction Heinich’s discovery and
problem-solving design
Patterns for objective structures, example "player defined goals" (8, 27, 2)
Explanation
Heinich’s tutorials and demonstration presentation design, Gagné’s event for learning guidance
Patterns for information, example "direct information" (3, 15, 5); Patterns for game elements, example "clues" (1, 19, 3) and "helpers" (1, 10, 1)
Application Kolb’s exploration and
experimentation concept
Patterns for game elements, example "clues" (1, 19, 3)
Production and Construction Kolb’s knowledge possession and experimentation concept
Patterns for immersion, example "creative control" (5, 27, 0)
Kelle et al. (2011) concludes that the consequences of this mapping work are the creation of 3 different perspectives in the application of game design patterns in education: Firstly, the pedagogical enrichment of existing commercial games in order to create a coherent approach to learning [VE06]; Secondly, the enrichment of educational techniques in practice with game
Literature Review
design standards; Thirdly, the development of methods and tools to identify game design patterns embedded in existing educational practices.
Game design patterns were discussed in order to address the correct approach to designing the iLearnTest platform in an effective way. A previous work [LPF15] was conducted to abstract these elements specifically towards the teaching of Software Engineering. Some of the analyzed game design patterns on that work will be used in the development of the platform. These are:
• Game Elements such as Clues and Helpers to aid the learner in answering exercises • Predefined Goals that frame the intent of the interaction with the game
• Mastery and balancing (Randomness)
• Events with score that is awarded as exercises are completed
• Progress indicators and direct information that provide meaningful context
2.4.3 Game Concept Design Patterns
Maciuszek et al. [MM11] elaborated a study on patterns of game content design. In previous studies a standard that can be transferred to role playing educational games was developed based on an architecture proposed by Maciuszek and Martens in for the development of educational games [MM10,HM07].
The analysis focused on design patterns for 4 types of content: "quest", "character", "environment" and "item". Using these standards, a wide range of interactive stories linked to educational content can be developed.
2.5
Existing Games for Software Testing
In this section, we will analyze the existing games in the software testing area.
2.5.1 U-TEST
U-TEST is an educational game, based on the ADDIE model, made to be a pillar in the software testing area with great emphasis on unit testing. In this game, players will be facing challenges focused on recognizing and understanding the main concepts of software testing, as well as, equivalence class partitioning, usage of data selection techniques and analysis of the limit value.
During the game, the player has the assignment of creating test cases to the presented functions. Depending on the player’s performance, a ranking is received, which determines the degree of successfulness of the player. In the following image we can see the first challenge with which the player is faced.
Literature Review
Figure 2.1: U-TEST game
At the end of each level, each player gets a mark based on his performance via graphical interface. By the end of the game the player will know how he behaved throughout each stage and how he is classified among his fellow colleagues on a score board.
2.5.2 Bug Hunt
Bug Hunt [07] is an online tutorial available on the browser. This game contains lessons, and for each lesson there are several challenges that a student can try to overcome. After each lesson is completed, the score for the student performance is shown. A lesson contains a certain amount of goals, challenges and the results. In each lesson it is expected that the student is able to identify errors, and based on the number of errors that are found, the better the score will be.
Figure 2.2: Bug Hunt’s structure
This game is also adaptable from the teacher’s point of view. This means that the solution is bendable to a determined limit, which is a good way to approximate this game to the teacher’s
Literature Review
goals. Also, the teacher will be able to see how their students are progressing by receiving feedback from the platform.
2.5.3 TestEG
TestEG [Oli13] is an educational game, similar to a quiz, which covers software testing areas. This game will simulate a company environment in which you will have money to spend and with that money you can hire up to three employees and train them in order to help out in the testing of a software, as well as read information on software testing. This means that, in this game the player assumes the role of the team manager. During the game, your team will find problems in the code and your objective is to solve them.
Figure 2.3: TestEG game
The goal of this game is to answer ten questions in ten minutes. This game provides feedback, meaning that a teacher can control and see how his students perform in this controlled environment.
2.5.4 Conclusions
Each of these games have unique and interesting aspects. Since these were made with the specific goal of teaching software testing, these same games cannot be adapted to teach different subjects. This is because the learning content of these games is embedded into the game source code. Therefore, having a serious game platform which is capable of using an external source to load content onto it would provide a significant benefit.
Literature Review
2.6
iLearnTest
A prior version of iLearnTest was developed specifically as a serious game for teaching software engineering and provided a limited content loading system. That prior version of iLearnTest is an online platform, which is capable of being used to learn software testing,
promoting competition between players with the usage of an in-game scoreboard, thus improving motivation [T.P14]. The content of software testing covered in this game is supposed to be the same as the one covered in the Foundation Level of ISTQB. At the moment, only two (Static techniques - Chapter 3 and Test conception techniques - Chapter 4) of the six chapters are covered in this game (Figure 2.4). This means that this is an issue which needs to be resolved. Here are the chapters found in the Foundation Level Syllabus [IST11]:
• Testing fundamentals
• Testing through the software’s life cycle • Static techniques
• Test conception techniques • Test management
• Test support tools
Figure 2.4: iLearnTest’s main menu
That platform version had limitations mainly on the ability to adapt new content, since the content was hardcoded on the game. The way this platform teaches software testing is based on
Literature Review
chapter sections. Each chapter has the expected learning objectives, theoretical content followed by a challenge.
Figure 2.5: iLearnTest’s learning objectives for chapter 3
There are several types of games available as a possible challenge in each chapter. These challenges include:
• Guess the concepts • Drag and drop into boxes • Grab the right concepts • Find the way
• Quiz
These challenges, however, may be subject to modifications depending on the architecture used to recreate this platform as a generic one. For example, one type of game may not fit the kind of questions that will be answered, for example, if there is a challenge which asks the solution of a mathematical problem, the quiz would be the ideal game for this challenge and some of the other games would not fit this type of question.
2.7
Frameworks for Game Development
There are multiple platforms that can be used to develop games. A brief review of some of these platforms is presented below.
Literature Review
2.7.1 GameMaker: Studio
GameMaker: Studio [Gam] is a game development toolkit that provides game developers with the necessary tools to build any kind of game, minimizing the need for programming knowledge. It provides features to manage the resources a game may need, assets for the user interface such as sprites, sounds, backgrounds, among others. It also provides sprite/image editor and room editor features. It uses a programming language called GML, which is similar to C++. However, the GML does not support objects, structures, real data types, functions, overloading or named arguments. The GML is used to enhance the design of a game that cannot be achieved solely by drag and drop systems. The project can be exported to other platforms, such as Android, iOS, HTML5.
2.7.2 Construct 2
Using Construct 2 [Sci] requires almost no programming knowledge because it makes a heavy use of drag and drop features, which are intuitive and provide an event-driven type of development. The event system allows for deep, detailed control over all aspects of the game. These can be organized into groups and sub-groups making it more manageable from the developer point of view. However, in the free version, the project can only support up to one hundred events. With this easy to learn framework, it is possible to create games in short time periods. It also offers a built-in physics system, which can bring more depth to a game. The asset loader is similar to the one GameMaker: Studio provides and it also offers image and sprite editors.
2.7.3 Unity
Unity game engine [Tec] offers a vast array of features and a fairly easy to grasp interface. The biggest positive aspect is the cross-platform integration, meaning games can be quickly and easily ported onto Android, iOS, Windows Phone 8, and BlackBerry, making it a great game engine for the development of mobile games. It also has the capabilities of development for consoles. However, there is a lot more that goes into console development, because of
requirements to gain access to console SDKs which new developers will likely not be able to do.
2.7.4 PixiJs
PixiJs [Ltd] is a game engine written in javascript and the web, that brings multi-platform, webGL filters, tinting and blend modes, sprite sheet support, a full scene graph making it easier to organize objects hierarchically, an easy API, an asset loader and text support. Since this is a development framework it simplifies the development of any gaming experience. This also facilitates the integration of the game in web-applications and web-services directly into the game.
Literature Review
2.7.5 Comparing frameworks
Gamemaker: Studio is easy to learn and use, the free version allows the developer to use most of the features, and the GML language is similar to C, which developers are familiar with. It also features an IDE that makes it easier to load assets onto the project. However, exporting to certain formats such as HTML5, iOS, Android, etc requires a comercial license. Another drawback is the limitation of the GML language is limited which does not implement Classes, Objects and other richer elements that are relevant to write portable code. Construct 2 is also easy to learn and use, provides interesting animation features, and a drag and drop editor. The physics engine is also embedded making development of games faster. However the free version allows development of very small games and requires a commercial license. Another drawback is that is only works in windows. Unity is a more developer-oriented tool, that has the ability to deploy games for current gaming platforms, however this lacks features to steer development of simpler games. It is also a commercial platform which limits its use. PixiJS is a development library similar to ActionScript that renders into HTML5 WebGL and Canvas, meaning that games can be played in the
webbrowser. While it might be useful to abstract the game rendering process, if lacks support for game development features.
2.7.6 Selecting an adequate framework
Both GameMaker: Studio [Gam] and Construct 2 [Sci] are flexible game development solutions that allow development and multiplatform game deployment, however they are not as flexible as using a development framework such as PixiJs. GameMaker:Studio and Construct 2 have limiting features, as previously described, making them less adequate for this project. Commercial game development platforms are close-ended systems that are difficult to integrate with, as our use-case requires injection of arbitrary learning content into the system to generate the game. Consequently, if one were to use and existing framework over which to develop an expandable and generic game engine such as the one we intend, PixiJs would be a good choice. Prior versions of iLearnTest were developed using Construct 2. For the purpose of this work, we have opted to develop the game framework from scratch using HTML5, CSS3 and the AngularJS 1.5 javascript framework.
2.8
Conclusions
The study focused on the study of software engineering teaching and its areas of knowledge, the use of serious educational games, existing pedagogical standards, and educational game design patterns.
From the areas of knowledge of Software Engineering, the area of Software Testing was analyzed at a more detailed level, having been identified its diverse topics for use in the research work. Serious games were analyzed, describing the characteristics and components that
Literature Review
Finally, studies on pedagogical standards and game design patterns were presented. First, the pedagogical standards were studied, and the teaching and learning functions of Shuell and Moran were identified. Secondly, game design patterns were studied, where a previously validated mapping by Kelle et al. of the teaching and learning functions of Shuell and Moran (referred to above) was found for the collection of game design patterns Of Björk and Holopainen. Taking into consideration that mapping between game design patterns and learning objectives is a hard task, we acknowledged that the development of a configurable platform for serious game development was relevant, so that game development and game validation cycles are shortened and the best mappings between game design patterns and learning patters are found in a timely fashion. While there are multiple platforms that simplify game development, since we intended to develop a configurable gaming framework we opted for developing from scratch.
Chapter 3
Project
This chapter describes the architecture of the current iLearnTest platform version.
3.1
Game design patterns
According to [LPF15], learning and teaching functions can be mapped to certain game design patterns depending on the domain knowledge that is used. As an example in the field of Software Engineering Management which is a field approximate to Software Testing, there are several learning and teaching functions that are relevant, such as:
• Attention • Interpreting • Analyzing • Feedback • Explaining • Applying
Each of these, have one or more game design patterns associated with it. The associated patterns were validated through a case study [FPL16], meaning that learning and teaching functions translate directly to game design patterns (Figure 3.1), making it possible to have the same or better, although different, learning experience through a serious game environment.
Project
In the iLearnTest’s case, the game design patterns used were the ones identified from the previous work [LPF15] as seen in the Literature Review section of this document.
Figure 3.1: Learning and Teaching Functions Triangle
The selected learning and teaching functions, as well as the game design patterns were based on [FPL16]. The learning and teaching functions chosen are well balanced, meaning that, they are fit to adapt to a vast number of knowledge domains, in this case, particularly well for Software Engineering Management.
Regarding the chosen game design patterns, it was necessary to define how the platform should integrate them, in order to create the ability of being a complete serious game from the point of view of the analyzed learning and teaching functions. As such, this platform features a point system, which informs the learner of how many points it has at any current moment. Regarding progress indicators, and in the same line as the point system, each room entrance has a number of retrieved points out of a certain total. This means that the learner will know if he has thoroughly completed a given room or not, this information is also visible while inside that room. In addition, depending on the percentage of points in each room, badges will be added to create a feeling of fulfillment on the leaner.
Project
3.2
Technical Architecture
Figure 3.2: iLearnTest’s architecture
The iLearnTest platform was built using a standard web application stack based on AngularJS [Goob] and Angular Material [Gooa]. AngularJS is a Model-View-View-Model (MVVM) framework that enables rapid development of web user interfaces. It employs a double binding model that synchronizes state updates in data models and the corresponding HTML views in a bidirectional way, so that changes in the data structure are propagated to the view, and user interactions with the views are propagated to the models. In addition, in order to simplify the development of these views, graphical components from the Angular Material library were employed. View declaration was developed in JADE which is a simplified language that compiles to HTML. This way views can be easily composed and reused. Because of the direct mapping between data structures and HTML templates, it becomes straight-forward to design a JSON document that represents a piece of learning material that can be rendered as a game.
The architecture (Figure 3.2) was divided in two major parts, the interface and the controllers. The interface is responsible for receiving information from the controllers and
Project
displaying it accordingly based on the user inputs. The controllers are charged with the task of handling user interaction events and controlling the application accordingly. There are three different rooms, but four controllers. The reason why there is an additional controller based on room numbers is because there needs to exist a root controller capable of maintaining the global game state and coordinate tasks and resources that the other controllers should not be responsible for. Thus we have a controller for each room type and a root controller. The root controller loads the JSON document and performs a parsing and indexing step. Fragments of the parsed object are then passed to each room controller when they are evoked.
The iLearnTest’s architecture intends to be modular and separate concerns as much as possible, whilst being able to load JSON documents to render a complete game (Figure 3.3). Thus the platform can be used to learn any kind of knowledge, as long as the JSON document follows the correct format. The JSON structure is presented below.
1 { "rooms": [ // Array containg all room games
2 {
3 "key": "3", // Internal room key identifier
4 "type": "lobbyRoom", // Room type either lobbyRoom or learningRoom
5 "name": "Static Techniques", // Room name
6 "links": ["3.1","3.2","3.3","3.4"], // Links to other rooms reference by key
7 "parent": "0" // Link to the parent rook referenced by key
8 },
9 {
10 "key": "3.1",
11 "type": "learningRoom",
12 "name": "Static Techniques and Test Process",
13 // Array containing the learning objectives for the room
14 "learningObjectives": [{
15 "title": "LO 3.1.1", // The learning objective title
16 "content": "Recognize software <b>work products</b>..." // The content which can be HTML
17 }],
18 // Array containing chunks of learing material that can be navigated back and forth
19 "contents": [{
20 "title": "3.1 Static Techniques and the Test Process", // The content title
21 "content": "Unlike dynamic testing" // The learning material for the content
22 }],
23 "challenges": [
24 {
25 // Challeng type, either "Fiend the Word", "Multiple Choice" or "Select the Keywords"
26 "type": "Find the Word",
27 "exercises": [{ // Array of exercises for the challenge. Each exercise object has a specific structure for each challenge
28 "statement": "Recording updated status of defects.", // Exercise statement
Project
29 "answer": "rework", // Correct answer
30 "helper": "Fixing defects found.", // Helper information shown by user request
31 }]
32 },
33 {
34 "type": "Multiple Choice",
35 "exercises": [{
36 "statement": "Line 1 of the previous code.",
37 "answer": "d",
38 "options": [ "d", "r", "u", "-"] // Multiple choice exercise has a set of possible choice
39 }]
40 },
41 {
42 "type": "Select the Keywords",
43 "exercises": [
44 {
45 "statement": "Which concepts belong to the following test design technique?",
46 "topics": { // Topics to which items are associated
47 "bb": { // Topic key
48 "label": "Black-box techniques" // Topic label
49 },
50 "wb": { "label": "White-box techniques" }
51 },
52 "items": [ { // Item list
53 "topic": "bb", // Topic that the item belongs to
54 "concept": "Decision Table" // Label for the concept
55 },
56 { "topic": "wb", "concept": "Condition Coverage" } ]
57 } 58 ] 59 } 60 ], 61 "links": [], 62 "next": "3.2", 63 "parent": "3" 64 } 65 ]}
In addition, the platform was built in a modular way, meaning that if it is necessary to add new challenges, these can be easily developed and integrated into the platform. For instance, if we want to create a new cross word puzzle challenge, we need to develop a new challenge function that can later be evoked from the challenge controller, as well as a new challenge view template. The new challenge type can then be used on existing or new game JSON documents. The system provides a json editor that was implemented using a json editor tool [dJ]. The json
Project
document is passed between the root controller and the json editor library so that changes in the json document trigger a game re-render.
Figure 3.3: iLearnTest’s Json Editor
The development process was streamlined using Glup.js [Gul] which is a development toolkit that automates front-end development tasks such as JADE template compilation, javascript code concatenation and minification, asset compression and serving.
3.3
Validation
The iLearnTest platform was validated using the learning context from a prior game on software development. Here we present the validation of the system by implementing the same game using our game engine. The Software Engine game provided a room-based navigation that we present below:
• Lobby room (Figure 3.4)
• Learning room (Figures 3.5 and 3.6) • Challenge room (Figures 3.8 , 3.9 and 3.10)
3.3.1 Lobby room
The lobby room is a navigational room meant to serve as a hub to other rooms, in such as way that if the current lobby room is number 3 it will enable the learner to access to rooms 3.1,
Project
3.2 and 3.3. These rooms serve as entry level rooms into a knowledge topic, that further routes the learner into rooms representing sub-chapters and rooms representing actual learning material.
Project
3.3.2 Learning room
The learning room is the room type where learning materials can be accesses. Each room is fragmented into a set of screens composed of learning materials that can be navigated back and forth. These contain learning objectives and other relevant information regarding the subject at hand. This room is holds information, examples, sample exercises and solved exercises which will aid the learner in the challenge room.
Figure 3.5: iLearnTest’s Learning Room - Learning Objectives
Figure 3.6: iLearnTest’s Learning Room - Content
Project
3.3.3 Challenge room
The challenge room is a room type that provides the learner with active learning activities that engage the learner. Every challenge presented in these rooms will award the learner with points, and instant feedback on its answers. Regarding as an example a multiple-choice question challenge where the learner is presented 10 multiple choice questions, and correctly answers 8, the system will provide feedback on the items that are correct and the items that are not. The learner can go back to the specific learning rooms to consolidate his knowledge, recall parts of the material and play the challenge as many times as necessary. The best score for each challenge is always recorded, meaning that if the learner in a later attempt scored 6 out of 10, the scoring system would still consider the 8 out of 10 points. This system is intended to encourage the learner to keep learning and not to discourage him from being able to get wrong answers without being penalized. This way we can have a learning environment that motivates the student.
Project
3.3.4 Room linkage
After having the three types of rooms well defined, it is possible to create rooms in this platform that are a combination of them, for instance, we have a room in which the first three pages refer to a learning room, the fourth and fifth pages have a challenge each and the last page is a lobby room that will allow the learner to access other rooms. It is also possible to have a room with just the learning part followed by the lobby, this brings great variety to each room, which means each room can be unique in its own way and adapt to the needs of the person creating the content file. However, navigating all these rooms can be confusing and it is rather easy to lose track of where the learner is located. Therefore, a mini-map navigation system was implemented in order to provide the learner with a sense of positioning within the content (Figure 3.7).
Figure 3.7: iLearnTest’s mini-map feature
3.3.5 Challenges
The ‘Find The Word‘ challenge consists on recalling the word that matches a given concept. For this purpose the helper pattern was used in addition to direct recall cues which are present in every learning room, and provide the content for the user to have the ability to clear the
challenges faced with. However, if the task is too difficult or the learner has difficulties recalling certain word(s), the game will allow for one hint to be used. As we can see in the figure below (Figure 3.8), we can see only one answer was correct, because of the color associated with each exercise. It is also visible that one help was used for the second question.