Professional Documents
Culture Documents
A Thesis
Presented to the Faculty of
Information and Communications Technology Program
STI College Marikina
In Partial Fulfilment
of the Requirements for the Degree
Bachelor of Science in Information Technology
Raysoli M. Macakiling
Ian T. Oladive
December 2020
This project development would not be possible without the help and support of these
people, especially the thesis adviser, Mr. Dave Lord M. Rubaya; thesis coordinator, Mr.
Frederic D. Yulo, MIM; and proofreader, Ms. Gem Darlah M. Alcarado, LPT for their
guidance, effort, never-ending patience, understanding and encouragement during the
project development.
The proponents mostly appreciated their family for their unconditional love, financial
support, and sacrifices to make this project happen. To friends and classmates for
helping, prayers, moral support, and giving them inspiration. In addition, the
proponents would like to thank the professors who helped, share their knowledge, and
give advices about the project development. Moreover, the proponents would like to
express their sincerest gratitude to each other for not giving up this project
development.
Last but not the least, to the Almighty God, for giving them strength, countless
blessings, hope and knowledge to finish this project.
A.I(Alien Invasion) Guard is a tower defense game where the player must erect
defensive structures such as towers, turrets, and other available structure against
incoming forces that has the goal to get to the other side and survive each level to finish
the game. This study aims to develop an offline action game that will let the users play
anytime without using internet connection. The goal of this study is to help users
improve critical thinking, strategic coordination, and situational awareness. A.I(Alien
Invasion) Guard is a three-dimensional (3D) offline game since it does not require
frequent update, heavy graphics, high Random Access Memory (RAM) and large
amount of memory. It features five stages, which the player must finish the previous
stage to unlock another stage. The game has a instruction module where it explains how
to play. The proponents conducted a survey and it shows that the system is useful.
Page
Title Page i
Endorsement Form for Proposal Defense ii
Approval Sheet iii
Acknowledgements iv
Abstract v
Table of Contents vi
List of Tables vii
List of Figures viii
List of Appendices ix
Introduction 1
Background of the problem 2
Overview of the current state of technology 3
Objectives of the study 4
Scope and limitations of the study 6
Literature Review 7
Review of related literature, studies or systems 7
Synthesis 15
A.I(Alien Invasion) Guard 16
Results and Discussions 32-51
Conclusions and Recommendations 52
References 53
Appendices 56
Table Page
1 System Requirements 12
2.1-2.10 Tables of Pre-survey 32-42
3.1-3.10 Tables of UAT 43-50
Figure Page
1.1-1.18 System Design 13-23
2.1-2.3 Storyboard 24-26
3 Methodology of the Study 27
4.1-4.4 Hierarchical Input Process Output 29
5.1-5.2 Flowchart 30
6 Entity Relationship Diagram 31
7.1-7.10 Charts of Pre-survey 32-42
8.1-8.10 Pie charts of UAT 43-51
9.1-9.5 Online Survey for 10 years old and above 67-71
10.1-10.3 Online UAT for 10 years old and above 72-74
Appendix Page
A. Gantt chart of activities 49-50
B. User’s Manual 67-73
C. User Acceptance Testing and Pre-Survey 80-90
D. Curriculum Vitae of Researchers 91-93
E. Source Code 94-97
The leading operating system today for smartphones is the Android Operating System.
They have been the best-selling OS worldwide on smartphone since 2011 and on tablets
since 2013. Most gaming phones is run by Android. It is an open-source operating
system specifically designed for smartphones and tablets. It delivers a complete set of
software for mobile devices by acting as a middleware and accommodating key mobile
applications.
Android games are popular today and can rival computer games in terms of its
playability. As the games are portable and can be played as the smartphone meets the
minimum requirement for the game, users can enjoy it anywhere. There are many types
of games, such as role-playing, arcade, educational, and tower defense games. This type
of games can be played both on offline and online. Mostly, offline games rely on
reliability for having no server shut down while online games are fun because of the
interaction with other players.
The proponents considered A.I(Alien Invasion) Guard as the proposed system. There
are many tower defense game in the market already. The proponents will develop an
offline tower defense game that the target users with at least 10 years old can play
anytime without the use of internet connection. The proponents considered creating the
game using Unity using 3d models and game objects and intended for smartphones with
the Android OS.
General Objective
The proponents need to design and develop a game application intended for Android
Operating System using Unity platform that is intended for at least 10 years old which
they can play anytime without the use of internet connection.
The game should consist of five levels with each level increasing difficulty. This is
to challenge the player and to give a sense of achievement after completing the
game.
2. How to design and develop a module for optional adjust or an option module?
3. How to design and develop a generated pathway for the waves of enemies in
the game?
The game should follow the intended path during playtime and does not wonder of
to other places unless intended by the proponents.
4. How to design and develop a function that will allow the user to build defensive
turrets to use during playtime?
The game should only allow the user to place defensive turrets at the intended places
by the proponents.
5. How to design and develop a function that will allow the user to upgrade or sell
his defensive turrets in-game?
The user should be allowed to upgrade or sell his/her defensive turrets during
playtime to help him/her clear the level.
There are little numbers of tower defense games that will generate different in game
currency to use in the game. The proponents considered putting this in the system to
add a new feature.
7. How to design and develop a function that will save and load the player’s status
in-game automatically?
The user will want to save the game’s progress in case of quitting the game and
continuing it later.
A lot of action game can be played online or offline on Android. The proposed system
“A.I(Alien Invasion) Guard” has same game mechanics with Global Defense: Zombie
A.I(Alien Invasion) Guard is tower defense game. The player needs to defend the stage
by surviving the waves of enemies that are being sent to the goal. The player can buy
turrets that from the shop panel to defend from the waves. The player can upgrade the
tower to fight fast and sturdy waves. Once the enemies reach the end point, a life will
be deducted to the player until all life is lost, thus the player loses. The player can pause
and continue the game.
General Objective
This section includes description of the general and specific objectives of the study. The
objective of the study is to design and develop A.I(Alien Invasion) Guard for Android
operating system users using Unity as a platform and using 3d game objects for the
game. The proponents created a tower defense game for at least 10 years old where the
user can play it anytime without the use of internet connection.
Specific Objectives
• To design and develop a module that features different stages for five levels
The proponents designed and developed a game that has five different levels. The
players can proceed to another level when the previous level is accomplished. The
players can enjoy different stages to give a sense of achievement after completing the
game.
The proponents designed and developed a module that has an optional adjustments or
an option module with a list of credits of the game.
The proponents designed and developed a generated pathway for the waves to follow.
This ensures the user that enemies will proceed according to the path laid in the game.
• To design and develop a function that will allow the user to build defensive
turrets to use during playtime
The proponents developed a game node where the defensive turrets can be built for
the player to use in defending against the enemy.
• To design and develop a function that will allow the user to upgrade or sell
his/her defensive turrets in-game
The proponents developed a feature where the placed defensive turrets can be clicked
and options to upgrade or sell the turret is possible.
The proponents designed and developed an in-game currency for the user to use in
upgrading the turrets.
• To design and develop a funtion that will save and load the player’s status in-
game automatically
The proponents designed and developed a game that will save the progress of the user
in the game.
Scope
1. Main Menu
This is the main interface of the game. It will include the title of the game, play, options,
and exit.
• Play Button
It allows the user to play and select the kind of game modes to begin with. There are
four kind of buttons in this form.
o Select Level – This button will show the player, how many levels need
to play to finish the game.
o Record – This button shows the tower appearance and its description.
o Instruction – This button tells the player how to play the game and what
are the function of each buttons.
2. Option
This allows the user to edit the effects volume and background music of the game.
a. Sound Level – This menu lets the user adjust what they hear from the
characters and the actions happening in the game.
The game does not sell any real life purchases to help you progress in the game.
The purpose of this chapter placed the current study into the context of previous and
related research. As such, the review system emphasizes the relatedness between the
current system and the work of other.
Local Literature
According to the Ebrennan (2012), the objective of the game is simple, and the concept
is not particularly innovative. Basically, it is your job to defend some unmanned
kingdom from wolves, orcs, gargoyles, bandits, trolls, yetis, and many more enemies
by building four types of defense – barracks, archer towers, mages, and bombards. Each
structure has its own pros and cons, including price, damage, and range. Enemies arrive
in waves, and as you kill enemies, you gain more gold and can upgrade your towers.
The games narrative is a shallow, but the Lord of the Ring’s similarities are obvious
enough that the gamer can feel in the holes and naturally starts to invest more in the
story than the action that it gives you. There are a few sentences before every advance
on the map too. The story begins with you defending the port from highwaymen and
eventually progresses to full-out war, which puts you deeper in the map with more
defense options and way more enemies.
According to Mark (2010), Tower Defense, is a game system which, like all great game
systems, is simple to learn but hard to master. Almost without exception, it involves a
horde of lumbering creatures who enter from one location and are trying to make a trip
to the opposite side of your screen. If enough of them are successful, you lose the game.
To thwart their plans, you build “towers” to block their paths as best you can. The
towers do not just get in their way, however; they shoot, pummel or otherwise attack
the passing creeps. If you are quick on your feet and a bit of a strategist, you can prevent
the oncoming hordes from successfully making it from point A to point B. And that is
what it is all about.
Despite what everyone thought at the time, Tower Defense games did not start with
Warcraft III. In fact, Wikipedia says we were playing Tower Defense back in 1990 with
Atari’s arcade game “Rampart”. The genre really came into gamers’ awareness when
According to the article “the gamification of education why playing the future of
learning” by Michael Logarta (2014) students can benefit more in gamification if
education rather than using traditional way of educating students. Gamification means
using game mechanics to make teaching more interesting, motivation, casual and fun
for students. So instead of restricting them from playing games, why not use certain
games that can increase their knowledge, memorization and skills. Also, if lessons are
given in a game-like manner, students would tend to remember it more of them lectures
that are stated in a news-like manner.
According to the article of TJD of GMA News (2014), game development in the
Philippines that it has a lot of potential in generating jobs because right now, we have
few professionals related to gaming and information. This is in comparison to the other
competitors in other countries such in China, Singapore, Malaysia and Vietnam as
started also by an executive in Vietnam who said they had 10,000 game development
starts at school or earlier if possible so that companies that develop games could hire
highly skilled teams for the job.
According to Majgaard (2015), what makes the computer game Plants vs. Zombies
engaging and a successful learning machine? In the game, vegetables and flowers defeat
zombies by shooting peas, coconuts, and watermelons, and delaying the zombies by
feeding them walnuts. The game is a classic strategic tower defense game in a
vegetarian game universe. The game provides a unique example of seamlessly blending
the tutorial into the gameplay. This article analyses the game in order to identify
engaging elements that can be used in the design of serious games. Empowerment and
well-ordered problems were key elements found in the analysis of the gameplay in
Plants vs. Zombies. Empowerment can be split into active participation, meaningful
feedback, co-design, identity, and identification. The second key element, i.e., well-
ordered problems, can be divided into pleasantly frustrating, cycles of expertise,
strategies to achieve goals, and stripped-down version. Meaningful and engaging
gameplay makes the player invests a lot of time in playing and can trigger deep learning.
A first-hand experience of playing computer games gives valuable input for designing
serious games. The first-hand experiences are also valuable in the classroom when
relating game design theory to real-life experiences.
According to Andrei Dobra (2016), Plants vs. Zombies delighted millions of tower
defense many years ago when it appeared from PC and then be spread to many
platforms including consoles and mobile devices.
PopCap has released in 2013 the Plants vs. Zombies Adventures (abbreviated as PvZA).
The game had three modes: a town-building mode where players could build up their
town by buying buildings and decorations and planting plants, and a Road Trip mode
where players defended their vehicles from incoming zombies with plants harvested
from the town. The players could also play Brainball mode, they invaded other players'
town to get brains, and the five players with most brains in the leaderboard could get
gems. On July 14, 2014, a message appeared to all players that the game would close
on October 12, 2014. This is the first Plants vs. Zombies game to shut down.
According to Lee (2013), Colosseum Defense is a defense game in which players press
to shoot the incoming waves of enemies that threaten the castle. Up to three unique
weapons can be equipped at one time and players can select which weapon abilities
best fit their play style. When the incoming waves become too difficult to manage,
powerful Magic can be used to stun and damage all enemies on the field. Featuring an
adaptive game interface, players can control how their game looks by advancing
through the levels, upgrading the Castle, unlocking powerful weapons, and changing
their avatar.
“We are excited to launch Colosseum Defense to Google Play,” stated Kyu Lee, VP
and Head of GAMEVIL USA, “The game offers a more casual game with clear game
progression that will have players engaged for hours."
According to Sholtz (2019), Defense Zone 3 HD is one of the more pragmatic tower
defense games on the Play Store, thanks to its realistic settings and weapons. There are
four separate difficulty levels on offer, which makes this a solid choice no matter your
skill level, and thanks to the inclusion of eight different kinds of turrets, you'll never
run out of options to take down your foes. This setup also allows for many different
tactical strategies when playing, making it interesting for players who are tired of
typical linear tower linear defense games.
According to Gabinete (2015), Clash of Clans is an addictive game where players build
a base, protect it, train troops and attack others. It is the hit army strategy game where
players raise their own army of barbarians, archers, hog riders, wizards, dragons and
other mighty fighters. it is a strategy game where players can construct and expand
one's village, unlock successively more powerful warriors and defenses, raid and
pillage resources from other villages, create and join clans and much, much more.
On the contrary, this game creates some hindrances and such distractions towards the
studies of many students. It decreases their time to study their lessons. In addition,
sometimesthey could no longer eat and sleep on time the way they used to before.
This research report provides an overview of how clash of clans affects the
performance of the CED students at Western Philippines University.
According to the study of Detablan (2016) entitled Mixed Up E-Games, the project has
different categories: different shape, math games, coloring games, typing games and
more. By creating various games that are fun yet educational, kids can learn skills like
problem-solving boosting creativity so they will have advance learning before they go
to school. Parents also benefit from it since they do not have to persuade their children
to learn new things. By letting the kids pay educational games, they will be able to
acquire new skills or improve what they already have.
According to Kong (2016) the game “The Leaning Tower of Pizza” is a tower defense
game where the players could enter each unit and attack all the enemies. Every wave
increases the level of difficulty and with each accomplished wave has an equivalent
reward such as golds that can be used to for upgrades, ability to add more tower or units
and more. The creator team shared the challenges they have encountered while doing
this project. According to them, working with a technology that they are not very much
familiar somehow gave them a slow start but by thorough research and advice from the
FEU Tech faculty, they were able to easily cope up with the problem. They did not have
issues with time as they had planned tasks. Their passion had kept them alive and
motivated to finishing the project.
According to De Vera (2016), this is not the same Plants vs. Zombies tower defense
game you used to play in between classes. This PVZ plays more like a kid-friendly
version of Call of Duty but with an anthpormorphic corn that shoots kernel and a
zombie piloting a mech. In multiplayer mode, the tables are turned, and you play team
zombie as they try to defend themselves from an attack by team plants.
Foreign Studies
According to the study of Romwell (2011), adaptive algorithms give away to solve a
problem through successive attempts, without needing much information about the
solution that the purpose of the tower defense games is to place towers that will kill
enemies before they can reach the end of the fixed path. Using adaptive algorithms for
a tower defense game allows the AI to not require any information about the types of
towers and the layout of the path. This paper discusses a simplified algorithm to this
According to Sutoyo (2015), when we play tower defense game, generally we repeat
the same stages several times with the same enemies. Moreover, when the players play
a stage that is ridiculously hard or way too easy, they would probably quit the game
because it is moderately frustrating or boring. The purpose of this research is to create
a game that can adapt to the players’ ability, so the difficulty of the game becomes
dynamic. In other words, the game will have different difficulties of levels according
to the players’ ability. High difficulty levels will be set if the players use good strategy
and low difficulty levels will be set if the players use bad strategy. In this work, we
determine the difficulties based on players’ lives, enemies’ health, and passive skills
(skill points) that are chosen by the player. With three of these factors, players will have
varied experience of playing tower defense because different combination will give
different results to the system and difficulties of the games will be different for each
gameplay. The result of this research is a dynamic difficulty tower defense game,
dynamic difficulty adjustment (DDA) document, and gameplay outputs for best,
average, and worst strategy cases.
Synthesis
A.I(Alien Invasion) Guard was developed but do not intended to plagiarize any of the
related studies and literature. The game is based on the proponent’s own imagination,
the gameplay concept was inspired by Space Impact. A.I(Alien Invasion) Guard is a
tower defense game built for Android operating system. The players must survive the
waves of enemies to finish the game.
A.I(Alien Invasion) Guard: a Tower Defense Game is a system that the proponents
created to help the 10 years old target users to improve critical thinking, and relax while
taking a break from studying. The name “A.I(Alien Invasion) Guard” came from
Mobile Legends hero’s skin named Kimmy. “A.I(Alien Invasion) Guard” is a three-
dimensional tower defense game for Android where the player must survive the waves
and kill the enemies with defensive turrets to finish the game. The proponents created
A.I(Alien Invasion) Guard for the players that do like complicated strategy games. This
also improves critical thinking and situational awareness which are used in a variety of
daily skills. The proponents created A.I(Alien Invasion) Guard as an offline game and
three-dimensional game since it does not require large space on the memory.
Operating System: Android 4.4 Jellybean Operating System: Android 8.1.0 Oreo
API18 API27
Storage: 50 MB Storage: 50 MB
RAM: 2 GB RAM: 2 GB
Unity engine
Software prototyping model works best in scenarios where the project's requirement
are not known. It is an iterative, trial, and error method, which take place between the
developer and the client.
The proponents decided to use the Prototyping Model because the testing and
modifying of the project is necessary until the system achieved the objectives of the
study.
Step 1: Requirements gathering and analysis
A prototyping model starts with requirement analysis. In this phase, the requirements
of the system are defined in detail. During the process, the users of the system are
interviewed to know what the expectation from the system is.
The programmer gathered information how to use Unity game engine, Microsoft Visual
Studio to design and develop the system. Adobe Photoshop CS6 and Paint Tool SAI
for the character and the background of the game. Beep Box and Free sound for the
music.
During this phase, the proponents added and changed some objectives of the system
that the thesis adviser suggested.
During this phase, the proponents asked some classmates to test the system and give
suggestions for the game.
This phase will not over until all the requirements specified by the user are met. Once
the user is satisfied with the developed prototype, a final system is developed based on
the approved final prototype.
The proponents test and modify the system until the objectives of the study was
achieved. Since the system does not have specific audience, the proponents based on
classmates’ satisfaction.
During this phase, the proponents are able to publish the game. The proponents believe
that the system is fully functional.
Pre-Survey
The proponents conducted an online Pre-survey to the target users. Each tables shows
the computation for the results of each questions.
1.) What is your gender?
a) Male
b) Female
The graph and table above show that the respondents answered Male are 26 and Female
are 14.
10 – 12 13 – 15 16 – 18 19 yrs. Old
Total
yrs. Old yrs. Old yrs. Old and Above
1 4 15 20 40
The graph and table above show that the respondents answered 1 for 10 – 12 yrs. Old,
4 for 13 – 15 yrs. Old, 15 for 16 – 18 yrs. Old, and 20 for 19 yrs. Old and Above
respectively.
Yes No Total
39 1 40
Table 2.3. Question #3
The graph and the table show that the respondents answered Yes are 29 and No are 1.
4. How much time do you usually spend playing mobile games a day?
a) 1-2 hours
b) 2-3 hours
c) 5 hours and Above
The graph and table above show that the respondents answered 1-2 hours are 9, 2-3
hours are 9 and 5 hours and above are 22.
The graph and table above show that the respondents answered Puzzle are 4, Action are
7, Casual are 11, and Strategy are 18.
The graph and table show that the respondents answered Online are 22 and Offline are
18.
Single Multiple
Total
Player Player
22 18 40
The graph and table above show that the respondents answered Single Player are 22
and Multiple Player 18.
The graph and table above show that the respondents answered Storyline are 9, Game
Style are 17, and Graphics are 14.
I follow
I will play
It challenges mainstream
anything when Total
my mind games
I am bored
11 23 6 40
The graph and table above show that the respondents answered Mobile Legends are 5,
Subway Surf are 7, Wild Rift are 12, Clash Royal are 6, and Others are 10.
Design:
Readability (proper font size, font style, color scheme)
5 4 3 2 1 Total Weighted Interpretation
Outstanding Good Satisfactory Poor Unsatisfactory Mean
7 33 10 0 0 50 3.94 Good
Table 3.1. Readability
The table and pie chart above shows that the Readability of the design is 14%
Outstanding, 66% Good, 14% Satisfactory, 0% Poor, and 0% Unsatisfactory. The result
is 66%, interpreted as Good, and weighted mean is 4.36.
The table and pie chart shows that the Formality of the design is 22% Outstanding, 50%
Good, 28% Satisfactory, 0% Poor, and 0% Unsatisfactory. The result is 50%,
interpreted as Good, and weighted mean 3.94.
Accuracy (modules/components)
The table and pie chart shows that the Accuracy of the design is 14% Outstanding, 46%
Good, 40% Satisfactory, 0% Poor, and 0% Unsatisfactory. The result is 46%,
interpreted as Good, and weighted mean is 3.74.
User Friendly
5 4 3 2 1 Total Weighted Interpretation
Outstanding Good Satisfactory Poor Unsatisfactory Mean
11 28 11 0 0 50 3.96 Good
Table 3.4. User Friendly
The table and pie chart above shows that the User Friendliness of the design is 22%
Outstanding, 56% Good, 22% Satisfactory, 0% Poor, and 0% Unsatisfactory. The result
is 56%, interpreted as Good, and weighted mean is 3.96.
The table and pie chart above shows that the Speed Response of the design is 16%
Outstanding, 44% Good, 40% Satisfactory, 0% Poor, and 0% Unsatisfactory. The result
is 44%, interpreted as Good, and weighted mean is 3.76.
Usefulness
The table and pie chart above shows that the Usefulness of the system is 10%
Outstanding, 46% Good, 44% Satisfactory, 0% Poor, and 0% Unsatisfactory. The result
is 46%, interpreted as Satisfactory, and weighted mean is 3.66.
The table and pie chart above shows that the Performance of the System is 10%
Outstanding, 60% Good, 30% Satisfactory, 0% Poor, and 0% Unsatisfactory. The result
is 60%, interpreted as Good, and weighted mean is 3.8.
System Validation:
Error handling
5 4 3 2 1 Total Weighted Interpretation
Outstanding Good Satisfactory Poor Unsatisfactory Mean
7 22 21 0 0 50 3.72 Good
Table 3.8. Error handling
The table and pie chart above shows that the Error Handling of the system is 14%
Outstanding, 44% Good, 42% Satisfactory, 0% Poor, and 0% Unsatisfactory. The result
is 44%, interpreted as Good, and weighted mean is 3.72.
Correctness
The table and pie chart above shows that the Correctness of the system is 6%
Outstanding, 58% Good, 36% Satisfactory, 0% Poor, and 0% Unsatisfactory. The result
is 58%, interpreted as Satisfactory, and weighted mean is 3.7.
Reliability
5 4 3 2 1 Total Weighted Interpretation
Outstanding Good Satisfactory Poor Unsatisfactory Mean
6 27 17 0 0 50 3.78 Good
Table 3.10. Reliability
The table and pie chart above shows that the Usefulness of the design is 12%
Outstanding, 54% Good, 34% Satisfactory, 0% Poor, and 0% Unsatisfactory. The result
is 54% interpreted as Good, and weighted mean is 3.78.
Conclusion
The proponents conducted a Pre-survey and a User Acceptance Testing to know how
relevant their system is to the target users. The results shown in the tables and pie chart
shows that the system is feasible. A.I(Alien Invasion) Guard can help users 10 years
old and above to entertain as well as to improve critical thinking of the user. After
gathering results, the proponents concluded that the objectives is achieved and the game
is fully functional.
Recommendation
For the continuation of the project, the proponents recommended that the game can be
better if it has more features, a larger scope and available for iOS mobile phones.
Yasmin Ebrennan (2012). Developing Gaming Fluencies with Scratch: Realizing Game
Design as an Artistic Process
https://www.researchgate.net/publication/264995626_Developing_Gaming_Fluencies
_with_Scratch_Realizing_Game_Design_as_an_Artistic_Process
Michael Logarta (2014). The gamification of education: Why playing is the future of
learning
https://www.gmanetwork.com/news/scitech/technology/365281/the-gamification-of-
education-why-playing-is-the-future-of-learning/story
Estacio, Z. (2018). Why Mobile is now the No.1 platform for games. Retrieved from
https://www.yugatech.com/feature/why-mobile-is-now-the-no-1-platform-for-
games/#sthash.iwfzxl7D.dpbs#F8fpeTcVSczWytb1.97 [Accessed 10 Oct. 2019].
Promsutipong, P., & Kotrajaras, V. (2017, July). Enemy evaluation AI for 2D action-
platform game. In 2017 14th International Joint Conference on Computer Science and
Software Engineering (JCSSE) (pp. 1-6). IEEE. Retrieved from https://sci-
hub.tw/10.1109/JCSSE.2017.8025906 [Accessed 8 Oct. 2019].
Wang, P., Liu, H. H., Zhu, X. T., Meng, T., Li, H. J., & Zuo, X. N. (2016). Action video
game training for healthy adults: a meta-analytic study. Frontiers in psychology, 7,
907. Retrieved from
https://www.frontiersin.org/articles/10.3389/fpsyg.2016.00907/full [Accessed 8 Oct.
2019].
Options
Quit Button Play button
Record Button
Mini Map
EDUCATIONAL BACKGROUND
Level Inclusive Dates Name of school/ Institution
Tertiary June 2016 – STI College Marikina
current
TechVoc None none
High School June 2010 - La Petite Learning Center/Dee Hwa Liong Academy
March 2014
Elementary June 2004 - La Petite Learning Center
March 2010
AFFILIATIONS
Inclusive Dates Name of Organization Position
SKILLS
SKILLS Level of Competency Date Acquired
m_DraggingIcons[eventData.pointerId].transform.S Destroy(m_DraggingIcons[eventData.pointerId]);
etAsLastSibling();
m_DraggingIcons[eventData.pointerId] =
var image = null;
m_DraggingIcons[eventData.pointerId].AddComponent<Imag }
e>();
// The icon will be under the cursor. static public T FindInParents<T>(GameObject go)
// We want it to be ignored by the event where T : Component
system. {
var group = if (go == null) return null;
m_DraggingIcons[eventData.pointerId].AddComponent<Canv var comp = go.GetComponent<T>();
asGroup>();
group.blocksRaycasts = false; if (comp != null)
return comp;
image.sprite =
GetComponent<Image>().sprite; var t = go.transform.parent;
image.SetNativeSize(); while (t != null && comp == null)
{
if (dragOnSurfaces) comp =
t.gameObject.GetComponent<T>();
m_DraggingPlanes[eventData.pointerId] = t = t.parent;
transform as RectTransform; }
else return comp;
}
m_DraggingPlanes[eventData.pointerId] = }
canvas.transform as RectTransform;
return srcImage.sprite;
using System.Reflection; }
using UnityEngine; }
using UnityEngine.EventSystems;
using UnityEngine.UI;
using UnityEngine;
public class DropMe : MonoBehaviour, IDropHandler, using UnityEngine.UI;
IPointerEnterHandler, IPointerExitHandler
{ public class Enemy : MonoBehaviour {
public Image containerImage;
public Image receivingImage; public float startSpeed = 10f;
private Color normalColor;
public Color highlightColor = Color.yellow; [HideInInspector]
public float speed;
public void OnEnable ()
{ public float startHealth = 100;
if (containerImage != null) private float health;
normalColor =
containerImage.color; public int worth = 50;
}
public GameObject deathEffect;
public void OnDrop(PointerEventData data)
PlayerStats.Money += worth; }
GameObject effect =
(GameObject)Instantiate(deathEffect, transform.position, using UnityEngine;
Quaternion.identity); using System.Collections;
Destroy(effect, 5f);
public class GameManager : MonoBehaviour {
WaveSpawner.EnemiesAlive--;
public static bool GameIsOver;
Destroy(gameObject);
} public GameObject gameOverUI;
public GameObject completeLevelUI;
}
void Start ()
{
using UnityEngine; GameIsOver = false;
using System.Collections; }
}
using UnityEngine;
using UnityEngine.UI;
using UnityEngine;
public class LevelSelector : MonoBehaviour { using UnityEngine.UI;
using System.Collections;
public SceneFader fader;
public class MoneyUI : MonoBehaviour {
public Button[] levelButtons;
public Text moneyText;
void Start ()
{ // Update is called once per frame
int levelReached = void Update () {
PlayerPrefs.GetInt("levelReached", 1); moneyText.text = "₯" +
PlayerStats.Money.ToString();
for (int i = 0; i < levelButtons.Length; i++) }
{ }
if (i + 1 > levelReached) using UnityEngine;
using UnityEngine.EventSystems;
levelButtons[i].interactable = false;
} public class Node : MonoBehaviour {
}
public Color hoverColor;
public void Select (string levelName) public Color notEnoughMoneyColor;
{ public Vector3 positionOffset;
fader.FadeTo(levelName);
} [HideInInspector]
public GameObject turret;
[HideInInspector]
} public TurretBlueprint turretBlueprint;
[HideInInspector]
public bool isUpgraded = false;
using UnityEngine;
using UnityEngine.UI; private Renderer rend;
private Color startColor;
public class LivesUI : MonoBehaviour {
BuildManager buildManager;
public Text livesText;
void Start ()
// Update is called once per frame {
Matrix4x4 m_Matrix;
Material mCopy; using UnityEngine;
Material mOriginal;
Image mSprite; public class Shop : MonoBehaviour {
Material m_Mat;
public TurretBlueprint standardTurret;
void OnEnable () public TurretBlueprint missileLauncher;
{ public TurretBlueprint laserBeamer;
mSprite = GetComponent<Image>();
mOriginal = mSprite.material; BuildManager buildManager;
} mTrans.localRotation = mStart *
Quaternion.Euler(-mRot.y * range.y, mRot.x * range.x, 0f);
}
using System.Reflection.Emit; }
using UnityEngine;
using UnityEngine.UI;
using UnityEngine;
[RequireComponent(typeof(Text))] using System.Collections;
public class ShowSliderValue : MonoBehaviour
{ public class Turret : MonoBehaviour {
public void UpdateLabel (float value)
{ private Transform target;
Text lbl = GetComponent<Text>(); private Enemy targetEnemy;
if (lbl != null) private CompleteLevel currencyworth;
lbl.text = Mathf.RoundToInt
(value * 100) + "%";
}
}
using UnityEngine;
using UnityEngine.UI;
using System.Collections; [Header("General")]
} lineRenderer.SetPosition(0,
firePoint.position);
// Update is called once per frame lineRenderer.SetPosition(1,
void Update () { target.position);
if (target == null)
{ Vector3 dir = firePoint.position -
if (useLaser) target.position;
{
if impactEffect.transform.position =
(lineRenderer.enabled) target.position + dir.normalized;
{
impactEffect.transform.rotation =
lineRenderer.enabled = false; Quaternion.LookRotation(dir);
}
impactEffect.Stop();
void Shoot ()
impactLight.enabled = false; {
} GameObject bulletGO =
} (GameObject)Instantiate(bulletPrefab, firePoint.position,
firePoint.rotation);
return; Bullet bullet =
} bulletGO.GetComponent<Bullet>();
waveCountdownText.text =
void Update() string.Format("{0:00.00}", countdown);
{ }
rangeText.text = "" + Turret.finalrange.ToString();
fireRateText.text = "" + Turret.finalfireRate.ToString(); IEnumerator SpawnWave ()
damageOverTimeText.text = "" + {
Turret.finaldamageOverTime.ToString(); PlayerStats.Rounds++;
}
} Wave wave = waves[waveIndex];
EnemiesAlive = wave.count;
using UnityEngine;
for (int i = 0; i < wave.count; i++)
[System.Serializable] {
public class Wave { SpawnEnemy(wave.enemy);
yield return new
public GameObject enemy; WaitForSeconds(1f / wave.rate);
public int count; }
public float rate;
waveIndex++;
} }
using UnityEngine;
void Awake ()
{
points = new
Transform[transform.childCount];
for (int i = 0; i <
points.Length; i++)
{
points[i] =
transform.GetChild(i);
}
}