57
POLITECHNICA UNIVERSITY OF BUCHAREST FACULTY OF AUTOMATIC CONTROL AND COMPUTERS COMPUTER SCIENCE AND ENGINEERING DEPARTMENT DIPLOMA PROJECT Android Educational Game for Kids Joc Educaţional pentru Platforma Android Thesis supervisor: Prof. dr. ing. Florica Moldoveanu Graduate: Dană Răzvan

Android educational games

Embed Size (px)

DESCRIPTION

Thesis on educational games for mobile devices Android.

Citation preview

Page 1: Android educational games

POLITECHNICA UNIVERSITY OF BUCHARESTFACULTY OF AUTOMATIC CONTROL AND COMPUTERSCOMPUTER SCIENCE AND ENGINEERING DEPARTMENT

DIPLOMA PROJECTAndroid Educational Game for Kids

Joc Educaţional pentru Platforma Android

Thesis supervisor: Prof. dr. ing. Florica Moldoveanu

Graduate:Dană Răzvan

BUCHAREST

Page 2: Android educational games

2014Table of Contents

1. Introduction......................................................................................................................................................31.1. Traditional video games...........................................................................................................................31.2. Serious games...........................................................................................................................................31.3. Educational games for kids.......................................................................................................................4

2. Game objectives...............................................................................................................................................52.1. General purpose........................................................................................................................................52.2. Motivating the player................................................................................................................................52.3. Target audience.........................................................................................................................................62.4. Different approach....................................................................................................................................6

3. Overall game description.................................................................................................................................83.1. Background...............................................................................................................................................83.2. Gameplay..................................................................................................................................................83.3. Story Game...............................................................................................................................................8

4. Mini Games Description................................................................................................................................134.1. Tidy Up...................................................................................................................................................134.2. Order, Not Chaos....................................................................................................................................164.3. Groceries.................................................................................................................................................18

5. The game software architecture.....................................................................................................................205.1. Android Framework................................................................................................................................205.2. Technologies used..................................................................................................................................205.2.1. Overview..........................................................................................................................................205.2.2. Unity3D 4.3.3...................................................................................................................................205.2.3. Visual Studio 2012...........................................................................................................................205.3. Application Architecture........................................................................................................................215.4. Class Diagram.........................................................................................................................................225.5. Game State Diagram...............................................................................................................................25

6. 3D Environment.............................................................................................................................................266.1. Overview.................................................................................................................................................266.2. Specialized software used.......................................................................................................................266.2.1. Autodesk 3D Studio Max 2011........................................................................................................266.2.2. Adobe Photoshop CS5.....................................................................................................................266.2.3. ZBrush 4R6..........................................................................................................................................276.3. Content Creation.....................................................................................................................................276.3.1. 3D Modeling........................................................................................................................................276.3.2. Mapping...............................................................................................................................................296.3.3. Texturing..............................................................................................................................................306.3.4. Main Character pipeline......................................................................................................................31

7. Implementation..............................................................................................................................................337.1. User Interface..........................................................................................................................................337.1.1. Menu....................................................................................................................................................337.1.2. Game UI...............................................................................................................................................357.2 Game Logic.............................................................................................................................................367.2.1. Story Game - Quest system.................................................................................................................367.2.2. Tidy Up – Cleaning mechanic.............................................................................................................377.2.3. Groceries – Door mechanic.................................................................................................................37

8. Testing...........................................................................................................................................................388.1. Focus Group............................................................................................................................................388.2. CPU.........................................................................................................................................................398.2.1. Improvements......................................................................................................................................408.3. Memory...................................................................................................................................................408.3.1. Improvements......................................................................................................................................41

9. Conclusions....................................................................................................................................................42

Page 3: Android educational games

1. Introduction

In this paper I will present my application along with the concepts and definitions of what defines a game as educational.

1.1. Traditional video games

Traditional video games were originally designed with the sole purpose of entertainment , providing a fun experience for the user and relaxing him during the game session. Clark Abt defines the notion of games in his book “Serious Games” as: “Reduced to its formal essence, a game is an activity among two or more independent decision-makers seeking to achieve their objectives in some limiting context. A more conventional definition would say that a game is a context with rules among adversaries trying to win objectives.” [Abt, 1970]. This definition still applies in the computer era for video games with the following addition to the definition “a mental contest, played with a computer according to certain rules for amusement, recreation, or winning a stake”, [Zyda, 2005].

In Abt’s definition there is no mention of games being “fun”, probably because “fun” is not a characteristic of a game. A different concept of games comes from [Boyle, 2013], who points out the common characteristics “as voluntary, typically enjoyable physical or mental leisure activities that tend to be set apart from real life in some way and are essentially unproductive”. Therefore, players voluntarily choose to play a game, and if the game is enjoyable to them, then the game is “fun”. Despite being considered generally unproductive, games have inarguably been known to challenge and develop the imagination and creativity of the people who play them.

As the video game industry grew larger and larger, game designers have taken interest in providing a more compound experience for the players that extends beyond “casual gameplay”. This caused games to become more diverse and lead to an increased interest in the effects of video games. It became clear that users were learning useful information and developing certain skills while playing video games.

1.2. Serious games

The concept of serious games was introduces by Clark Abt who described them as games that “have an explicit and carefully thought-out educational purpose and are not intended to be played primarily for amusement” , [Abt, 1970].

The main difference between serious games and traditional games is that serious games have a thought-out purpose, such as to provide some sort of training or to educate. Whether the game turns out to be entertaining or not, doesn’t represent a main concern of the game design. David Michael and Sande Chen wrote in their book titled “Serious Games: Games That Educate, Train, and Inform” about the nature of serious games: “That isn’t to say that the games under the serious games umbrella aren’t entertaining, enjoyable or fun. It’s just that there is another purpose, an ulterior motive in a very real sense”, [Michael & Chen, 2005].

However, serious games share a lot of characteristics with traditional games such as: they both provide an interactive environment, a set of challenges that lead to a predefined goal or end state of the game and a social component by bringing together multiple players. Serious games may lack a certain characteristic that traditional games have; “freedom”. Because of their educational purpose, serious games have to guide the players in order to reach their objective, which may limit the sense of freedom throughout the game.

When designing a serious game, along with the usual game design obstacles, a new challenge arises. The game must be able to provide the desired output in a clear manner without destroying or eclipsing other aspects of the game design. Often, game developer teams work

Page 4: Android educational games

DANĂ RĂZVAN

alongside with experts in the field of study that apply to the game objectives. “The development team is augmented with domain experts, who introduce specialized knowledge about the target domain, as well as – in the case of digital education games – pedagogues in order to establish an educational design of the game”, [Mehm, Reuter & Göbel, 2013].

Serious games are described by educational activities that simulate real world examples. The game must provide feedback for the player in order to fully unlock it’s educational purpose. Like any other game, serious games contain multimedia elements such as texts to broadcast a message to the player, or images/sounds that guide the user throughout the game.

1.3. Educational games for kids

In the past years, serious games have seen an increased interest in different domains such as education, military or medical. There are more articles and books every day about the new method of learning that is “educational games”, and more people who choose to adapt this method. Marc Prensky, among other names, is well-known for his contribution in the field of serious games. In his article “Digital Natives, Digital Immigrants”, he wrote: “Our students today are all “native speakers” of the digital language of computers, video games and the Internet” [Prensky, 2001].

Educational games are effective because of their appealing nature to kids. Dr. Douglas A. Gentile wrote: “Video games are natural teachers. Children find them highly motivating; by virtue of their interactive nature, children are actively engaged with them; they provide repeated practice; and they include rewards for skillful play”, [Gentile, 2004].

This holds true, now, more than ever when kids are born into the technology and video games era. They are exposed to smartphones, tablets, computers and notebooks , all of which support video games. Children are used to playing video games and understand the basic concepts of a game, which is an important factor in the success of a serious game because it allows a greater focus on the educational objectives. Some kids may even respond better to education through video games rather than traditional forms of education.

In addition to the learning curve, another important aspect of educational games for kids is the visual component of the game. Due to the general lack of entertainment in this genre, the graphical elements can provide a powerful incentive for children to play the entire game without getting bored. Such elements can be achieved by the use of vivid colors, cartoon-like drawings and text, by combining jokes with informative messages or animations. Kids are more likely to be absorbed by the video game if they are being “set apart from the real word”, either by graphics or by gameplay itself.

Page 5: Android educational games

Android Educational Game for Kids

2. Game objectives

2.1. General purpose

Along the years, video games have created a big impact and have managed to gather a lot of attention. Video games have become very compelling and they somehow manage to motivate people into spending endless hours playing them. Surely they must provide some sort of fundamental necessity or satisfaction, seeing how successful they have become [Becker, 2007].

“Games are so engaging precisely because they tap into some of the most effective approaches for learning. Successful games teach us to play in the manner we learn best. This is worth study.”, [Becker, 2007]. Then surely, games have the potential to become a great medium for teaching kids. They have a certain irresistibility towards them that can be taken into advantage for captivating the user.

The game I am implementing is defined mostly by the same concepts that revolve around every serious game. The main purpose of the game is to motivate kids to get involved into household chores, such as laundry or cleaning. The game will also be a tool for developing certain skills such as color and shape recognition or improving memory. It even encloses a more interactive category of games that are used in the purpose of improving already existing knowledge about a specific domain or to educate and introduce new information. The second important desired aspect is to entertain the kids. Although serious games aren’t usually designed to be entertainment oriented, I felt strongly about this aspect, because of the nature of kids.

Today’s students “don’t just accept technology; they demand it. Fun is a critical factor for them. A boring game, educational or not, will be avoided.” [Michael & Chen, 2005]

2.2. Motivating the player

“The will to learn is an intrinsic motive, one that finds both its source and its reward in its own exercise. The will to learn becomes a "problem" only under specialized circumstances like those of a school, where a curriculum is set, students are confined, and a path fixed. The problems exist not so much in learning itself, but in the fact that what the school imposes often fails to enlist the natural energies that sustain spontaneous learning.” [Bruner, 1966]

Kids can be easily distracted or bored by an activity, so in order for the game to reach the set out objectives, it must be able to provide a good measure of attractiveness for the kids to enjoy playing. Therefore the game must not be blindsided by focusing only on the educational features, and needs to incorporate certain aspects that keeps the players interest throughout the gaming experience. Providing them with a good amount of entertainment through whichever channel it can be achieved, seems like a good solution. This has been an important factor in the game design and end objectives of the project.

In order to reach a certain level of entertainment several aspects have been taken into consideration, for example “interactivity”. Kids are attracted by games that require a high interaction with them, which provides a playful experience. This can be achieved by the use of messages or events that lead players into making decisions. Although these decisions are “dictated” mostly by the game developers in order to reach the end goal of the game, they empower users and stimulate thinking and creativity.

Another type of interactivity can be achieved through feedback. Feedback can be implemented in various forms such as images, animations or sounds. If they are properly designed, feedback elements can provide a good amount of entertainment by themselves. Colorful images,

Page 6: Android educational games

DANĂ RĂZVAN

interesting animations and amusing sound effects are examples of good feedback elements. Whether or not they turn out to be a “sweet spot” for the children, they are still a key component in educational games for kids. Feedback elements provide a step by step guide that is essential within a learning application. In fact, feedback is in some degree, part of the educational objective since it provides information about the player’s progress and actions. Thus, feedback can lead to the acquirement of new information, even if the player does something wrong. Feedback also consists as a way for the game to interact back with the players.

Implementing the game for a handheld device brings a new kind of interaction to the game, with the device itself. Smartphones are able to handle a variety of gestures such as taps, swipes, pinches, drag and drop, etc, which are not available on other platforms. This gestures, by their nature, are very appealing to children and can be used as a powerful tool.

The availability of this input method for the game, comes in use as an easy fix to the problem of maintaining the player’s interest in the game. It provides a certain amount of entertainment to the experience, a much needed behavior in the serious games genre. This will be the most common method of interactivity within the game, since every action requires some kind of touch input gesture.

Beyond interactivity, there is another aspect that is very important in achieving the desired results, which is the visual aspect. The graphics of the game can add a layer of entertainment to the gameplay and have a big impact in the overall experience. It can attract the necessary attention and interest in the game. Vivid colors seem to appeal kids, so they are important to integrate into the overall aspect of the game.

2.3. Target audience

The game is intended to provide helpful content for kids of age from 6 to 8. Kids at this age are very curious and active. They are more independent than in their preschool years, and start to develop a more complex way of thinking. They already have a base foundation that they can use to correlate with, when they are learning new things.

At this age, kids are very physically active and can even be eager to help around the house. They enjoy taking in new activities and assume responsibilities. So teaching them about some of the chores around the house can have a great impact at this age, and it can help develop them into becoming more responsible.

Regarding video games, this generation of kids are born into the digital era and are “digital natives” as Marc Prensky calls them. They play any sort of video games and are especially attracted by high graphical content games. This makes educational games for kids this age a perfect tool for reinforcing their current skillset, and for teaching them new things.

2.4. Different approach

At this stage, video games are not very accepted as an educational tool, but that doesn’t mean it isn’t moving towards this goal. Game developers are starting to take on educational projects to support them as a viable teaching solution and to further explore this emerging platform. Unfortunately , some of them are discouraged from the beginning because of the challenging barriers that come along with educational games.

Henry Jenkins and Kurt Squire concluded in a survey about educational games that “it’s not that good educational games can’t exist; it’s that people making them usually don’t understand the medium.” [Jenkins & Squire, 2003]. This is true, because teachers are not experienced game designers and fail in trying to attract players. Game developers may be able to create a good game,

Page 7: Android educational games

Android Educational Game for Kids

but they will fail in providing pedagogic content in a valuable manner. This leads to a need for collaboration between game developers and education professionals [Jenkins & Squire, 2003].

These are existing issues that currently slow down the process of adapting video games for learning purposes, and affect the perception of already existing games. “Game designers, educators, and students are all intrigued by the pedagogical potential of games, and yet, for somewhat different reasons, they are skeptical that the potential has been fully realized by the products currently on the market. How do we move beyond this impasse?”, [Jenkins & Squire, 2003].

The mobile platform gaming experience is composed mostly of rather short gaming sessions. This behavior means that this platform is perfectly suited for casual games. This may explain why the targeted platform chosen for this project is that much smaller when it comes to educational games. The majority of existing games available on the Android market share the following characteristics:

They provide mostly 2D content, they are sprite oriented They attack a single educational aspect, for example Math games, Memory games,

Language learning games, etc. They use a large number of animations to interact with the user and provide

feedbackThe minority of games that also integrate 3D models or environments have limited

interactions with them. This project takes a different approach by creating a fully 3D environment and allowing

players to interact with the 3D objects in the game. The reason behind this is that kids may have little motivation of choosing an educational game over a casual and addictive one such as “Angry Birds”, which requires less effort to play, or may even feel that 2D games are “silly” after playing successful 3D games such as “Temple Run”.

The goal is to convince even kids that may not be interested at first in educational games, to play it and eventually learn something. There are other advantages to using a 3D environment; it brings much more to the game, a whole dimension in fact, and allows for more room to be explored. 3D games can also cover a lot of different genres along with the ones 2D games provide, so they allow for a more diverse gameplay.

This has allowed me to develop a mix of the serious game genre and the RPG/Adventure genre. More specific, I was able to borrow the concept that most defines an RPG game, and that is the “open world” aspect of the game. The “open world” component can help expand a game and open itself up to new ways of reaching the end goals.

It doesn’t mean that 2D educational games don’t have any advantages over 3D ones, because they do. The biggest advantage is that 2D games are easier to implement, because they use images to generate content. That means that they are also cheaper, which comes as a different advantage in the use of mobile platforms that have lower computational power. Images are also easier to work with, which means that 2D games usually contain more animations, which children find attractive and interactive.

Page 8: Android educational games

DANĂ RĂZVAN

3. Overall game description

3.1. Background

The game protagonist is the only child in a family of teachers. The action takes place inside the family’s home, a two story house.

The family members: Papa Joe – a physics teacher and a very skilled handyman. Mama Olive – a passionate teacher who specializes in botany and zoology Uncle Hodor – as an Astronomy teacher, he is always studying the mysteries of the

universe. He is Papa Joe’s brother. Grandpa Horic – he is Olive’s father, a talented doctor who also teaches biology of

the human body.

3.2. Gameplay

The game can be broken down into three layers of gameplay. The first layer describes the open world component of the game, which is named the “Story Game”. The player is placed inside a house that represents the main scene of the game. Here, the player can freely control the main character in order to explore the world. The family members are placed as NPCs around the house and the player can interact with them. When approaching a family member, the game prompts a dialog describing a quest.

The quests represent the second layer of gameplay. They are simply household chores that the user can complete. Each chore is a separate mini game, and they aim to encourage kids into helping around the house and to help develop a sense of responsibility. Each family member holds a number of quests, available one at a time. Quests between different family members are independent and can be completed in any order and at any time. After completing a quest, the player will be granted with a third layer mini game that can be played from the main menu.

The third layer focuses on a different category of mini games; they are re-playable games with a special thematic, based on which family member unlocked the certain game. Their main purpose is to teach new things from a specific field of study, or to improve already existing knowledge about the subject.

This chapter will further describe the first layer mentioned above.

3.3. Story Game

When the player starts the game for the first time, he will be greeted by a message with some initial information about the game. After closing the message, the player can explore the world by touching the GUI buttons. The player views the game through a third person camera placed above the main character. The camera placement allows the player to view a larger portion of the environment. While the main character can be rotated, the camera’s rotation is fixed and it will only move along with the character.

Page 9: Android educational games

Android Educational Game for Kids

Fig. 1. Greeting screen.

Each object has a collider component attached to it, which prevents the character to pass through it. Depending on the shape of the object, the collider is represented as a primitive shape that contains the boundaries of the object. For more complex shapes, the collider imitates the object’s shape.

Fig. 2. Table with box collider.

The player can go upstairs anytime by simply walking towards the staircase. Alternatively, he can go back downstairs by walking between the rails.

Fig. 3. Changing the floor.

Page 10: Android educational games

DANĂ RĂZVAN

The family members are spread out around the house. Each of them has their name placed above, for easier identification.

Fig. 4. Papa NPC with text.

When interacting with a NPC, a dialog will be opened displaying a message based on the state of the current quest the NPC is offering. Until a quest is accepted it is always in the “pending” state. Then the quest moves to the “accepted” state and finally, when the player completes the assignment it goes into the “finished” state.

Fig. 5. Quest messages.

When accepting a quest from someone, based on the nature of the chore, the player will have to reach a certain area of the house. This zone will be easily identified by a blue light.

Fig. 6. Quest area light.

Page 11: Android educational games

Android Educational Game for Kids

The first floor of the house is split into 7 different areas. Firstly, there is the main hallway, where the starting position is at, and connects with the living room into an open space. In the center there is a recreation room with a painting canvas. Grandpa Horic’s bedroom is downstairs, and is directly connected to his own private infirmary. The first floor also has a library with a designated study area, and a comfy reading chair. The last two areas are the kitchen, and the garage where Papa Joe spends most of his time.

Fig. 7. First Floor (1).

Fig. 8. First Floor (2).

Page 12: Android educational games

DANĂ RĂZVAN

The second floor is composed of 6 areas. There is a hallway in the middle, which connects the stair railway with the rest of the rooms. The main character’s bedroom is right across Papa Joe’s and Mama Olive’s bedroom. Mama Olive has a greenhouse on this floor, where she grows and takes care of her plants. Next to the greenhouse there is Uncle Hodor’s room, and lastly an observatory with a giant telescope to study the universe with.

Fig. 9. Second Floor (1).

Fig. 10. Second Floor (2).

Page 13: Android educational games

Android Educational Game for Kids

4. Mini Games Description

4.1. Tidy Up

Tidy Up is a mini game that teaches kids the importance of keeping a clean room. The gameplay is kept simple and is composed of different elements; a 3D environment, a 2D GUI panel, elements that the player can interact with, and elements that interact with the player’s actions.

The game guides the player in putting away the dirty clothes in laundry baskets. The clothes have different colors, and the player must separate the whites from the colors.

Fig. 11. Tidy Up - game start.

In order to put away the clothes, the player must drag and drop them over the corresponding basket in the right panel. When picking up a shirt , a corresponding texture appears under the player’s finger and moves along with it.

Fig. 12. Tidy Up - picking object.

Page 14: Android educational games

DANĂ RĂZVAN

When placing the shirt in a laundry basket, depending on whether it was the correct one or not, the player will receive feedback. If the player makes a wrong move, the shirt will be placed in the original position allowing the player to try again.

Fig. 13. Tidy Up - correct move.

Fig. 14. Tidy Up - wrong move.

When the player is done putting away the clothes, the next stage of the gameplay begins. The broom and dust pan texture is no longer “greyed out” (fig. 15) to notify the player that it can be tapped. When the user taps it, the game places a 3D broom in the center of the room (fig. 16). In order to complete the game, the player must continuously swipe the screen in both directions to clean the carpet. The broom will respond to the player’s actions and play a “dusting” animation.

Page 15: Android educational games

Android Educational Game for Kids

Fig. 15. Tidy Up - texture active.

Fig. 16. Tidy Up – broom object.

Fig. 17. Tidy Up - end game.

Page 16: Android educational games

DANĂ RĂZVAN

4.2. Order, Not Chaos

This game’s purpose is to teach kids about the importance of helping others with household chores. Papa Joe asks for help in arranging the tools in the garage back in their usual order. To correctly place the tools, the player must take into consideration their shape and size. Both the environment and the tools that the player interacts with, are 3D objects.

In the beginning of the game the player will notice that the tools are placed in a random order on a table. Next to the table there is a board with several tools already placed and with a placeholder element for each of the tools that need to be arranged.

Fig. 18. Order Not Chaos - game start.

The player must drag and drop each tool in the correct spot. When moving the finger around the screen, the selected tool will follow it. When designing a game, it is important to take into consideration how the game itself could affect the gameplay. If the player feels like the game caused him to lose, then he will often get frustrated and abandon the game.

This problem relates to the current game, as the tools on the board are placed closely together. In order to avoid the problem, two solutions were implemented. Firstly, the positions of the initial tools on the board were chosen to distance the more difficult tools that needed to be placed. The second solution, which tested to provide great results, was to make the camera zoom in on the board when picking up an object from the table.

Fig. 19. Order Not Chaos - camera zoom.

Page 17: Android educational games

Android Educational Game for Kids

The game will provide feedback with each step the player takes, notifying him if the tools is placed in the right place or not. When making a mistake, the tool will be placed back on the table allowing the player to try again.

Fig. 20. Order Not Chaos - correct move.

Fig. 21. Order Not Chaos - wrong move.

Fig. 22. Order Not Chaos - end game.

Page 18: Android educational games

DANĂ RĂZVAN

4.3. Groceries

A mini game that will teach kids how to properly put away the groceries, with each object having a special storage place. The game will also train their memory, because it requires remembering where each grocery needs to go. There are four different categories of products and four storing spaces including a refrigerator and three cupboards. The storing spaces are brighter in color to aid the player in recognizing them easier. The game combines 3D elements with 2D elements.

There are four rounds of groceries that must be stored away. The player must drag and drop each of them over the correct storing space. At the start of the game, an instructional animation is played, showing the player the possible places to store the groceries.

Fig. 23. Groceries – game start animation.

At the beginning of each round a paper bag is placed on the table and the groceries appear. Each paper bag contains four random groceries, one from each category.

Fig. 24. Groceries - product categories.

Fig. 25. Groceries - round beginning.

Page 19: Android educational games

Android Educational Game for Kids

When picking up an item from the table, the player must hover over a door in order to open it. When the door opens, the contents behind it are also displayed, which allows the player to see what can be stored inside. Because the player’s view may be obstructed by his finger, this can lead to the same problem in game design mentioned above. To avoid this problem, the player is given the freedom to tap on a door at any time and open it.

Fig. 26. Groceries – hover over door.As with all other games, the player will receive feedback for every action he takes. If the

player places a grocery into the wrong spot, it will be returned to the initial position on the table.

Fig. 27. Groceries – correct move.

Fig. 28. Groceries – wrong move.

Page 20: Android educational games

DANĂ RĂZVAN

5. The game software architecture

5.1. Android Framework

Android is an open source platform and is owned by Google. The Android operating system is based on the Linux kernel and is designed for smartphones and tablets, which are touchscreen driven. The open source nature has motivated a lot of users from the community and other developers to build new projects that add new features. Android is the most spread mobile operating system, which means it has the most sold devices, the highest number of downloaded applications, found in the “Google Play” market, and 71% of mobile developers that choose to target this platform [Vision Mobile Report, 2013]. Android offers the Android SDK for developers to easily create applications. Android is regularly updated and receiving improvements from Google. The most recent Android version released is 4.4 or “KitKat”.

5.2. Technologies used

5.2.1. Overview

This project has been developed under the Windows operating system because it provides a user friendly interface and transparency to the developer when working with external programs or libraries. The game itself is implemented in Unity3D, an award winning and complete game engine that has cross-platform support. All game scripting inside Unity3D has been done using C#.

5.2.2. Unity3D 4.3.3

Unity3D has two main components. The first component is the engine itself, which is a complete solution for integrating graphics, audio, physics, network solutions and web support. As the graphical engine for the Android platform, Unity3D uses OpenGL ES, with support for bump mapping, reflection mapping, ambient occlusion (AO), dynamic shadows and much more. The second component of Unity3D is an Editor that provides a user interface for the developer to work with. This provides a project viewer with easy access to the game assets, an Inspector that can be used to modify or set object properties or can even manipulate scripts and a Scene/Game viewport.

Unity3D comes with a variety of scripting languages that include C#, JavaScript and Boo. For scripting, Unity3D uses a customized version of the open source IDE MonoDevelop. As an alternative to the default IDE, Unity also provides support for Visual Studio to be used as the main scripting environment. In order to publish games for the Android platform, Unity3D requires the Android SDK to be installed.

5.2.3. Visual Studio 2012

Visual Studio 2012 from Microsoft, has been the chosen development environment for this project. Visual Studio includes a code editor that supports syntax highlighting and code completion using IntelliSense. It also includes a debugger that works as a source-level debugger and machine-level debugger. Visual Studio provides background compilation that checks for syntax and compilation errors as code is being written in order to provide feedback.

Page 21: Android educational games

Android Educational Game for Kids

5.3. Application Architecture

Fig. 29. Application Architecture.

Figure 29 is a representation of the overall design of the application’s architecture. The phone provides the user with the input and output. The player input is consisted by the touchscreen itself and the accelerometer sensor. The game logic then, handles the various inputs and triggers a specific action based on the input. Finally the graphical and audio content are registered and passed on to the screen or speaker to output. The graphic or audio components are not directly provided by the game logic, but they can be altered by it.

Figure 30 below, is a more in-depth look at the architecture with all the relationships.

Fig. 30. Detailed application architecture.

GameObjects - They are objects that contain different components such as meshes, colliders, scripts, etc. They are used to represent images, 3D models, animations and sounds. These are all the assets that are being used in the game.

Page 22: Android educational games

DANĂ RĂZVAN

PlayerPrefs – They are responsible for storing information that must be shared between independent components. PlayerPrefs are also used to save persistent data that needs to remain between level changes or game sessions.

Fig. 31. MVC Pattern of the architecture.

The Model - holds all game objects such as the main character and the environment objects.

The View - can be divided into two layers. The first layer is the camera inside the scene that is used to render the 3D models. The second layer is the Graphical User Interface, which holds all the buttons and images that the user interacts with. The View is used to render the Model component through Unity’s rendering engine. It can also provide extra inputs to the Controller through the GUI Layer.

The Controller - provides the input (touch gestures and accelerometer) that can manipulate the objects inside the Model component. It can also change the View by modifying the camera’s properties or by changing the GUI Layout where the player input allows, such as dialogs.

5.4. Class Diagram

Unity3D uses a component based architecture, which is intended to reduce the traditional deep game hierarchy. Every script is a component, and in order for a script to run, it must be attached to a game object. A game object can have any number of scripts attached to them. This means that ideally, the functionality of a game object is separated into individual and independent script components. It doesn’t mean that scripts can’t be aware or interact with each other if necessary. A component approach can also use the OOP paradigm in some cases, but is usually limited at two branches of inheritance, or otherwise it will lead to difficulties and lots of code changes when modifying parts of the hierarchy.

The advantages of using a component based approach is that it allows for lightweight code, where each script usually fulfills a single functionality. Another good thing about the component approach is that a lot of code can be re-used. Since every script component is independent, the main component can be modified by switching sub-components or adding new ones.

For example, in a RPG style game, a wizard can have multiple spells. Each spell will be a different script component, and if the wizard learns new spells , then it simply has a new component

Page 23: Android educational games

Android Educational Game for Kids

attached to it. This way each spell can be modified separately and no unused data will be shared between them, which avoids the problems of overhead. Scripts are not the only components that can be attached to a game object. The following figure describes the component model of the game. The grid-view model is borrowed from Mick West’s article “Evolve Your Hierarchy”.

Fig. 32. Component based architecture model of the game.

Transform component – Holds three Vector3 variables for position, rotation and scale.Script component – Each object can have multiple scripts attached to it. Scripts can access

and modify every other component attached to the game object. They can also access other scripts or components attached to a different game object.

Renderer component – Renders the object on screen. It also holds a material component for 3D models and a texture for GUI elements.

Animation component – Holds all animation clips of the game object. It also includes animation properties such as animation speed or looping mode.

Collider component – Part of the physics system in Unity, they are used to detect collisions between objects and can trigger events such as “OnCollisionEnter” and “OnCollisionExit”.

Audio component – Holds an audio clip that can be played at any time. Some objects have multiple audio components with one audio clip each.

Page 24: Android educational games

DANĂ RĂZVAN

The following diagram describes the relationship between script components from the main scene.

Fig. 33. Class diagram of main scene.

Quest – Base class that defines a quest as a collection of a title, a description, a state, and a number for easy identification.

CharacterMove – A script which applies transformations to the main character game object.

CameraPan – A script which uses the new transformation property of the main character in order to control the camera.

NPC_Behaviour – The main logic of the quest system. It uses the Quest base class to create a list of custom quests. It also handles the quest dialog and changes the quest state according to user input.

Load Quest – It loads a mini-game based on the current quest. Changing a quest’s properties in NPC_Behaviour can modify the behavior of this script.

Page 25: Android educational games

Android Educational Game for Kids

5.5. Game State Diagram.

Fig. 34. Game State Diagram.

Main Menu – This is the first state, where the player will be when starting the game. The main menu will provide the player with choices.

Main Scene – If the player chooses to go into “Story Game” mode, the Main Scene will be loaded.

Mini Games menu – If the player chooses “Mini Games”, he will be provided with a list of games.

Play MiniGame – This state can be reached through the Main Menu by selecting an unlocked game from the Mini Games menu. The games can be unlocked from the Main Scene by completing certain challenges. These challenges are a different type of mini games, and they can be played directly from the Main Scene.

Main Scene – It is represented as an open world environment where the player can control a character and explore it. Inside the main scene the player can go either to the “NPC Dialog” state or the “Play MiniGame” based on his actions.

NPC Dialog – Upon interaction with a NPC (Non Player Character), a dialog appears that offers information about the challenge. If the player declines the challenge then he will return to the Main Scene state. If the player accepts it, a trigger event is activated in the Main Scene, and he is returned to the previous state.

The player can return to the Main Menu state by pressing the physical “Back” button on the handheld device. This can be done from every mini game or from the main scene.

The player can quit the game from the Main Menu state by selecting the “Quit Game” option.

Page 26: Android educational games

DANĂ RĂZVAN

6. 3D Environment

6.1. Overview

Inside this chapter the game assets pipeline will be explained. Game assets are a vital part in the developing of a game. They are the visual representation of a game, without them a game is simply an idea. They give meaning to a game and help make sense of things, they offer depth and complexity. Good assets can take an average game concept and turn it into a captivating game, and bad assets can turn a good idea into an unbearable experience.

Along with the technological advancements in the field of computer hardware, games have become more complex and allowed for improved graphics. This lead to more freedom when modeling assets and allows for more details to be put into them, but it also means that their complexity has grown and require more effort.

The asset creation pipeline can greatly slow down the game development if it is not planned ahead of time. A certain amount of discipline and patience is required to achieve the best possible results, without having to sacrifice quality. A typical pipeline starts from a 3d modeling tool, such as 3D Studio Max, where the models are created. Afterwards, the model’s texture coordinates are generated using the same 3d software, and the textures are then created in Photoshop. In a large game, textures for a typical 3d model include a diffuse texture, a normal map and a specular map. After the model is fully textured, it goes into the 3D tool again to be animated, if it is required, and as a final step it is exported into a supported format to be used by the game engine.

6.2. Specialized software used

6.2.1. Autodesk 3D Studio Max 2011

3D Studio Max is a professional 3D computer graphics program, developed and produced by Autodesk Media and Entertainment. It can be used to create 3d models, animations, special effects and much more. It is used in a variety of domains such as the video game industry, in the movie industry or TV commercial studios and even in architectural visualization. It offers multiple modeling techniques, with “polygon modeling” being the most used in the game industry.

Polygon modeling is also the preferred technique for the creation of game assets in this project, because it allows access to individual polygons and is useful in optimizing the model’s geometry. It begins by using a primitive available in 3DS Max, and then the primitive is converted to a “Editable Poly”. This mode allows for free modifications at the sub-level of vertices, edges, polygons, border or element. It also has, depending on which sub-level is active, a set of modifiers that can be applied such as “Extrude” or “Chamfer”.

6.2.2. Adobe Photoshop CS5

Adobe Photoshop is a graphics editing program developed and produced by Adobe Systems. The software is used around the world in the video game industry for creating texture images for 3d models. It contains a large number of tools for manipulating images such as the “Pen Tool”, “Magic Wand”, “Clone Tool”, “Lasso”, “Burn Tool” and much more. The artist can also apply adjustments to the image to modify the brightness and contrast, the saturation or even the color balancing among others. There are also available effects that can simulate motion blur, the sun flares from a camera lens or that add noise to the image.

Page 27: Android educational games

Android Educational Game for Kids

6.2.3. ZBrush 4R6

Zbrush is a digital sculpting program developed by Pixologic. It combines modeling, texturing and painting. Zbrush is used for games, movies and animations. The difference between ZBrush and other 3d modeling programs is that it is more assimilated with sculpting. The main purpose of ZBrush is creating real high resolution models that the artist can detail to a very high level. Models in ZBrush can reach tens of millions of polygons, a number that causes other 3d computer graphics programs to crash.

Usually ZBrush is used for creating concept work, because the models have a very large number of polygons. The resulting model can then be “retopologized” to obtain a low polygon version. ZBrush allows for a dynamic change in levels of resolution, which provides more control when refining details for a lower density version of the model. It is often used alongside a traditional 3D computer graphics program such as 3DS Max.

6.3. Content Creation

6.3.1. 3D Modeling

The game asset creation began inside of 3DS Max, where the objects in the game environment were modeled. The main objective here was to obtain the lowest number of polygons possible, in order to achieve a good performance even on low to mid-end android devices. This paper will provide a full example of the entire process behind the creation of a television prop. The entire environment was created in a similar way.

Step 1. Creating a simple box primitive from the creation panel.

Fig. 35. Box creation (step 1).

Step 2. Converting the primitive to an Editable Poly by right clicking the object.

Fig. 36. Convert object (step 2).

Page 28: Android educational games

DANĂ RĂZVAN

Step 3. Going into the polygon sub-level mode, and selecting the front and back faces of the box. Then , in the modify tab apply the “Inset” transformation.

Fig. 37. Inset transformation (step 3).

Step 4. Deselecting the back face and applying a “Extrude” transformation to the front face.

Fig. 38. Extrude transformation (step 4).

Step 5. Selecting only the back face and applying a “Bevel” transformation.

Fig. 39. Bevel transformation (step 5).

Step 6. Going into the “Edge” sub-level and selecting the 2 bottom edges, afterwards applying a “Connect” transformation.

Fig. 40. Edge transformation (step 6).

Page 29: Android educational games

Android Educational Game for Kids

Step 7. Switching back to “Polygon” mode and selecting the bottom polygon in-between the 2 new created edges, then applying the “Extrude” transformation.

Fig. 41. Extrude transformation (step 7).

Step 8. Applying another “Extrude” transformation and resizing the polygon on the XY axis.

Fig. 42. Extrude and scale (step 8).

Step 9. Applying a final “Extrude” transformation on the same polygon.

Fig. 43. Final Extrude (step 9).

6.3.2. Mapping

After modeling the prop, the next step is generating the mapping coordinates through the process of “UVW Unwrapping”. This works similar to a two step mapping algorithm. The user selects a part of the object, through a sub-level mode that supports faces, edges and vertices, and maps it to a primitive by selecting one of the available mapping methods such as “Planar”, ”Spherical”, ”Cylindrical”, etc. The process offers a lot more options and control, like aligning and fitting the

Page 30: Android educational games

DANĂ RĂZVAN

mapping with the surface. A very powerful tool that is great when mapping organic models such as characters, is the “Pelt” tool. Before using it, the user must place seams along the edges of the surface. They act as cuts, and when applying the Pelt tool, the surface is pulled in all directions and unwrapped based on them. A visual representation of the process can be seen in figure 44.

Fig. 44. Box unwrap with seams, 2012.

For the television prop, the unwrapping was mostly done by selecting the different faces of the object and applying a Planar mapping. The reason behind the method, is that when creating the diffuse texture, the edges will be used to create the outlines of the object to achieve a “Cartoon” effect. The process was similar to the rest of the environment.

Fig. 45. Television UV’s layout.

6.3.3. Texturing

After the environment modeling is done and the UV’s are generated, the next step in the pipeline is creating the textures. The resulted UV layout is exported from 3DS Max and imported into Photoshop, where it will be used as a guide for painting the textures. Performance is an important factor for the mobile platform, so each object will only have a diffuse texture that contains color information.

Page 31: Android educational games

Android Educational Game for Kids

The exported UV layout from 3DS Max is inverted into Photoshop to achieve the black outlines of the object.

Fig. 46. Inverting the UV Layout.

Using the “Magic Wand” tool, the insides of the outlines are selected and then painted with color using the “Brush” tool.

Fig. 47. Diffuse texture of TV.

6.3.4. Main Character pipeline

The creation process for the character was more complex and it required a few extra steps. The pipeline started in ZBrush where a high resolution base mesh was created using the powerful sculpting tools. Variations and props were added to the base mesh to create different concepts for the character. Once the desired look was achieved, the model was decimated to reduce the polygon count and then exported for further optimizations in 3DS Max. Because the model was going to be animated in the final step of the pipeline, further changes were made to the topology of the model in order to achieve an animation-friendly “edge flow”.

Page 32: Android educational games

DANĂ RĂZVAN

The polygon count was further reduced by deleting edge loops that were not offering any extra details to the model. Afterwards, the model was unwrapped using the pelt tool and the resulted UV layout was exported to create the diffuse texture. The final step in this pipeline was animating the character.

The model was skinned to a biped system available in 3DS Max, where each bone was mapped to a certain part of the mesh. The biped then, was posed into multiple positions, and by interpolating the values between each pose, the animation was created. A diagram describing the process can be seen in figure 48.

Fig. 48. Character pipeline.

Page 33: Android educational games

Android Educational Game for Kids

7. Implementation

7.1. User Interface

The user interface (UI) is a very challenging and important part in game design. It is the medium that connects the player from the outside world with the game world. The user interacts with the game through the help of the user interface. In games, it is usually more complex than in other computer software. For example, games generally hide information from the player, revealing it as the game progresses. Some elements of the user interface can even be parts of the game story itself.

The following diagram shows how the user interface is used to mediate between the player and the game.

Fig. 49. UI interaction.

It is important that the user interface should follow a few guidelines: Ease of learning – Players seek challenges in games, they keep the gameplay

interesting and provide a sense of accomplishment. This is not the case with user interface design. It must be easy to learn, or even intuitive, meaning that the player can simply pick up the game and play it.

Ease of use – Using the UI must require little to no effort from the user, in order to provide a smooth gaming experience. The UI can be seen as a quick tool to trigger an action or to solve a problem.

Attractiveness – Being the layer between the game and the player, means that the UI will be visible most of the time. Therefore it needs to have a pleasant visual aspect.

Entertainment – In some cases the user interface can even add a degree of entertainment to the game. This can be achieved by the way the user interacts with the UI or by integrating animations into it.

7.1.1. Menu

The starting point of any game is the main menu. It is like a central node that connects all elements of the game. Every gaming session starts and ends with the main menu. It usually contains options for starting a game or loading from a saved state, for customizing options such as audio volume, and it can even have submenus for selecting a certain level.

It can be viewed as the package that promotes the game, since it’s the first thing the player sees. If the player is not attracted by its design, either because of the graphics or because of the layout and general sloppiness, then he may never even get past it.

Page 34: Android educational games

DANĂ RĂZVAN

Fig. 50. Main menu.The main menu is a separate scene with very few elements and a simple design. It has a

background image, three main buttons for the gameplay and two controllers for turning on/off the background music and game sounds. The buttons are centered and placed so that they don’t cover the graphics in the background, but big enough to be selected. They blend in with the rest of the image and don’t seem to just float around without purpose.

From the main menu, the player can either load the main scene with the story game, he can select a mini game that was previously unlocked, or he can quit the game. When loading the story game or a mini game, the loading screen comes up. It is a very important part of the user interface because it notifies the player about the current state of the game.

Fig. 51. Loading screen.Since every mini game is a separate scene, the gameplay requires a lot of switching

between them. When changing to another scene, all elements of that scene must be loaded into memory, and depending on the scene size it can take a few seconds. While waiting for the scene to be loaded, the last rendered frame is displayed on the screen, which can lead the player to believe that the game has frozen. This does not provide a good user experience.

The solution was to create a very light scene, which will be loaded almost instantly. This will be used as the loading screen. Every time the game needs to load a different scene, it will first bring up the loading screen, which will then load the desired scene.

Page 35: Android educational games

Android Educational Game for Kids

7.1.2. Game UI

Since the user interface is the layer between the real world and the game world, it can either be integrated in one world or both. Based on this, UI components can be classified into four categories; terminology from [Fagerholt and Lorentzon, 2009]:

Diegetic components – They are elements placed in the fictional game world, so that they not break the player from the story of the game. Because they exist in the fictional world, it means that characters in that world are aware of their existence and can even interact with them.

Non-diegetic components – They only exist outside of the game world, so they are only visible to the player.

Meta components – These components are usually part of the game world, but not necessarily physical elements inside of it. Instead, they are rendered over the game world for the player to see. For example, blood splatters over the screen when the character takes damage.

Spatial components – They exist inside the fictional world, but are not visible to the characters in the game, so they are not part of the story. They are only integrated with the world in order to provide information to the player.

This project combines multiple UI components in order to provide a certain level of attractiveness and entertainment. For example, the input controls in the story game are non-diegetic components. The character movement controls are placed in the bottom of the screen so they don’t block the view when playing, and the pause button is placed in the top left corner. They have a simple design with an intuitive texture.

Fig. 52. Story Game - UI components.

There are also spatial components inside the story game, like the text above each family member, or the glowing lights around certain objects in the scene. They exist in the game space, but are not visible to the main character and are not a part of the story. Their purpose is to provide useful information to the player with a little added pleasant visual aspect to the game.

Page 36: Android educational games

DANĂ RĂZVAN

Message boxes that are displayed throughout the game are also non diegetic components. They pop up when the game needs to provide certain information to the player. They stay on screen until the user taps the close button, or in some cases the user can navigate through a series of messages.

In the mini game “Groceries”, the user interface is hard to define. The gameplay is similar to “Order Not Chaos” where the user interacts with the objects in the 3D world, so there is no explicit user interface. But since the groceries are 2D textures, they can be considered part of the user interface, and since they also exist in the fictional world they can be labeled as diegetic components.

7.2 Game Logic

7.2.1. Story Game - Quest system

Each family member has a predefined list of quests with a title, description, state and a number. They each have a box collider attached to them that triggers an event when the main character enters in range. A script attached to each family member listens for the collision trigger event. When it is triggered, a persistent data model is accessed in order to retrieve information about the current quest. This data model is known as “PlayerPrefs” inside Unity. It resembles a global and persistent database where important information is saved. The PlayerPrefs model is used when information needs to be shared between different scenes or when it needs saving between gaming sessions. Based upon the state of the current quest, a dialog is opened with a specific message. The dialog can change the quest state, for example; when the player accepts a new challenge, the quest state becomes “active”. This change is saved in the “PlayerPrefs” model. When the player finishes a quest and returns to the respective family member, he will receive the details of the next quest from the list. The following diagram describes the components in the Quest System and how they interact.

Fig. 53. Quest System diagram.

Page 37: Android educational games

Android Educational Game for Kids

7.2.2. Tidy Up – Cleaning mechanic

A script is set to detect touch inputs from the user. There are several states a touch can have; began, moved, stationary, ended and canceled. When a touch began is detected, the script records the system time and the position on the screen. Then, when it goes into the moved state, the direction of the swipe is calculated. If the direction of the current touch changes, or if the player ends the input, the swipe needs to be validated. If the duration of the swipe is less than a previously defined constant, and the length larger than a certain threshold, then the swipe is taken into consideration. Every registered swipe decrements the “Blend” variable, and calls the broom animation to be played.

The carpet has a “Blending” shader attached to it. This shader uses two textures, and blends them together, the first texture being used to make the carpet look dirty. With every swipe the blend value in the shader is changed with the “Blend” variable until the second texture, with the clean carpet, takes over. The following diagram describes the components in the Cleaning mechanic and how they interact.

Fig. 54. Cleaning mechanic diagram.

7.2.3. Groceries – Door mechanic

The environment is imported as a single object, with multiple animations with different timelines. This means that one animation starts at the end time of another animation. By separating the animations, the doors can be opened individually. To identify which door needs to be opened when a certain touch event is recorded, four box colliders were placed around each door.

The doors can be opened only when the player taps on them, or when the position of the finger is over a door, and the state of the touch is “Stationary”; this means that the player has dragged a grocery over it. In order to detect when the position of the finger is over a door, the camera sends out a ray from the screen position into the world. If the ray hits a door, then the opening animation is played. Behind each door there are two groceries from a certain category.

Because the groceries are 2D images, they are rendered on top of the 3D objects. This means that they are hidden from the player until the door is opened by a certain amount. The current time of the animation is compared to a certain threshold, and only then the groceries are

Page 38: Android educational games

DANĂ RĂZVAN

enabled. When opening a door with a tap, the door is automatically closed. When hovering over a door with a grocery, the door is closed after the finger is no longer over it. The groceries are also disabled after the closing animation reaches a certain threshold in time. The following diagram describes the components in the Door mechanic and how they interact.

Fig. 55. Door mechanic diagram.

8. Testing

8.1. Focus Group

The game has been tested by a small focus group of 6 participants to help assess the current development of the game. They were given a questionnaire in order to provide feedback about the game. Each question has a grade between 1 and 5.

Table 1Focus Group results

Question Average score Lowest score Highest scoreHow easy are the game controls to

learn/use?5 4 5

How attractive is the overall visualaspect of the game?

4 3 5

Does the game provideeducational information?

4.5 4 5

How entertaining is the gameplay? 3.5 3 4Would you play the game again? 4 3 5

Giving the fact that this is an evaluation of an educational game, this project aimed for a high score in the educational information quality. The focus has been directed towards that section in particular, because providing educational information is the main purpose of the game. The Focus

Page 39: Android educational games

Android Educational Game for Kids

Group questionnaire plays an important role because it answers questions regarding five key elements in game playing. It’s important because analyzing the results reveals what improvements need to be added to the game. To have relevant score results, the group that participated was formed by kids with ages between six and eight years old supervised by a parent.

One of the most important factors in a game is the use of the game controls. The way the controls function can make a big difference between a good game or a bad one, because they condition the experience the player has. They can either facilitate the work, or make it hard. A game can offer a great experience through the use of the controls by simply being responsive and having the appropriate reaction in the game. They also have to be consistent, adoptable and progressive. Without all of these important factors, the experience of a game can be frustrating. From a 1 to 5 scale, this project recorded high results, meaning the players were satisfied with the game controls.

When developing a game, there are many other factors to consider, besides the controls. There is the importance of the visual aspect that can have a positive effect. According to “Increasing Speed of Processing With Action Video Games” [ Dye, Green & Bavelier, 2009 ], which analyzes the differences between people who often play video games and those who barely play, it can speed people’s ability to process and use visual information. The graphic of this project is based on the use of vivid colors to stimulate the speed visual search, improve object recognition and to create a moody experience to evoke emotion. The results of the Focus Group show that improving the visual aspect of the game, would also improve the experience of the player.

The lowest score was registered by the entertainment factor of the game. This was an expected result for this type of game. However the score itself is surprisingly good, and further improvements can be made in this area with little effort. Improving other factors of the game such as the visual aspect can also help.

8.2. CPU

The following results have been collected using the Unity Profiler, which is a powerful tool for gathering in depth statistics about CPU consumption, memory leaks and much more. The profiler reports in real time, while the game is played on the mobile device. The tests were conducted on a minimum required hardware device with a single-core Cortex A5 CPU at 800MHz and 512MB RAM.

The most expensive part of the game is the main scene, because it has the most 3D geometry and textures. The main character is a “Skinned Mesh”, and it creates a bigger toll on the CPU than static meshes, like the environment.

Fig. 56. CPU usage - Main scene.

The above graph shows that the average FPS of the game is between the 60FPS mark, with a 16ms total time for rendering one frame, and 30FPS with 33ms. An estimated figure would place the average FPS at 45 with a 20ms rendering time. The most CPU intensive component is the rendering itself. A more detailed description of the CPU consumption can be seen in figure 57.

Page 40: Android educational games

DANĂ RĂZVAN

Fig. 57. CPU overview – Main scene.

The overhead is mostly caused by the profiler itself, because of the “Deep Profiling” option which means that the entire script code is verified, and each function call is recorded. The second most expensive component is the skinned mesh with 7.3% CPU usage. This is because the mesh contains bones that affect a certain part of the body, and since the character is animated through the entire gameplay, it requires more complex calculations.

The mini games reach a considerably higher amount of FPS. They stay mostly at the 60FPS mark with an average of 9ms rendering time per frame. This is because the scenes are less complex, with fewer 3D objects and a more reduced polygon count overall.

Fig. 58. CPU usage – Mini games.

8.2.1. Improvements

The graphs report various spikes during the gameplay, which are caused by a frame rate drop. The frame rate drop is much more problematic in the main scene, because of the higher polygon count and the skinned mesh. In order to improve the overall FPS of the game, some objects need to be remodeled with a lower geometry. This will lead to a smaller time spent on rendering each frame and will increase the FPS.

8.3. Memory

Memory usage is important for any mobile application, and games are no exception. Bad memory management can further decrease the performance of the game. The main scene is analyzed here because it is the most complex.

Fig. 59. Memory usage – Main scene.

Page 41: Android educational games

Android Educational Game for Kids

The above graph shows that the total memory usage is constant throughout the gameplay. The usage is set at a total of 24.8MB, which is a bit high for mobile platforms. It also shows that there are 51 meshes in the scene, 79 materials and a total of 2700 objects. A more detailed description can be seen in figure 60.

Fig. 60. Memory overview – Main scene.

The high number of textures is present because each object has a separate texture. However, they have been compressed and are low resolution, not exceeding 256 x 256, so they use 3.9 MB of the total memory usage. The meshes also use a fair amount of memory, a total of 2.7MB. However, having a separate texture for each object implies that each object has its own material also. A large number of materials leads to an increase number of draw calls that are basically requests to the CPU/GPU for rendering something.

Fig. 61. Rendering statistics – Main scene.

The number of draw calls for the main scene is rather high and this can reduce CPU time and decrease the overall performance. This is the most important aspect that needs to be improved.

8.3.1. Improvements

The biggest performance hit is caused by the high number of textures and materials. This leads to an increase in memory usage and in draw calls that reduce CPU time. Since the main scene and all mini games share some part of the environment, they can all be improved together. This can be achieved by creating a single texture for the environment, called an “atlas texture”. An atlas texture is used to combine multiple sub-images into one larger image.

The environment must be remapped so all the objects share the same texture coordinate space. Then, the textures must be combined into a single image. This means that the entire environment will only need one material and only one texture.

Some objects use more complex shaders, which can also increase the number of draw calls. Some shaders require two or more draw calls per frame. Keeping the number of complex

Page 42: Android educational games

DANĂ RĂZVAN

shaders to a minimum or replacing them with a much simpler shader will also improve the game performance.

9. Conclusions

This project aims to contribute to the emerging domain of educational video games with a different approach. Kids spend more time playing video games than watching TV, so there is a lot of potential in using them as an educational medium. The purpose is to blur the line between educational games and commercial video games in terms of entertainment. There are numerous elements that can be brought into this domain from traditional video games. Most educational games seem more like infomercials or are just too plain and simple, and are not motivating enough. This doesn’t mean that the educational objective is going to be less effective. The idea is to improve and recondition the transmission channel, not the message.

Educational games can become more attractive by simply creating an immersive environment, or by involving the player in the story that drives the gameplay. This will of course require more effort and teachers and designers would have to work together, but every other traditional medium used in education is at least as challenging.

The project will continue to be developed and improved in the hope that it will provide a different view on educational games.

Page 43: Android educational games

Android Educational Game for Kids

R E F E R E N C E S

[1] C. Abt, “Serious Games”, 1970.[2] M. Zyda, "From Visual Simulation to Virtual Reality to Games", vol. 38, Sept. 2005.[3] E. Boyle, “Psychological Aspects of Serious Games”, in Psychology, Pedagogy, and Assessment in Serious

Games, Nov. 2013, pp. 1-18.[4] D. Michael and S. Chen, “Serious Games: Games That Educate, Train, and Inform”, Thomson Course

Tehnology, 2005.[5] F. Mehm, C. Reuter and S. Göbel, “Authoring of Serious Games for Education" in Serious Games and Virtual

Worlds in Education, Professional Development, and Healthcare, 2013, pp.60-73.[6] M. Prensky, “Digital Natives, Digital Immigrants”, MCB University Press, vol. 9, no. 5, Oct. 2001.[7] D. A. Gentile, "The effects of video games on children: what parents need to know", Pediatrics for Parents,

2004, vol. 21, no. 6.[8] K. Becker, “Pedagogy in Commercial Video Games”, 2007.[9] J. S. Bruner, "Toward a Theory of Instruction", 1966.[10] H. Jenkins and K. Squire, "Harnessing the Power of Games in Education", vol. 3, 2003.[11] M. West, “Evolve Your Hierarchy” , Jan. 5 2007.[12] B. Tate, Box unwrap with seams (photograph), 2012, June 20, 2014 from http://cgi.tutsplus.com/tutorials/an-introduction-to-uvmapping-in-3d-studio-max-using-the-unwrap-

uvw-modifier--cg-13780.[13] E. Fagerholt and M. Lorentzon, “Beyond the HUD User Interfaces for Increased Player Immersion in FPS

Games”, Master of Science Thesis, 2009.[13] M. W.G. Dye, C. S. Green, D. Bavelier, “Increasing Speed of Processing With Action Video Games”, 2009.[14] M. Cruz-Cunha, “Serious Games as Educational, Business and Research Tools”, IGI Global, Feb. 2012.[15] K. Bredl and W. Bösche, “Serious Games and Virtual Worlds in Education, Professional Development, and

Healthcare”, IGI Global, March 2013.[16] B. Brathwaite, I. Schreiber, “Challenges for Game Designers”, Course Technology PTR, Aug. 2008.