C# Interpreter and Unity 3D for Educational Programming …UNITY 3D In this section we outline our...

7
CGAMES 2013 The 18th International Conference on Computer Games C# Interpreter and Unity 3D for Educational Programming Games Paul Smith, Thomas P. Hartley and Qasim H. Mehdi School of Technology University Of Wolverhampton, UK, WV1 1EL E-mail: {[email protected]} Abstract -In this paper we present an approach to creating educational programming computer games. We combine the CSI interpreter with Unity 3D to enable a player to enter program statements that can alter the game world while it is being played. We also create wrapper methods that encapsulate complex Unity C# tasks into easy to use helper functions. The results from our initial experimentation show that the technique offers a promising approach to educational programming games. Keywords - Unity 3D, computer science eduactional games, programming game. I. INTRODUCTION Educational games, sometimes called ÎdutainmentQ are used to aid the teaching of a specific subject in an immersive and constructivist environment. A constructivist environment is one in which a student is given Onteraction, cognition and context6[1] so that they can attach a purpose to the information they are being taught and see results in an immersive and interactive way. Educational programming games are computer games that allow the player to create computer programs within the game environment. Programs in these games can be created in a variety of ways, such as by visually arranging icons / a flow diagram, writing code or taking actions within the game. This work explores educational programming games that require the user to write code. The motivation for this work is the lack of interesting and fun resources available for novice programmers to aid them in leaing the basics of writing program code, rather than making use of visual tools. In this paper we present an approach to creating educational programming computer games using Unity 3D and an open source interpreter. The remainder of the paper is organised as follows: Sections II outlines background. Section III describes our approach to creating an educational game with Unity 3D. The experiments to evaluate the performance of the system are described in Section IV along with their results. Section V concludes this work and outlines future research. II. BACKGROUND Historically, researchers have found limited evidence that educational games benefit study. A review of educational literature by Randel [2] revealed that om 67 studies, over half (38) concluded there is no difference between the use of educational games and conventional study. The review found that 22 studies were in favour of educational games, 5 favoured educational games but questioned the efficiency of the controls in place and 3 believed conventional means of study were a better tool. RandelG research was a review of studies 978-1-4799-0820-2/13/$31.00 ©2013 IEEE conducted over a 28 year period between 1963 and 1991, just at the beginning of major computing advancements. These studies were also conducted at a time when computer based educational tools were not used in great volumes or even at all. This may be due to a lack of teacher confidence when using computers [3] as many were fearl of making mistakes or being unable to use them effectively. A more recent paper researching the validity of the scales used to measure computer attitudes in RandelG work [4] shows that these scales are still relevant today, but they are starting to become less accurate as computer experience is not a good predictor of computer attitudes. A. Computer ience Educational Games improvement in an individualG ability to lea and write code is extremely important as general problem-solving skills are needed in many fields of higher education. Furthermore in the United Kingdom School IT is being replaced by a computer science programme that will introduce ndamental topics, such as algorithms and coding to all ages of school children [5]. Through the development of technology video games have become more sophisticated in their gameplay and storylines. A recent survey by PewResearch [6] reveals that 97% of the USA teenagers played video games either on consoles, PCs or on portable devices. With this in mind, research and projects have already been undertaken to evaluate the effect of video games within the classroom. A study by McFarlane [7] evaluated commercial games and their educational benefits. The general response om the teachers involved concluded that there was space for games in the classroom as long as they supported the topics being taught. Games such as Age Of Empires were used to teach students about historical events and SimCity to lea about politics, finance and city planning. However, students and teachers both agreed that the leaing materials were only incidental. CodeHS [8] is one example of a current computer science educational game. It can be considered somewhat simplistic, as it is aimed at children 6+; however, it was effective when introducing logic and problem solving events within programming. Nevertheless it also has limitations, for example a player cannot use a for loop to avoid having to repeatedly type the move command. Kodu Game Lab [9] is more complicated than the CodeHS game; however, it also has a lot more scope as the user can create a realized game from the tools provided by the engine. Although this is an effective programming game it tends to lean towards drag and drop tutoring instead of giving the user 41

Transcript of C# Interpreter and Unity 3D for Educational Programming …UNITY 3D In this section we outline our...

Page 1: C# Interpreter and Unity 3D for Educational Programming …UNITY 3D In this section we outline our design and the development of a prototype educational game using Unity 3D and a C#

CGAMES 2013 The 18th International Conference on Computer Games

C# Interpreter and Unity 3D for Educational Programming

Games

Paul Smith, Thomas P. Hartley and Qasim H. Mehdi School of Technology

University Of Wolverhampton, UK, WV1 1EL E-mail: {[email protected]}

Abstract - In this paper we present an approach to creating educational programming computer games. We combine the CSI interpreter with Unity 3D to enable a player to enter program statements that can alter the game world while it is being played. We also create wrapper methods that encapsulate complex Unity C# tasks into easy to use helper functions. The results from our initial experimentation show that the technique offers a promising approach to educational programming games.

Keywords - Unity 3D, computer science eduactional games, programming game.

I. INTRODUCTION

Educational games, sometimes called CEdutainmentQ are used to aid the teaching of a specific subject in an immersive and constructivist environment. A constructivist environment is one in which a student is given Onteraction, cognition and context6[1] so that they can attach a purpose to the information they are being taught and see results in an immersive and interactive way.

Educational programming games are computer games that allow the player to create computer programs within the game environment. Programs in these games can be created in a variety of ways, such as by visually arranging icons / a flow diagram, writing code or taking actions within the game. This work explores educational programming games that require the user to write code. The motivation for this work is the lack of interesting and fun resources available for novice programmers to aid them in learning the basics of writing program code, rather than making use of visual tools.

In this paper we present an approach to creating educational programming computer games using Unity 3D and an open source interpreter. The remainder of the paper is organised as follows: Sections II outlines background. Section III describes our approach to creating an educational game with Unity 3D. The experiments to evaluate the performance of the system are described in Section IV along with their results. Section V concludes this work and outlines future research.

II. BACKGROUND

Historically, researchers have found limited evidence that educational games benefit study. A review of educational literature by Randel [2] revealed that from 67 studies, over half (38) concluded there is no difference between the use of educational games and conventional study. The review found that 22 studies were in favour of educational games, 5 favoured educational games but questioned the efficiency of the controls in place and 3 believed conventional means of study were a better tool. RandelG research was a review of studies

978-1-4799-0820-2/13/$31.00 ©2013 IEEE

conducted over a 28 year period between 1963 and 1991, just at the beginning of major computing advancements. These studies were also conducted at a time when computer based educational tools were not used in great volumes or even at all. This may be due to a lack of teacher confidence when using computers [3] as many were fearful of making mistakes or being unable to use them effectively. A more recent paper researching the validity of the scales used to measure computer attitudes in RandelG work [4] shows that these scales are still relevant today, but they are starting to become less accurate as computer experience is not a good predictor of computer attitudes. A. Computer Science Educational Games

An improvement in an individualG ability to learn and write code is extremely important as general problem-solving skills are needed in many fields of higher education. Furthermore in the United Kingdom School IT is being replaced by a computer science programme that will introduce fundamental topics, such as algorithms and coding to all ages of school children [5].

Through the development of technology video games have become more sophisticated in their gameplay and storylines. A recent survey by PewResearch [6] reveals that 97% of the USA teenagers played video games either on consoles, PCs or on portable devices. With this in mind, research and projects have already been undertaken to evaluate the effect of video games within the classroom.

A study by McFarlane [7] evaluated commercial games and their educational benefits. The general response from the teachers involved concluded that there was space for games in the classroom as long as they supported the topics being taught. Games such as Age Of Empires were used to teach students about historical events and SimCity to learn about politics, finance and city planning. However, students and teachers both agreed that the learning materials were only incidental.

CodeHS [8] is one example of a current computer science educational game. It can be considered somewhat simplistic, as it is aimed at children 6+; however, it was effective when introducing logic and problem solving events within programming. Nevertheless it also has limitations, for example a player cannot use a for loop to avoid having to repeatedly type the move command.

Kodu Game Lab [9] is more complicated than the CodeHS game; however, it also has a lot more scope as the user can create a realized game from the tools provided by the engine. Although this is an effective programming game it tends to lean towards drag and drop tutoring instead of giving the user

41

Page 2: C# Interpreter and Unity 3D for Educational Programming …UNITY 3D In this section we outline our design and the development of a prototype educational game using Unity 3D and a C#

CGAMES 2013

the ability to learn through coding itself. That being said, the concepts that the student will pick up from this kind of educational game will greatly benefit them when moving to real coding as their mental state will be prepared.

CodeSpells is a video game that teaches people how to code Java [10]. It immerses programming within gameplay and game mechanics. In CodeSpells a player takes the role of a wizard who writes spells in Java by following guidance from a book of spells. An initial evaluation of CodeSpells with a group of 40 girls aged 10 to 12 in San Diego showed that students were very interested in the game and exhibited tendencies to explore the games possibilities. The results from the research show that educational programming games which incorporate programming as the key game mechanics / gameplay objectives offer an engaging environment for novices to learn programming.

III. AN EDUCA TION AL PROGRAMMING GAME IN UNITY 3D

In this section we outline our design and the development of a prototype educational game using Unity 3D and a C# interpreter. The proposed game is designed to help novice students learn computer programming. The gameplay of the game integrates programming as a fundamental mechanic. In order to progress through the game a player will need to engage with and learn essential programing skills. For example, to cross a large ravine the player will need to use the CtreateBlockOcommand to create a bridge from one side to the

Unity game engine

The 18th International Conference on Computer Games

other. Unfortunately the created blocks only exist in the game world for a short amount of time; therefore, the player will not be able to manually create enough blocks to cross the ravine before they start disappearing. Through in-game assistance and classroom learning students will study approaches to solve this problem with their programming skills. For instance, if a student uses a for loop to create the blocks they will create them quickly enough to cross the ravine and progress through the game.

The incorporation of programing as a key gameplay mechanic means students are encouraged to explore and develop their programming skills in order to progress. This allows students to learn new programming techniques and reinforces learnt knowledge. This type of game offers novices an alternative and engaging way of learning programing.

To successfully implement an educational programming game we decided to make use of the open source C# interpreter called CSI [11] that is a plugin for the Unity 3D game engine. The CSI interpreter enables C# code to be executed in an interactive console while a Unity game is running [11]. Figure 1 illustrates a high-level overview of the Unity 3D and interpreter architecture. The CSI interpreter plug-in for Unity provides a runtime user-interface that is displayed over the top of a game scene. The interface includes a text input box where a player enters code to be interpreted. When code is entered by a player the enter key is pressed and the text is sent to the C# interpreter for processing and execution [11].

User The user uses he game

engine to play he ga me

and make use ofthe

inte rprete r

in itia lise s th e inte rprete r

on load. Once loaded the

console can be opened and

used freely. Unity Game Engine Objects and core

scripts

Interpreter Code

Wh e n th e inte rpre e r is

loaded, the user can use it

to -create or -change objects

within the game engine by

calling functions held

w ithin he G ame Code

script.

Interpreter

G ame Code script

The game engine has a

reference ofthe game

code held within a game

obj e ct for th e inte rprete r

to find and use to-call

me hods from.

Figure 1: A high-level overview of the proposed Unity 3D and interpreter architecture.

978-1-4799-0820-2/13/$31.00 ©2013 IEEE 42

Page 3: C# Interpreter and Unity 3D for Educational Programming …UNITY 3D In this section we outline our design and the development of a prototype educational game using Unity 3D and a C#

CGAMES 2013

The interpreter supports the use of preprocessor macros that allow the C# code to be shortened and thus be more memorable for the user. For example, instead of wntmg CEystem.IO.File.ReadAliText(Cfile.txtqa the user would only have to type CReadFile(Cfile.txtqa into the interpreter. The interpreter also provides mechanisms to look for Unity game objects. For example, typing C$myCommandsa and pressing the enter key would result in the interpreter looking for a GameObject named OnyCommandsO This functionality provides quick access to Unity game objects and also allows more complex Unity tasks, such as the creation of a game object, to be wrapped into a single function call. This approach allows a player to use all logical functions within the game to learn about the basics of programming including variable initialization, logic operations and iteration. In addition, due to the implementation of wrapper methods a player would not need to write the more complicated code to create objects in the game. The wrapper methods will have all the necessary code to perform a task in the game whilst it is running; however, they will need to be used in conjunction with other programming statements for them to work completely.

A. Wrapper Methods A custom game object was created that provided commands

(functions / methods) for a game player to call and use to alter the game environment. For example, a wrapper method was

The 18th International Conference on Computer Games

developed to create a cube in the direction a player is looking. The player uses the cube as platform to walk across. The function definition for this is as follows: CcreatePlatform(int)Q where the parameter is the n�mber of units �he platform is away from the player. The CCreatePlatform(mt)O command works by first getting the direction the player is facing and then instantiating a game object that represents a cube at x units from the player. A unit is equivalent to the length of one cube. If the player understands how to use for loops, then he would be able to use the variable initialized within the for loop as a parameter for this command and thus be able to create a row of cubes. In order to make the game more challenging and to encourage the player to learn programming commands the dynamically generated platforms can be only used once. When the player collides with the objects, these objects will be destroyed within a fix amount of time.

Other wrapper methods that support similar behavior were created. For example, the CcreateStair(int int)amethod creates a stairway in front of the human player. The first parameter of the function determines the units in front of the player that the cube will be created and the second attribute determines the number of units above the first attribute. The first wrapper method encourages the player to learn for loop, while the second wrapper method encourages the player to learn nested for loops.

Figure 2: A sequence diagram illustrating the interpreter process

978-1-4799-0820-2/13/$31.00 ©2013 IEEE 43

Page 4: C# Interpreter and Unity 3D for Educational Programming …UNITY 3D In this section we outline our design and the development of a prototype educational game using Unity 3D and a C#

CGAMES 2013

The sequence diagram in Figure 2 shows the events leading to the initialization of the game code and then a method call. First the player starts the game and opens the console; then the Unity engine calIs a method that sets the interpreter to true and displays it on the screen. The user can then type a method that the interpreter understands as setting a script file to a variable, this script file can then be accessed through the interpreter to calI methods and create events within the Unity game engine.

B. Designing Gameplay and Prototype Level The proposed game takes place on a spaceship that has

been overrun by Aliens. The human player takes the role of the last surviving crew member. The goals are to fix the spaceship, get rid of the aliens and avoid an oncoming asteroid. Rather than conversional weapons the human player has the ability to add blocks to the game environment through programming commands. For example, the player can create platforms to cross wide areas or stairs to reach high items. In order to progress though the game the player needs to solve problems that require them to use their programming skilIs along with the game commands, such as CtreateBlockO

The main objective of the game is to write code to create objects or trigger events in game, therefore an adventure game was developed as this type of gameplay complements the Onput codeOmechanic. This genre of game entails the ability to explore a level or a game world easily, finding important objects that wilI help the player continue through the game. The game is in 3D and the player wilI be able to move in all directions and be able to jump to platforms. For simplicity the game is in first person view, this allows the player to easily set the direction they build something in game, such as creating a stairway.

The game also needs to have events and story in addition to the programming challenges, for example enemies or events that occur as the player goes through the game. The story for the proposed game takes place on a spaceship. During the first level the player finds themselves stuck aboard a spacecraft that has lost the ability to maneuver. In addition an alien force has planted a virus upon the ship and rendered it useless. The human player starts the game alone on the ship as all of the crew escaped leaving them for dead. The playerG task is to move around the damaged ship and take back control by booting up the ships defense nodes to block the virus for a short amount of time. This enables the player to fly the ship away.

The spaceship consists of four compartments, the first is a halIway that acts as the spawn point for the player and links alI other compartments together, there are two other identical compartments on the left and right of the hal1way that act as switch rooms and the last compartment is considered the bridge of the ship. The player must save the ship and themselves from destruction by using the interpreter to learn about programming, gain hints and perform tasks by using the wrapper methods coded into pre compiled scripts. Figure 3 contains two screenshots of the prototype programming game and the interpreter in action.

978-1-4799-0820-2/13/$31.00 ©2013 IEEE

The 18th International Conference on Computer Games

Figure 3: Screenshots of the programming game being played and the interpreter being used

IV. EXPERIMENTAL RESULTS To evaluate the use of Unity 3D and the CSI interpreter we

developed a prototype game, as il1ustrated in Figure 3. In addition a questionnaire was created to establish how the developed game stands up to accessibility and educational completeness. A smal1 group of 10 players was selected, 5 were experienced programmers on a Computer Science degree and 5 inexperienced programmers who had no formal computer science education.

Figures 4 and 5 outline the results from the questionnaire. Each participant was asked 9 questions. All of the questions asked had a 1-5 agreement scale attributed. For example, the question (Ple�se rate your experience playing, video game sO had the scale G. I never play video gamesOto Cli. I play video games as much as I canO The question as it easy to understand the instructions on the main menu?O has a scale that ranged from Q. Very ConfusingOto 05. Very EasyO The graphs in Figures 4 and 5 show the average score from the questionnaires converted to numerical form, where 1 represents OIoes not agreeOand 5 represents atrongly agreeO

A question was also posed about the amount of time that an individual played video games at home. This is potentialIy an interesting criterion to observe in order to evaluate if a personG propensity to play video games had any effect on performance. The rest of the questions focused solely on the accessibility and

44

Page 5: C# Interpreter and Unity 3D for Educational Programming …UNITY 3D In this section we outline our design and the development of a prototype educational game using Unity 3D and a C#

CGAMES 2013 The 18th International Conference on Computer Games

Totals for Inexperienced Programmers

5 QJ

iij 4 u Vl ... c: QJ 3 E QJ QJ �2 <{

1

%e, �" o· �. '1 !I. ... 0" �l

'1 �� e,' �o �

-::..1).::.... -.>" �,,1j �o

�1) oe(1) r§' 1)" �e,

-.>(J ��

. -::.. ,0 � 7>' e,<:' o� � �:� �.::... oe, -::..<Q � (Jo

\.-.><::-01> 0'<::- <::-0 �o e(1) 'l<;:-e, �� �1> e,o � ,-.> -::..e, �o �e

1)<:' ,0 , �o o� �1) (J1) �,� � � ",�c.; 0<::- 1)<:' . -::.. 0':> <J' otl- e(1) 'l<;:-e, <.; � �,1> � 'l<;:-e,

otl- �o �� oQ'e �<:' .�� ,,,"" ,-.>

,0 �' �1)" -.><:' � �1) � ,1> 0-'> '?-� <v1)c.; �c.; �,o�

0 Questionnaire Questions

Figure 4: Average response of inexperienced programmers.

efficiency of the game both as a video game and as an educational tool.

A. Inexperienced Group Figure 4 outlines the average results from the inexperienced

group. In this group there was a range of different video game usages that went from occasional to very regular. This broad range did not seem to have an impact on understanding the tutorials and knowing how to play the game. There was overall consensus that the beginning of the game and the console tutorial were clear and understandable. However, the content of the programming tutorials caused some confusion and meant that many of the participants were unable to continue after the tutorials.

There were a few issues with the console interface as some thought its implementation was hard to use, especially as the windows of the console can cover some of the tutorial text and opening and closing the window happened too often.

It is interesting to note that although some of the participants understood what was taught in the tutorials to some degree, they were uncomfortable using what they have been shown in game to progress. Generally the participants did not understand how to use the code they had been shown well enough to be able to go any further after the tutorials. A number of

978-1-4799-0820-2/13/$31.00 ©2013 IEEE

comments stated that if they had more knowledge of programming or if the tutorials were a bit more straightforward or had better examples they would understand what to do next more clearly. Some commented that the tutorials were somewhat boring and needed to be made more interesting.

Although many of the participants struggled with the game, they agreed that this would be a good educational tool to aid someone who has already got some knowledge of programming, and that it is not well suited to people who know very little about programming. The difficulty of the game meant that all individuals could not complete the prototype level as they were unable to use the mechanic and therefore the prototype has low (fun to play6scores.

B. Experienced Group Figure 5 outlines the average results from the experienced

group. These participants either had a good amount of programming experience or were comfortable with programming. As can be seen from Figure 5, the majority of this group played video games regularly or when time allowed. As the difference in video game experience between the two groups is small (see Figures 4 and 5), itG hard to say if this had an impact on an educational game.

45

Page 6: C# Interpreter and Unity 3D for Educational Programming …UNITY 3D In this section we outline our design and the development of a prototype educational game using Unity 3D and a C#

CGAMES 2013 The 18th International Conference on Computer Games

Totals For Experienced Programmers

� 5 ttl � 4 ..... c: ClJ 3 E ClJ � 2 Q.Q

<t 1

� 0··· � .. �. �<:' �o �7f �. �. c., •. ��.

'1

v" ;S �� ���. vc.,7f c} � 0 �o �� f;:-�

o� �

� o�' .... 0 � .... 0 .... � 0 <:Qq; �,7f

"" c.,� .� v<:' of. �c., � ,v� 0� q;� !'--o �� oq; �c., �

�o .... 0 .!'--.... v �q; v<:' �� �o

�q; of. . c.,' .... c.,o ,,� �,7f �,� ,�c., Ov � �? �' o� !,--o 0'::>

.... � �� (] <6'0� .... v «) .;sq; f;:-'? ,c.,"" �� q} ��c., c.,

"" 0 �� "?-�

Questionnaire Questions

Figure 5: Average response to questionnaires from experienced or comfortable programmer.

All partIcIpants understood what to do when the game started and how the game movement and interaction worked. As with the inexperienced group, the players found the console to be a bit CtlunkyO In addition it was awkward to use due to having to close and then open the console to type.

The majority of the participants agreed that the tutorials were not as clear as they could be, as most are experienced with programming, some instructions missed out parts of the process or added things that were not initially mentioned. With that said, all of them either fully understood or felt comfortable with the educational content shown within the game and they were able to continue with the next part of the game.

Few of the participants made use of the help command that allowed them to look through the game code to see what commands they could enter. Most participants decided to follow the hints that were given when one of the wrapper classes is called. Participants commented on the fact that it was pretty obvious to them what they needed to do, but would understand how it could confuse people.

Overall the experienced participants felt that the prototype educational programming game would have good educational benefit if the tutorial had been clearer. The question ONas the game fun to play?O received the lowest average score (see Figure 5). Some participants stated that the graphics were a bit poor and that there was not enough content to use the creation code on, and so they felt limited in its use.

v. CONCLUSIONS AND FUTURE WORK In this paper we have explored an approach to creating

educational programming computer games. We have combined the CSI interpreter with an educational game designed to

978-1-4799-0820-2/13/$31.00 ©2013 IEEE

encourage and enhance student learning of programming. The educational game is implemented in Unity 3D and enables a player to enter program statements that can affect the game being played. We have also created helper wrapper methods that encapsulate complex Unity C# tasks into easy to use functions.

We have completed a small scale survey that evaluates merits of the initial educational programming game. The results reveal helpful insights into how we can improve upon weaknesses in the prototype and to develop its strengths. From the questionnaire it has been ascertained that the clarity and brevity of the educational content has to be improved greatly, not only that it has to be taught in a more interesting way.

The prototype itself also needs to be improved as a video game. Many participants from both groups believed that the game could be made more interesting, by either having parts of the game that were not so CprogrammingOorientated or having more ways to use the wrapper methods provided.

The prototype does have a number of strengths. The questionnaire results indicate that as an educational tool there is potential for it to be engaging for a user who wants to learn about programming and enjoys playing games. Human interaction with the game is generally good throughout the prototype according to the results. However, there are a small number of issues with the consoleG interfaces ease of use. In the future we will look to take this approach further by developing a simpler programming game that has a clearer interface and less complexity for novice programmers.

46

Page 7: C# Interpreter and Unity 3D for Educational Programming …UNITY 3D In this section we outline our design and the development of a prototype educational game using Unity 3D and a C#

CGAMES 2013

REFERENCES [1] Sing, L. (1999) Problem-solving in a Constructivist

Environment. Educational Technology & Society 2(4) 1999. ISSN: 1436-4522.

[2] Randel, 1. M., Morris, B. A., Wetzel, C. D., & Whitehill, B. V. (1992). The effectiveness of games for educational purposes: A review of recent research. Simulation & Gaming, 23,261 fl27 6.

[3] Pina, A.A. & Bruce, H.A. (1993) Increasing TeacherG Confidence in Using Computers for Education. 9.

[4] Garland K J,. Noyes J M. 2008. ScienceDirect.com -Computers in Human Behavior - Computer attitude scales: How relevant today? [ONLINE] Available at: http://www.sciencedirect.comiscience/article/pii/S0747563207 000520. [Accessed 01 May 2013].

. [5] BBC News - School ICT to be replaced by computer

SCIence programme. 2013. BBC News - School ICT to be repl�ced by computer science programme. [ONLINE] A vatlable at: http://www . bbc.co. uklnews/education-16493929. [Accessed 08 April 2013].

[6] PewResearch (2008) Teen and Young Adult Internet Use. <http://www.pewresearch.org/millennials/teen-internet­use-graphic/>.

978-1-4799-0820-2/13/$31.00 ©2013 IEEE

The 18th International Conference on Computer Games

[7] McFarlane, A., Sparrowhawk, A. & Heald, y. 2013. Report on the educational use of games. [ONLINE] Available at: http: //www . pewinternet.org/-/media/ /F ileslReportsl2008/PI P _Teens_ Games_and_ Civics_Report_FINAL. pdf. pdf. [Accessed 11 April 2013].

[8] CodeHS. 2013. CodeHS. [ONLINE] Available at: http://www.codehs.comi. [Accessed 28 February 2013].

[9] Kodu I Home. 2013. Kodu I Home. [ONLINE] Available at:http: //www.kodugamelab.comi. [Accessed 28 February 2013].

[10] Esper, S., Foster, S. and Griswold, W. (2013) On the Nature of Fires and How to Spark Them When Y ouG>e Not There .. SIGCSE03, March 6 f) 9, 2013, Denver, Colorado, USA. [ONLINE] <http: //db.grinnell.edu/sigcse/sigcse20 13IProgramiview Accept edProposal. pdf? sessionType=paper &sessionN umber=25 2> .

[11] Geldenhuys, T. (2013) C# Interpreter Console for Unity 3D. [ONLINE] <http://blog.tiaan.comilink!201 0/03115/csharp­interpreter-unity-plugin-console-debugger>.

47