social network gaming
TRANSCRIPT
Social Network Gaming 2012
1 | P a g e
d
Social Network Gaming
March 23
2012
WoW Beacon: World of Warcraft user registry system.
system.
Final Year Project
Manchester Metropolitan University
BSc Applied Computing
Student Name: Ashkan Mehran
Student ID No: 08352555
Unit: 63CP6361
Final Year Project
Supervisor: Che-Guevara John
Social Network Gaming 2012
2 | P a g e
Contents
Declaration..................................................................................................................................... 4 Abstract.......................................................................................................................................... 4 Abbreviations................................................................................................................................. 4 List of Figures................................................................................................................................. 4 List of Tables.................................................................................................................................. 6 Chapter 1: Introduction................................................................................................................7 1.1 Project Background ..................................................................................................................7 1.2 Project Aims and Objectives.....................................................................................................8
1.2.1 Aims ..........................................................................................................................8 1.2.2 Objectives................................................................................................................. 9
1.3 Project Layout……... ..............................................................................................................10
1.4 Summary of Project Report Structure…...............................................................................10
Chapter 2: Literature Review.....................................................................................................11 2.1 Introduction ............................................................................................................................11
2.2 Initial concepts of Social Network Gaming..............................................................................11 2.3 Origins of Social Network Gaming..........................................................................................13
2.3.1 Birth of the Modern Social Game................................................................. ………14 2.4 Rise in Popularity among Social Networks users....................................................................15
2.5 Advantages and Disadvantages.............................................................................................16 2.5.1 Contrasts between sharing and general selection...................................................18
2.5.2 Importance of user psychology …...........................................................................20
2.5.3 Competitive elements………………..……………….................................................21
2.6 Social Networks as a Investment Platform..............................................................................22
2.6.1 Why Social Networks?.............................................................................................23
2.6.2 Who develops the games?......................................................................................23
2.6.3 Who are the Market Leaders?.................................................................................25
2.6.4 What makes for a successful game?.......................................................................27 2.7 Conclusion - Thoughts and Opinions linking to project...........................................................28 Chapter 3: Requirements Analysis…………………………………………………………………..29
3.1 Introduction…………………………………………………………………………………………...29
3.2 The System Proposal………………………………………………………………………………..29
3.3 What are the System Requirements?.....................................................................................30
3.3.1 Operational Distribution………………………………………………………………….30
3.3.2 Mission Profile…………………………………………………………………………….31
3.3.3 System Performance Parameters………………………………………………………31
3.3.4 Utilization Environments…………………………………………………………………31
3.3.5 Effectiveness Requirements…………………………………………………………….32
3.3.6 Operation Life Cycle……………………………………………………………………...32
3.3.7 Environment……………………………………………………………..………………..32
3.4 What are the Ethical Implications?..........................................................................................32
3.4.1 Privacy of User Data……………………………………………………………………..33
3.4.2 Reliability of Information…………………………………………………………………33
3.4.3 System Security……………………………………………………………………..……34
3.5 Analysis Conclusion…………………………………………………………………………………34
Social Network Gaming 2012
3 | P a g e
Chapter 4: System Design…………………………………………………………………………….35
4.1 Introduction…………………………………………………………………………………………...35
4.2 Application Structure………………………………………………………………………………...35
4.2.1 Integrating the Object Classes………………………………………………………….36
4.2.2 Defining Class Operations……………………………………………………………….38
4.2.3 Object Relationships and Dependencies………………………………………………39
4.3 System Modelling Techniques……………………………………………………………………...42
4.3.1 Entity Relationship Representation……………………………………………………..42
4.3.2 Use Case Representation……………………………………………………………….44
4.3.3 Sequence and Process Representation……………………………………………….46
4.4 Defining Validation Conditions……………………………………………………………………..55
4.4.1 User Registration Validation………………………………………………………….…55
4.4.2 Character Registration Validation………………………………………………………56
4.4.3 Character Search Validation…………………………………………………………….57
4.4.4 Guild Registration Validation……………………………………………………….……58
4.4.5 Guild Master Registration Validation……………………………………………….…..59
4.4.6 User Login Validation…………………………………………………………………….61
4.5 Design Conclusion…………………………………………………………………………………...62
Chapter 5: Implementation and Testing……………...……………..……………………………...63
5.1 Introduction…………………………………………………………………………………………...63
5.2 Creating the Database…………………………………...………………………………………….63
5.2.1 Integrating Object Tables………………………………………………………………..64
5.2.2 Connecting Class Relationships………...…………………………………….………..66
5.3 Predefined System Factors….……………………………………………………………………...67
5.3.1 Establishing Database Connection……………………………………………………..67
5.3.2 Configuring Presets………………………………………………………………………68
5.4 Integration of User Interface………………………………………………………………………..70
5.4.1 WoW Beacon Registration…………………………..………………………………….70
5.4.2 User Login………………………………………………………………..……………….71
5.4.3 WoW Beacon Home……...……………………………………..…………………….....72
5.4.4 Character Registration……………………………………………..…………………….73
5.4.5 Find Character………………………………………………..…………………………..74
5.4.6 Guild Registration…………………………………………………………………………76
5.4.7 Assign Guild Master………………..…………………………………………….………77
5.4.8 User Profile Page….………………..…………………………………………….………77
5.5 Process and Component Testing…………………………………………………………………..78
5.5.1 User Registration Process………………..……………………..………………………79
5.5.2 User Login Process………………..……………………………………..………………83
5.5.3 Character Registration Process………………..…………………………..…………...85
5.5.4 Character Search Process…………………..…………………………………………..90
5.5.5 Guild Registration Process………………..…………………………………………….92
5.5.6 Guild Master Assignment Process………………...……………………………………94
Chapter 6: Evaluation…………………………………………………………………………..………98
6.1 Introduction…………………………………………………………………………………..98
6.2 Initial Assessment…………………………………………………………………………..98
Social Network Gaming 2012
4 | P a g e
Chapter 7: Conclusion………………………………………………………………………….…….101
6.1 Introduction…………………………………………………………………………………101
6.2 Reflection on Progress……………………………………………………………………101
6.3 Potential Improvements………..…………………………………………………………102
References…………..…………………………………………………………………………………..102 Appendix: A - Original Terms of Reference……………………………………….………..………..105 Project Plan…………..………………………………………………………..……………….……….108 Appendix: B - Modified Terms of Reference ………………..……………………….……..……….109 Appendix: C - Ethnics Checklist……………….……………………………………………..……….112
Declaration
No part of this project has been submitted in support of an application for any other degree or qualification at this or any other institute of learning. Apart from those parts of the project containing citations to the work of others, this project is my own unaided work.
Signed: _____________________________ Date Signed: ____ / ____ / ________
Abstract
The aim of this project is to implement a user registry system specifically for users
who play the popular MMORPG World of Warcraft. The purpose of the
application is to supply users with an array of features to document themselves
and their game characters on my system. The application will also provide users
with a feature to search for fellow players using their character credentials. Once
found, users can choose to view the user profiles and use the provided links to
finding that player on Facebook. This report will be discussing the various steps I
have gone through to implement such a system, while also providing some insight
on the concept of social network gaming.
Abbreviations
API( Application Programming Interface)
PHP(Hypertext Processor)
SQL(Structures Query Language)
HTML(Hyper Text Mark-up Language)
Social Network Gaming 2012
5 | P a g e
List of Figures
Figure 1: Social game design layout...............................................................................................7
Figure 2: World of Warcraft Party Feature…………………………….……....................................15 Figure 3: Referrer Network in Social Game Adoption...................................................................18
Figure 4: Users who received invitations have stayed longer in game.........................................19 Figure 5: Facebook Friend Invitation GUI.....................................................................................19
Figure 6: Purchasing In-Game resources with real life payment..................................................20
Figure 7: Typical FarmVille GUI....................................................................................................21
Figure 8: FarmVille Gaming Promotions……………………………………………………………….22
Figure 9: Inside Social Games Review Ladder……………………………………………………….26
Figure 10: iSuppli Review Ladder………………………………………………………………………27
Figure 11: Object Relationship Diagram……………………………………………………………….41
Figure 12: Entity Relationship Diagram….…………………………………………………………….43
Figure 13: User Use Case Diagram……………………………………………………………………45
Figure 14: Administrator Use Case Diagram……………………………….………………………...46
Figure 15: Character Registration Sequence Diagram…………………….………………………...50
Figure 16: User Registration Sequence Diagram……………………….………………………...51
Figure 17: Last Login Sequence Diagram……………………………….………………………...52
Figure 18: Guild Registration Sequence Diagram………………..……….………………………...53
Figure 19: Guild Master Registration Sequence Diagram………………..………………………...54
Figure 20: phpMyAdmin Database Creation Interface……….……………..……………………...64
Figure 21: phpMyAdmin Table Creation Interface……….…………..………..……………………...64
Figure 22: phpMyAdmin Column Modifier…………….…..…….……………..……………………...65
Figure 23: phpMyAdmin Table Structural View…...….…..…….……………..……………………...65
Figure 24: phpMyAdmin Relational View Feature...….…..…….……………..……………………...66
Figure 25: phpMyAdmin Guild Master Table Relational View...….…..…….………..……………...67
Figure 26: MySQL Database Connection Sequence…………..….…..…….………..……………...68
Figure 27: WoW Beacon User Registration Interface…..……..….…..…….………..……………...71
Figure 28: WoW Beacon Login Interface………………………..….…..…….………..……………...72
Figure 29: WoW Beacon Home Interface…………..…………..….…..…….………..……………...72
Figure 30: Character Registration Interface.………..…………..….…..…….………..……………...73
Figure 31: Character Search Interface.………..………………..….…..…….………..……………...74
Figure 32: Character Search Summery Interface.………..…………..….….………..……………...75
Figure 33: Guild Registration Interface.………..…………..….…..…….………..……………...76
Figure 34: Guild Master Registration Interface.………..…………..….….….………..……………...77
Figure 35: User Profile Interface.……………………..…..…………..….….….……………………...78
Figure 36: User Registration Data Input Format.…...…..…………..….….….……………………...79
Figure 37: Incorrect Password Error…………….…...…..…………..….….….……………………...80
Figure 38: Incorrect Email Error………………….…...…..…………..….….….……………………...80
Figure 39: Incorrect Password & Email Error…..…...…..…………..….….….……………………...81
Figure 40: Incompletion of Input Fields Error…...…...…..…………..….….….……………...……...81
Figure 41: Username Already in Use Error……..…...…..…………..….….….……………………...82
Figure 42: User Registration Confirmation Page.…...…..………..….….….……………………......82
Figure 43: Newly Allocated User Details………...…...…..…………..….…….……………………...82
Figure 44: User Login Error Message…………...…...…..…………..….…….……………………...83
Figure 45: Home Page Structure for First Login ………...…...…..…………..……….…………......84
Figure 46: Un-shifted Last Login Table..………...…...…..…………..….…….……………………...84
Figure 47: Shifted Last Login Table……………...…...…..…………..….…….……………………...85
Social Network Gaming 2012
6 | P a g e
Figure 48: Updated Last Login Status…………...…...…..…………..….…….……………………...85
Figure 49: Alliance Faction Race Values...……...…...…..…………..….…….……………………...86
Figure 50: Horde Faction Race Values..………...…...…..…………..….…….……………………...86
Figure 51: EU Region Server Values.…………...…...…..…………..….…….……………………...87
Figure 52: US Region Server Values.…………...…...…..…………..….…….……………………...87
Figure 53: Character Registration Incomplete Fields Error.…...…..….…….……………………...88
Figure 54: Unavailable Character Name Error.....…...…..…………..….…….……………………...89
Figure 55: Character Confirmation Page ………………………...…...…..…………..….………....89
Figure 56: Newly Allocated Character Record.......…...…..…………..….…….……….…………...89
Figure 57: Character Search Incomplete Field Error………...…...…….…….……………………...90
Figure 58: Inconclusive Search Error.…………...…...…..…………..….…….……………………...90
Figure 59: Example Character Search Summery…...…...…..….…..….…….……………………...91
Figure 60: Guild Registration Incomplete Field Errors...…...…..….……….……………………...92
Figure 61: Unavailable Guild Instance Error………...…...…..….…..….…….……………………...93
Figure 62: Guild Confirmation Page….......................…...…..….…..….…….……………………...93
Figure 63: Newly Allocated Guild Record……….…...…...…..….…..….…….……………………...93
Figure 64: Un-established Character and Guild Error…...…..….…..….…….……………………...94
Figure 65: Un-established Guild Error ……………….…...…..….…..….…….……………………...94
Figure 66: Un-established Character Error …….…...…...…..….…..….…….……………………...95
Figure 67: Incomplete Guild Master Inputs Error…...…...…..….…..….…….……………………...95
Figure 68: Guild Master Confirmation Page…….…...…...…..….…..….…….……………………...96
Figure 69: Newly Allocated Guild Master Record…...…...…..….…..….…….……………………...96
List of Tables
Table 1: 1NF (First Normal Form)................................................................................................ 36
Table 2: 2NF (Second Normal Form)……………………....………….……....................................37
Table 3: 3NF (Third Normal Form)..…………………....................................................................38
Table 4: User registration validation table..…………....................................................................56
Table 5: Character registration validation table.……....................................................................57
Table 6: Character search validation table.……...........................................................................57
Table 7: Guild registration validation table.……............................................................................58
Table 8: Guild master registration validation table.……................................................................60
Social Network Gaming 2012
7 | P a g e
Chapter 1: Introduction
1.1 Project Background
Social network gaming can be considered a very vast and influential element of
what social networks have become in this day and age. It is no surprise that the
concept of social networking has provided considerable benefit to the growth and
expansion of the social gaming industry. In fact social networks have become a
very favourable platform to developers, as it grants them great opportunity to
promote their games to the general public. With the rise in popularity for this
field of business, we are introduced to a variety of development companies
fashioned to develop games specifically for social networks.
These companies include market leader Zynga, 5 Minutes, Playfish, Playdom,
Kabam, Crowdstar, RockYou and Booyah. Being an amateur developer and a very
active social network user, I have my own perceptions of social network gaming. It
has enticed me to employ an idea which incorporates elements of social
networking and online gaming into a unique application as part of my project.
To firstly understand what is meant by a social networking game, we must begin
by identifying the key factors behind their design. Now the typical design of a
social networking game involves a specific process, as they revolve around
asynchronous game play mechanics. As these are browser based games, it is
important to note that they can also be applied to specific platforms such as
mobile devices.
Figure 1: Social Game Design Layout, Source: [mygamestudies.com, 2009]
Social Network Gaming 2012
8 | P a g e
1.2 Project Aims & Objectives
In accordance to my original Terms of Reference specification, there have been
added points that need to be satisfied. In my previous documentation, it was
indicated that my system would include certain features to allow users to
communicate through instant messaging (IM). Due time management issue, this
feature had to be scraped to make time for the more important factors.
Since implementing these changes, I have been able to make my project a more
realistic task to accomplish. These changes were set in motion after I had
originally planned to develop my project to present some marketable potential.
As a result I modified my requirements to cater for a more achievable project.
1.2.1 Aims
To provide social network users with a unique and exclusive game related service.
The service is a registry system situated on the social network known as
Facebook, it focuses on users who play the popular MMORPG World of Warcraft.
The system’s purpose caters for two specific criteria, users who play World of
Warcraft and who are also registered on Facebook.
Users who play World of Warcraft will be able to utilise my service to locate
fellow players that are registered on the system database. This process follows
the conditions of what information users have in order to search for their fellow
players. This means that if a user does not have knowledge of a player’s real life
credentials to locate them manually through Facebook, they can alternatively use
another piece of information relevant to the game in order to locate them. This
may include their character name, race, class, guild, faction, realm or a number
other criteria.
Once introduced to my service and its principles, users will have to register
themselves in order to gain access to the primary features of the application. This
includes a search engine designed to accommodate for a range of queries, suited
for the flexibility of users who are lacking in data. The result of each query will
depend on the relevance of data available on the system database, otherwise the
search will yield an inconclusive result. If a query is successful, users will be
redirected to a summary of results where they can browse and select from a list
of related records.
Social Network Gaming 2012
9 | P a g e
Each record will include a profile for each user on the database, providing specific
details such as player overview, profile picture and their recent activities. In
addition each user profile will contain the Facebook Add Friend API, allowing
users to send friend requests directly through my application.
1.2.2 Objectives
As part of my objectives for this project, I intend to gain some insight on how
social network gaming has influenced the way people view social networks. I plan
to also understand the process of developing social network games, as it will
greatly benefit towards the development of my project.
Certain points that involve the expansion of my project are concerns that also
need to be addressed. In reference to my research, I didn’t come across any
products that offered the same services as my system. Therefore my project
might present some marketable potential. There are also several questions that I
plan to answer alongside these points:
Which elements of social network games are most enticing to users, and
how do those elements satisfy user expectations?
What advantages do social networks have from releasing their API’s to
independent developers?
What resources would be required to implement my system, considering
aspects such as time, effort and other functional requirements?
How effective would my system be to its target audience, as opposed to
whether users will favour the system enough for it to gain considerable
recognition?
Would be it be possible to integrate such a system onto a social network,
taking into consideration factors such as speed, consistency, flexibility and
most importantly cost?
Will the maintenance of this system present cause for concern, as its
eventual growth will require specific updates?
Social Network Gaming 2012
10 | P a g e
1.3 Project Layout
I plan to accomplish my project goals through the following stages of
development:
Literature Review – Investigate the topic of social network gaming, in order
to attain sufficient knowledge of their design and principles.
Requirements Analysis – To assess the requirements of the system I am
trying to build, while referring back to the resources I obtained in my
literature review.
Analysis and Design – The requirements I had assessed in the previous
stage will be analysed and planned into a design. This design will indentify
the key methods I will be using to structure the basis of my system.
System Implementation – In this stage I will have begun building my
system to the design specifications outlined in the previous phase.
User Feedback – The Judgment of the users who utilize my system is vital,
as they provide me with the information I’ll require to further improve my
system.
Evaluation – The final evaluation examines whether or not my system has
satisfied its fitness of purpose. This involves the completed work and the
result it has achieved.
1.4 Summary of Project Report Structure
Following is a summary of the chapters that will make up my report:
Chapter 1 – Introduction
Chapter 2 – Literature Review / Analysis
Chapter 3 – Design
Chapter 4 – Implementation & Testing
Chapter 5 – Evaluation
Chapter 6 - Conclusion
Social Network Gaming 2012
11 | P a g e
Chapter 2: Literature Review
2.1 Introduction Following my investigation into the subject of social network gaming, I discovered how popular game based applications have become amongst users. My resources indicated that these services have greatly influenced the way users operate on their respective networks. The initial demands for these gaming services have significantly increased since their introduction, making them more commonly associated with social networks. In conjunction to their success, there has been speculation that social-based games have contributed to the general image of social networks. By accommodating for a multitude of entertainment-based applications, most social networks have seen their user base rise significantly. What enticed me to engage this specific topic derived from my own personal experiences with social network gaming. Although it was in a moderate capacity, I have sampled a variety of social-based games in the past. Each game has a unique style based upon the concepts of their genre, as some players can be subject to a range of circumstances. This can involve a specific condition that needs to be meet or satisfied. While I managed to gain a fair understanding the conceptual mechanics, social network gaming is rather vast subject. Due to that reason, I decided to accommodate for a range of resources to gather the most reliable and accurate data available. During my research, I notice that the data for my chosen topic was rather limited. Fortunately, I managed to come across a number of articles that covered a range of issues with statistical and subjective reasoning. As a result, I began to categorise my findings under their related themes with specific titles. This allowed me to apply my information more efficiently, while outlining the key issues that required elaborating. Once my research was complete, I simply had to prepare the data for the second stage of my development. To clarify the points I had put across in my aims, I will be carrying out an analysis of my findings. Therefore in this chapter, I will be examining the data I have recovered in order to help me outline the key issues of social network gaming. 2.2 Initial concepts of Social Network Gaming During my investigation, I discovered evidence that claimed social games are definable through a series of distinct concepts. As each platform may differ from one another in terms of genre, they all still share the same initial factors. These
Social Network Gaming 2012
12 | P a g e
elements play a very important part in user interaction, as they outline the games base principles. This is justified by how crucial these concepts have become to the success of social games, acting as theoretical templates to be built upon. To lead on in this section, I will be analysing each of these points to justify their roles as structural guidelines for social games. So to understand what separates social games from traditional console games, we asses them according to the following concepts: Turn-Based The concept of a turned based game is rather straight forward. It refers to the notion of players having to take turns in order to progress with the game. In fact, it is quite rare to come across a social based game that doesn’t integrate the turn-based concept as social games aren’t social games unless you are playing with another person. Although it isn’t considered to be the latest fashion of game design, turn-based games have adapted a new identity among social gaming players. It should also be noted that the turn-based concept isn’t compulsory, it is just a very common element found in most social games today. Awareness of others actions within the game There has been much speculation on how social games have utilized the progression made by their user base. By taking advantage of network tools to share game related data, social games can entice their user base by keeping them up to date with the progression made by their fellow users. For example if a user achieves a new high score in the game, it will instantly be published on the network news feed to notify all other user who are associated with that player of his/her achievement. Potentially this will motivate users to involve themselves by attempting to set a standard of their own. This feature has often been considered as the driving force behind the advancement of social gaming, as it draws on the competitive resolve of users to excel their peers and set bench marks for their own achievements. The social context gives way to users becoming more interactive with the game, while at the same time keeping them up to date with the current standings. Casual gaming Social games can be considered as a very distinct variety of entertainment in comparison to standard gaming platforms. They are distinguished through the
Social Network Gaming 2012
13 | P a g e
idea of maintaining a casual level of distraction for users. The basis on which they are fashioned caters for moderate activity, where as mainstream games are more demanding of attention and interest. This idea derives from the fact that social games are for the average user and not intended for someone who is expected to play for a vast amount of hours. Multiplayer Naturally if a game isn’t multiplayer, then it cannot be considered to contain social elements. Whether a game is designed for two to two hundred players, there must be some degree of multiplayer content available. Based on Social Platforms The basis of a social game is another factor that needs to be addressed. It is a component that adds to the identity of social games. The most common platforms that are best recognised with users are social networks. The initial framework for social gaming is defined through the use of social networks. While providing users with an identity that can be applied to the games they engage, social networks also accommodate for the promotion of social games. Other implications would involve the processing and registration of social games, since social networks such as Facebook have an integrated system to allow developers to upload their applications independently. Social platforms also provide opportunity for users to share and distribute their favourite games to people within their network, building a strong sense of communication through features such as news feeds and notifications.
2.3 Origins of Social gaming The idea of social games is not a notion that was first recognised with the introduction of social networks such as Facebook. The actual expression social game derives from the concept of communication, which has been the core purpose of games since ancient times. Generally speaking, a social game comprises of a playing condition that integrates socialization within its structure to accommodate for range of individuals. This includes traditional games such as card games, board games, dice games, video games and more. However in this day and age, the term social game is most commonly associated with the games situated on social and digital platforms such as Facebook, Xbox live, the Playstation Network and Stream in addition to various other virtual
Social Network Gaming 2012
14 | P a g e
systems. This concept has become even more generalised since the integration of social network gaming. The applications incorporated are stereotypically identified as social as playing mechanics typically involve users having to interact simultaneously over the network. 2.3.1 Birth of the Modern Social game It is believed that the foundation of modern social gaming was established by a specific genre of traditional games. According to the author Jon Randoff, it was the fantasy role-playing game dungeons and dragons that first invoked the idea of conceptual role-play while “integrating idea of abstracting tactical combat along with storytelling and a unique social aspect in which individual players used their imagination and creativity to contribute to the ongoing game”[Jon Randoff 2010]. It was during the 70’s and 80’s that dungeons and dragons became significantly popular amongst gamers, coincidently around the same time that the very first video and computer games were introduced to the general public. The idea of merging the two gaming trends sparked interest in a number of developers, and so “the mechanics of D&D combined with the digital worlds and online connectivity of computers and game consoles to form MUDs (multi-user dungeons), as well as famous role-playing (RPG) series such as King’s Quest and Ultima”[Nadia Oxford 2011]. This endeavour was further expanded by the Japanese gaming industry by innovating social games that boasted more effective GUIs. These ventures lead to the launch of many prestigious franchises, such as DragonQuest and Final Fantasy. Although contributing to the advancement of MMORPGs (massively –multiplayer online role playing games), MUDs didn’t necessary gain the popularity that is now associated with them. Essentially it was the more graphical based MMORPGs that introduced the initial concept of modern social gaming into mainstream media. Since being established, MMORPGs have caught the attention of numerous users through the use of their social traits, such as in-game IM (Instant messaging) and voice communication. These elements assist users in coordinating with fellow players to accomplish various tasks and requirements, offering a more satisfactory gaming experience. The popularity of these features have been heavily invested by game development giants Blizzard entertainment. Their franchise World of Warcraft has since become recognised as the most successful MMORPG to date “with 10.2 million subscribers as of December 2011” [Wikipedia, 2012].
Social Network Gaming 2012
15 | P a g e
Figure 2: World of Warcraft Party Feature, Source:
[World of Warcraft: Cataclysm, 2012] However the definition of the MMORPG genre comes under question when discussing their classification on social networks. In terms of categorisation, the user perspective of MMORPGs based on social networks differs significantly to MMORPGs that are not based around social platforms. 2.4 Rise in Popularity among Social Networks users Since their introduction to social networks, social games have generally been received with good response. They provide services that target a wide range of age groups, making them very versatile forms of entertainment. Certain factors such as accessibility play an important part to their success, as users will be more drawn towards games that are openly exclusive. The processing of social games is another of their beneficial, as they are typically implemented using Flash. This implies that they use very little processing memory to function, an important detail as they are typically accessed through web browsers. Another benefit would include the ability to correspond with other players over the networks. Being able to communicate with friends and family is the universal purpose a social network. By applying that concept to a game situated on the same network, users can promote a good sense of communication between one another while also engaging in a mutually beneficial process. In addition, users will be encouraging a positive atmosphere for the network, whilst also providing entertainment for themselves and fellow players.
Social Network Gaming 2012
16 | P a g e
Updating and maintenance is another cause for popularity, as users can expect to be subjected to the latest and most popular games available on the network. In order to keep their players satisfied, development companies such as Zynga take user feedback as a top priority. As a result, they modify their product design where reasonable, while also trying to conserve their games popularity amongst the network. 2.5 Advantages and Disadvantages of Social Gaming Users will often come across social games that they will either favour or dislike, in reference to their own preferences. However that does not dismiss the fact that there are certain elements that define whether or not a social game is likely to be favourable to its target audience. For these reason, I will be conducting an analysis on the various benefits and drawbacks that are associated with most common social networking games. In accordance to the results I intend to outline and identify the most general points, whilst achieving some justification for my own theories on the subject. Advantages
There is an element of convenience, for instance if a user’s job retrains them to being stationed at a desk with a PC while they have nothing to do then engaging in a social game would be serve as a reasonable distraction for them.
A social network presents a vast system of individuals at the touch of a button. This invites the opportunity for users to make new and interesting friends that share the same gaming interests as they do.
Users have the option of inviting people from their own social circles to playing a variety of gaming genres.
Social networks provide a fertile environment for the development and promotion of social gaming.
Statistics show that social games tend to receive a high volume of users in a very short period of time. This is due to their exclusiveness to social network users.
Social Network Gaming 2012
17 | P a g e
Statistics show that Facebook users who are invited to social games happen to stay occupied for longer on a particular application rather than users who tend to them independently
The social referral mechanism is a major feature of social applications and has demonstrated significant importance in market strategy.
Disadvantages
Social games have a tendency to occupy users for long periods of time. This can prove to be a very unhealthy routine on a number of levels if performed on a regular basis.
With the possibility of meeting new people through the means of social gaming, there is always the possibility that users will come across an individual that will potentially be anti-social and offensive.
There are a huge variety of virus driven websites that support social games, for that very reason it is rather problematic for users who recklessly expose their computer to a potential hacker.
Social games can cause a serious degree of passive aggression if a user gets completely affiliated inside a game. There are known cases where this form of behaviour has led to depression, violence and even death. This anti-social behaviour also causes problems for people who are both familiars to and strangers to that individual
Absence from a game may cause distress and agitation for some users, since it can induce the mentality that a user is missing out on obtaining specific resources that would otherwise allow them to progress further into the game.
Competition amongst users can be consideration another drawback, considering that it will invoke a sense of insecurity within them if they cannot best or outmatch another player within the game.
There is the issue of a user falling behind with their real life priorities, such as work, education and their obligation to friends and family.
Social Network Gaming 2012
18 | P a g e
2.5.1 Contrasts between sharing and general selection Although it is difficult to differentiate the causes behind users becoming inclined to playing certain social games, there are potential motives that are adopted in the process of validating their preferences. This concept incorporates a variety of psychological factors that can influence a user’s decision in choosing a specific genre of games. This procedure is distinguished by two very explicit forms of referral, formally known as sharing and general selection. In this segment I will be examining the contrast between the two procedures, in order to identify which is the most preferred form of referral. Following the hierarchal structure of social networks, we discover that social games reside primarily high within the systems design. This delegates social gaming as a very valued component for network marketing as they are vastly employed by user on a daily basis. One feature in particular that many social networking games integrate, involves allowing users to invite others to join them in the game. Sharing and issuing invitations are very effective forms of referral, as users may passively influence people within their social circles to employ these applications. Invitations to a game are usually extended through a users news feed or inbox, usually a message contain a briefly explaining of the game and who issued the invitation. Notifications such as progression reviews and game changes are displayed through a users news feed every time the game is updated.
Figure 3: Referrer Network in Social Game Adoption, Source:
[Diffusion Dynamics of Games on Social Networks, 2008]
In a sense, the potential user base of social games is partially dependant on whether active players are inclined to use the games referral features.
Social Network Gaming 2012
19 | P a g e
As previously mentioned, it is very unlikely to differentiate between which forms of referral are most effective to attracting users to a social game. However, user invitations have been proven to attract a substantial degree of players.
Statistics show that “out of all players who downloaded the two games analyzed here, more than 37% (for YL) and 25% (for DL) received invitations from their friends before starting to play the game. Even though, invitations are not the main channel by which users land in a game, we find that the users’ engagement to the game is substantially higher for those who join through an invitation”
[Lada A. Adamic, 2008].
Figure 4: Users who received invitations have stayed longer in game, Source:
[Diffusion Dynamics of Games on Social Networks, 2008]
In figure 3, we analyse the probability of time that invited and none invited users would spend on the previously mentioned games. As displayed within the diagram, users who are issued invitations tend to occupy a game for longer in comparison to users who choose by general selection. These results suggest several implications. The first would consider invitation referrals as a guideline for filtering games users may be interested in. While another essential case would be to draw on the preferences of the user, so they place more faith within a specific game.
Figure 5: Facebook Friend Invitation GUI, Source:
[Facebook, 2011]
Social Network Gaming 2012
20 | P a g e
2.5.2 Importance of user psychology Psychology can play a very significant part in how users view social games. There may be certain users, who will find a game too violent and unappealing for them. There may also be situations where players will consider a game lacking in entertaining. The point however, relies on the mentality that social games project onto users over the period they are played. One example would be the development of an unwary addiction, as users may find themselves dedicating countless hours of playing for personal fulfilment.
Figure 6: Purchasing In-Game resources with real life payment, Source: [Facebook, 2011]
However the use of the term “addiction” in reference to games is typically frowned upon by psychological experts. This is due to the expression being more commonly associated with concept of drug and alcohol disorders. Yet the reality of issue gives cause for alarm, since “When you sneak a peek into Facebook while at work to grab virtual golds for St. Patrick’s Day or set alarms and wake up at 2 a.m. to harvest your crops so they don’t wither, or when you eat your lunch right in front of your PC so you can attack other Mafia Wars players in between bites, what else do you call that?”[Leonora Albino, 2010]. Essentially the psychological factors that depict a user’s outlook on social gaming derive heavily on their rationality and reasoning.
Social Network Gaming 2012
21 | P a g e
2.5.3 Competitive elements
The competitive elements within a social game can consist of a vast range of incentives. Although victory and defeat are regarded as the universal conditions, every game is likely to have its own unique class of competitive elements. The need to progress compels every player into flaunting their competitive nature, as a result prompting them to initiate whatever conditions required of them to succeed. It is important to consider the prime standards, which need to be established for these competitive elements to exist. This includes:
An animated game, its ability to prompt individuals to invite others for the competition [Avenirtech, 2012].
Individuals who are highly intentional to play against each other for fun. [Avenirtech, 2012].
A platform which allows both the games as well as individuals to accomplish their desired tasks [Avenirtech, 2012].
Figure 7: Typical FarmVille GUI, Source: [Facebook, 2011]
Further requisites may include the method in which social games choose to distributed particular motives. One example would be issuing unique periods of time where players gain additional benefit from game resources and tasks. The
Social Network Gaming 2012
22 | P a g e
fundamentals of competition can apply to various areas of social gaming, whether it is a modest or demanding task. As long as it holds some form of progressive value, it will most likely entice players to obliging. 2.6 Social Networks as an Investment Platform Over the years there have been many additions to the expansion of social networking. It is no surprise that the developers of social platforms such as Facebook or Twitter will continue to make substantial profit from what their products have to offer the general public. As far as listing dates go, there are bound to be countless statistics and figures detailing the net work of these development companies. According to resources “Facebook’s user base could top a billion by the end of this year. Other networks are also seeing a massive uptake. LinkedIn has 150 million members. Indonesia hit a million members only two months after LinkedIn added support for its official language” [Brian Borzykowski, 2012]. It is quite evident that social networks are now more or less part of modern society. Due to this, there has been speculation on whether social networks can serve as a promising investment platform for potential shareholders.
Figure 8: FarmVille Gaming Promotions,
Source: [Facebook, 2011]
Social Network Gaming 2012
23 | P a g e
Ian Ainsworth, who is the senior vice president of the Mackenzie Financial Corporation stated otherwise. He claims that while social networking may seem like a wise investment, it invokes time and patience to show any real signs of profit. This implies that any individual is welcome to invest in social platforms, considering they can afford to. However it would be a more practical venture for those planning for a long term investment. 2.6.1 Why Social Networks? It is no surprise that social networking platforms have become so increasingly popular over the past few years. Their progression has incited individuals to ask, why are they so successful? For most social networking users, this question is rather relative. The fact that these platforms can initiate such influence, demonstrates how society is accustomed to following the latest social trends. Another point would be the variety of social platforms available to the general public. Initially they are created to contain a large selection of features, each promoting a unique service that contributes to their popularity. One element in particular that users most commonly recognise is the simplicity of social platform GUIs (Graphical User Interface). For these reasons, they are viewed as very lucrative foundations by potential investors. By embracing this concept, social networks become versatile environments where users can benefit from the vast collection of their services.
2.6.2 Who develops the games? Following its induction of various gaming services, social networks have provided development companies with the tools they require to effectively advertise their own products. Subsequently, a number of these companies became well established mainstreams names after string of positive marketing reviews. They’re development into the industrial side of social network gaming saw the rise to many favoured social games, these include FarmVille, CityVille, Mob Wars, Farm Town, The Sims Social and many more. In this section I will be briefly discussing a couple development brands, their expansion platforms in addition to some of the most notable games they have produced.
Zynga Zynga is a games development company based in San Francisco, United States. The company is known to for producing a line of both stand-alone and application widgets that are typically used on social platforms. The company has been
Social Network Gaming 2012
24 | P a g e
recognised as one of the most popular games manufacturers based on social platforms such as Facebook, MySpace, Orkut and Google+. After gaining a considerable reputation through Facebook, Zynga began to expand its assets and “as of February 2012, Zynga's games on Facebook had over 240 million monthly active users” [Wikipedia, 2011]. Some of the most popular Zynga games include: CityVille, CastleVille, Zynga Poker, FarmVille and Empire & Allies.
Playfish Playfish is a games development company that offers a variety of free social networking games on the social platform Facebook. The company is based in London England and was founded by a team of four associates named Kristian Segerstrale, Sebastien de Halleux, Sami Lababidi and Shukri Shammas. They where first discovered after developing very successful Facebook application called Who’s got the biggest brain? The game was recorded as being the first Facebook game to attract a user base of over one million players on a daily basis. The proceedings where used to kick start the company on the road to producing many more favoured originals. Since their implementation, studies also show that “Playfish games currently attract roughly 55 million users a month, with over 37 million users solely coming from Facebook members” [Wikipedia, 2011]. Playfish has been the centre of many prestigious games since its launch, however over the course of time some became discontinued in pursuit of new and more promising investments. Their most recent games include: Pet Society, Resturant City, EA Sports FIFA superstars, Madden NFL Superstars, The Sims Social, Risk: Factions and Secret Island.
Playdom Playdom is a games development company that was established in San Fransisco by University graduates John Pleasants, Dan Yue, Chris Wang and Ling Xiao. The company first rose to popularity on social networks Facebook, Google+ and MySpace. The company is known to be subordinately owned by the Walt Disney Company as a part of their Disney Interactive Media Group. Playdom has since flourished following the release of many favoured hits. A study has concluded that “it is currently the largest social game developer on MySpace and number 15 by MAU on Facebook” [Wikipedia, 2011]. In contrast to the Playfish, Playdom has also had many discontinued projects.
Social Network Gaming 2012
25 | P a g e
Their most current line of gaming includes: Gardens of Time, Mobsters: MySpace, Mobsters 2: Vendetta, Sorority Life, City of Might, Marvel: Avengers Alliance, My Vineyard and other prominent titles.
RockYou RockYou is a social games development company that also employs advertising solutions for various types of social media. The company was founded in 2005 by partners Lance Tokuda and Jia Shen. Their headquarters is based in Redwood City California, where they developed their first successful product consisting of a slide show service. RockYou has since set its focus on producing social gaming applications specifically for the Facebook plaform. The company also experience a degree of success with their advertisement venture as their “products allow brands to interact with players in-game, adding value-per-engagement for both brands and users” [Wikipedia, 2011]. RockYou has since been known for releasing numerous titles that shared some extent of popularity among Facebook users. However their prime focus in their latest line of production has been the source of three explicit games, namely: Zoo World, Zoo World 2 and Cloudforest Expedition. 2.6.3 Who are the Market Leaders? With the advancements of social network gaming, a lot of competition has escalated among development companies to gain the interest of users. In the process of advertising their products, a select number of companies have achieved considerable favour amongst their consumers. In response to their success, a select few have become acknowledged as the market leaders for their class of applications. The question is however, who are the key players and which products gained them their success among the market? To answer this question, I began to investigate the current standings and discovered the two following studies:
Inside Social Games Review According to a statistics study by insidesocialgames.com, Zynga’s Slingo application was recorded to having the most rapid amount of MAU (monthly active users) placing them at the top of their ladder. The application managed to raise its percentage figures by 210 percent with an “increase from 3 million to 5.6
million MAU” [insidesocialgames.com, 2012]. In second place came Rovio’s Angry Birds application with “1.9 million new MAU for an 11 percent gain,
Social Network Gaming 2012
26 | P a g e
ending its three-week reign as the top game on the list” [insidesocialgames.com, 2012]. The other top 10 contenders followed up with figures between 300,000 to 800,000 MAU gains.
Figure 9: Inside Social Games Review Ladder,
Source: [insidesocialgames.com, 2012] iSuppli Review While examining the records for social networking gaming activity, iSuppli.com revealed that during 2010 the development company Zynga managed to surpass all its potential competitors. This success was accumulated through the popularity of Zynga hits CityVille and FarmVille. Following the review, it was revealed that “Consumer spend on Zynga’s PC social networking games and its revenue from lead generation and advertising activities amounted to $544 million in 2010, giving it 39.1 percent share of the global market, a 4.2 percentage point increase over 2009”[Piers Harding Rolls, 2011]. The data demonstrates how Zynga managed to easily overshadow its competitors with the largest recorded percentage rise among the top 5 contenders. In second place was EA’s Playfish with a market share percentage of 6.5%. The top 5 contenders followed in with market share percentages ranging between 2.6 to 5.5%.
Social Network Gaming 2012
27 | P a g e
Figure 10: iSuppli Review Ladder,
Source: [iSuppli.com, 2011]
Thus in reference to the reviewed data, it would appear that Zynga is currently recognised as the commercial market leader for social network gaming. 2.6.4 What makes for a successful social game? Ever since the introduction of social network gaming, one question has been heavily stressed among its investors – What makes for a successful social game? When asking such a question, one must consider the relative elements that define a social game. The actual concept for success is a very dependent factor, bearing in mind that not all consumers will be satisfied with only one flat class of social games. For these reasons, it is imperative that development companies carefully analyse the preferences of their target audience. Typically each social game would include its own set of marketing principles, although the initial development process follows a compulsory list of criteria. Subsequently, there are a collection of key elements that directly benefit every social networking game. So what exactly are the key elements to the success of social network gaming?
1. Any individual who has internet access is considered as a potential consumer.
2. Applications are typically free of charge 3. Social networking platforms provide a very versatile environment for the
commercial advertising of products. 4. Encourages users to express their competitive nature. 5. Advantages of an interactive system. 6. Accumulates user co-operation. 7. Promotional events and competitions to maintain the attention of users 8. Presents the opportunity for consumers to earn rewards.
Social Network Gaming 2012
28 | P a g e
2.7 Conclusion - Thoughts and Opinions linking to project In respect to my findings, I set out to distinguish the importance of the social element within modern games. My research justified the relationship between integrating games within social platforms. In the process of my investigation, I discovered various details that linked back to the initial aims of my project. The notion of an interactive system is strongly implicated within my projects design, a concept that I adopted from the key elements of social network gaming. Another point that links to my purposed system involves the concept of user demand. Implementing a system that offers an exclusive service is a difficult task, seeing as how the preferences of consumers can be very distinct. Therefore my design was proposed around offering a unique service that would present a degree of long term requirement.
Social Network Gaming 2012
29 | P a g e
Chapter 3: Requirements Analysis
3.1 Introduction
In order to build and develop my system, I must firstly initialise the resources that
are required. In this section I will be discussing the type of system I plan to
construct, in addition to which platforms will serve as my systems foundation. I
will also be discussing the techniques I’ve chosen for structuring my design, while
addressing the target requirements. Other elements include whether or not my
systems proposal exhibits feasible evidence to implement. I will also be obligated
to demonstrate the ethical factors that relate to my systems implementation.
3.2 The System Proposal
The system I plan to implement incorporates two specific ideals that relate to
social network gaming. The first concept assesses the utilization of interactive
social network characteristics, by regarding the importance of user
communication. Subsequently my project is focused around a modern social
game that is completely independent to social networking platforms. Due to this, I
have chosen to integrate a registry system based around the popular MMORPG
World of Warcraft. The purpose of my application is to record any willingly given
data about a user’s social credentials and Word of Warcraft gaming profile.
By incorporating this information, my system will enable registered clients to
generate user enquires by providing a character name. The system will return any
results that relative to the search in the form of a summary list. Once a user has
found a desired profile, they can employ the provided information to seek out the
enquired user. Additional services will include users being able to register existing
guilds and their guild masters into the system. The initial aim of my services is to
create a social environment where users are granted access to an open source of
information.
This concept is very reminiscent of typical social networks, yet it focuses on
individuals who are active World of Warcraft subscribers. Once the system is
complete, I plan to situate it as an open service exclusively for Facebook users.
Social Network Gaming 2012
30 | P a g e
3.3 What are the System Requirements?
The primary requirements of the system are identified through a series of distinct
guidelines. These factors test a system’s integrity through seven fundamental
concepts. As my application involves the interests of a consumer, my
requirements must be fit to satisfy the following criteria:
Operational distribution or deployment: Where will the system be used?
Mission profile or scenario: How will the system accomplish its mission objective?
Performance and related parameters: What are the critical system parameters to accomplish the mission?
Utilization environments: How are the various system components to be used?
Effectiveness requirements: How effective or efficient must the system be in performing its mission?
Operational life cycle: How long will the system be in use by the user?
Environment: What environments will the system be expected to operate in an effective manner? [Wikipedia, 2012]
3.3.1 Operational Distribution
The platform I decide to choose as my system’s foundation will hold significant
influence to its credibility. Since my system is designed for operating within social
environments, it would be most practical to establish it within a social network.
After reviewing a variety of social platforms, it became apparent that the most
suitable platform for my system would be Facebook. My decision was justified
after figuring my application had much to gain from Facebook’s thriving social
gaming environment.
Facebook is known for providing a compelling array of services to its user base.
This includes an exclusive developer’s society that trains and encourages potential
developers by providing them with an archive of resources. Their forums offered
much valued insight into the process of developing and publishing my own social
applications. As part of its service, the society provides an integrated system that
where registered users can manually upload and advertise their own products
independently.
Social Network Gaming 2012
31 | P a g e
3.3.2 Mission Profile
The system’s purpose derives from the activity it’s received from potential users
in need of its services. The more users that are register on my application,
provides for a more accurate service. In order for my system to satisfy it purpose,
it would require time to collect the data necessary. Only then would it reach its
full potential as a registry system.
3.3.3 System Performance Parameters
The performance parameters for my system concerns a set of object classes that
will define the order in which operations are to take place. These objects make up
the instances that will be integrated into my systems infrastructure. Each instance
will be subject to its own string of operations, while the overall design will include
connections between each of these procedures. My parameters include the
following object classes:
Users
Characters
Guild
Guild Master
Server
Last Login
Every object will be introduced into the system as a class table containing a set of
attributes and relationships. Each table will consist of a unique primary key, in
addition to a range of local attributes and potential foreign keys.
3.3.4 Utilization Environments
The correct utilization of my components is an essential concept that every user
must understand while operating the system. There is a regimented procedure of
tasks that needs to be considered as my service follows a certain principle of
connected processes. When a user first logs into the system, they’re offered a
number of features that contain a degree of dependency on the order their
employed. The primary goals of my components are to carry out two specific
forms of processes. As my system involves the registration and enquiring of data,
each component will be utilized for the retrieval or recording of information.
Additional components will concentrate on system navigation and page status.
Social Network Gaming 2012
32 | P a g e
3.3.5 Effectiveness Requirements
My system is capable of performing a standard level of operations without
encountering much error. However the system may encounter several issues
concerning the authentication of specific data. Another concern would be the
possibility of broken links, since users must supply a form of online identification.
Essentially the system is required to offer users with a valid and consistent
service, although the margin for its efficiency is a matter of perspective. While
users can still employ the service with regards to potential shortcomings, its
ability to performing system tasks is justified.
3.3.6 Operational Life Cycle
The target life cycle for my application is focused around providing users with a
long term service. However its estimated period of active use will depend on how
long it stays in favour amongst users. The length to which the system remains
operational can also be subject to a range of factors. One possibility may include
the introduction of a similar application with more appealing services.
Additionally the system may experience a string of technical issues, making it
inaccessible for an unknown period of time.
3.3.7 System Environment
A social network provides a very active and dynamic environment, one that’s
compulsory for an application such as mine to succeed. In order for my system to
achieve its fullest potential, it must be placed within a network that offers the
appropriate audience for my application’s services.
3.4 What are the Ethical Implications?
When implanting a system, there are a degree of ethical implications that need to
be considered. To ensure the authenticity of my systems purposes, I must
conduct a clear analysis of any possible causes for concern. Since my application
records and stores personal information, it would be necessary to address any
implications that would arise regarding the privacy and employment of user data.
The integrity of system information is another issue that needs to be discussed,
Social Network Gaming 2012
33 | P a g e
seeing as how the application is open to anyone who wishes to register. As my
service has only a limited level of data authentication, won’t be able to tell if
registered data is reliable. The overall security of the system is another concept
that concerns not only its users but also the system administrator. What
precautions I am taking to prevent compromise? How will my processes integrate
a secure service? The issue of security has many implications.
3.4.1 Privacy of User data
My application is open to any user who wishes to freely submit their personal
information, although like any system that stores user data it is important to
consider the issue of data privacy. The ability to control user information places
vast responsibility onto a system, as its allocated records will require a good level
of security. It’s no surprise that the majority of users are reluctant to giving out
personal information over the internet, naturally they deserve the assurance that
their personal information is safe and secure. In accordance with the Data
protection act 1998 and other relevant data privacy laws, my application will
strive to promote the privacy of interactive computer service users by frequent
regulations of my service.
3.4.2 Reliability of Information
A successful system will strive to provide its users with only the most reliable data
it can gather, however the consistency of a service can wane through being
supplied with unreliable information. As my service runs an independent system,
it lacks the ability to validate whether a certain user is the legitimate owner of an
existing World of Warcraft character. This presents quite a problem considering
the possibility that anyone can claim ownership for character through my
registration service. Alternatively I could request access to the official World of
Warcraft player archives, yet that would be a breach of customer confidentiality
on the behalf of Blizzard entertainment.
Essentially these factors demonstrate that the integrity of my system data is open
to comprise, however as I have access to the records I can correct any misleading
information that becomes an issue at a later stage.
Social Network Gaming 2012
34 | P a g e
3.4.3 System Security
Every system requires a distinct level of security to be considered a viable
interactive service. In regards to a registry system, there are several aspects
where the safety of user information can be discussed. Since my application
involves the use of SQL queries, its process of managing data is under risk of
compromise. Various developers are unaware to the issues that can arise from
the tampering of SQL queries. It is a common misconception that an SQL query
holds no immediate threat to data security, yet that is not the case. This only
implies that SQL queries avoid admission controls, thus circumventing any
authenticating or verifications.
In these situations it is very typical for hackers to employ direct SQL command
injection to manipulate existing SQL operations to access concealed information.
This process can also be used for overriding current records or even issuing
unauthorised system commands through the host server. One possible solution
for preventing the risk of SQL injection is to implement Escaping. This technique
involves escaping characters that hold any special meaning within your SQL script.
In effect every system must undertake a range of security checks before it is
deemed secure. However with new forms of spyware being introduced on a daily
basis, it is a working process to keep interactive systems updated.
3.5 Analysis Conclusion
I realise that at this point my products capabilities for success seem rather
ambitious, yet it’s primarily focus has been to investigate and document what I
have learned about social network gaming. It is quite obvious that my system
requires a great deal of development to be criticised on a professional level.
However I do believe that my product presents a considerable degree of
marketable value, with only the promise of future opportunity to continue its
expansion.
Social Network Gaming 2012
35 | P a g e
Chapter 4: System Design
4.1 Introduction
In accordance to my requirements analysis, I will be documenting the steps I took
to design my systems infrastructure. The process of designing an interactive
system involves a series of connected phases. Each phase will discuss the unique
array of techniques I have integrated to design my system components. To begin
this section I will be reviewing the elements which form the basis of my
application. This includes designing the object classes, defining their operations
and identifying any relationships or dependencies. I will also be demonstrating
various modelling techniques I have incorporated, to provide a well mapped
visual represented of how my system operates.
My first model consists of an entity relationship diagram which displays entity
associations, in addition to a use case diagram that defines interactions between
a potential actor and the system. I have also included a sequence diagram to
illustrate the order in which my system operations take place. Another aspect to
my design examines the possible conditions for validation. To present a standard
level of service, my application must contain a consistent degree of integrity
within its processes. By integrating these validation procedures, users will gain a
list of guidelines that will initialise the correct order of submission for required
data.
The final section of my design will dispute the structure of my character search
reports, detailing how I plan to arrange regard the components that will be
display along with any queried data. Visual factors and general aesthetics will also
be covered, as the appearance of an application can invoke a great deal of
influence.
4.2 Application Structure
Like any registry system, there are allocated spaces of memory where records are
usually stored. When considering a database we must understand that each table
may store a unique variant of data depending on its content. In order to define
the contents of a table, we must refer to attributes to initialise the purpose of
Social Network Gaming 2012
36 | P a g e
that data in addition to its format. Given that my application will be recording
user data, it will require a set of object classes that will store records under the
appropriate data types. Since these classes contain their own string of operations,
the methods they will encompass throughout each stage of the system will
require defining. Taking into consideration that my system will revolve around an
object-oriented database, it would also be necessary to identify any potential
associations between my object classes.
4.2.1 Designing the Object Classes
In section 3.3.3 of my requirements analysis, I briefly reviewed the system
performance parameters for my application with reference to the five object
classes that make up my system. In this section I plan to describe my classes in
more depth, illustrating the stages I’ve taken to normalize unstructured data
types into uniquely ordered objects.
Object Class Normalisation
The first step to designing my applications structure involves process of
normalising attributes into defined classes. Each object class must include a range
of attributes to accommodate the essential data required for the system to fulfil
its purpose. The most practical approach to initialising attributes would be to
declare the most relevant class identifiers. However since the system will deal
with queries that may refer to different tables, it is vital that my object classes
include primary and foreign keys to maintain data integrity. Below I demonstrate
the procedure of normalisation for my object classes.
Table Legend:
Primary Key: Underlined, Foreign Key: Asterix, Candidate Key: Bold
1NF
Users Characters User ID Username Forename Surname Password
Character ID Username* Character Name Server Name Class
Social Network Gaming 2012
37 | P a g e
Gender Email Date of Birth Facebook Last Login ID Last Login Current Login
Race Level Primary Talents Secondary Talents Faction Primary Profession Secondary Profession Armoury Guild ID Guild Name Guild Level Guild Type GM ID Server ID Server Type Region
Table 1: 1NF (First Normal Form)
2NF
Users Character Guild Guild Master User ID Username Forename Surname Password Gender Email Date of Birth Facebook Last Login ID Last Login Current Login
Character ID Username* Character Name Server Name Guild ID* Class Race Level Primary Talents Secondary Talents Faction Primary Profession Secondary Profession Armoury GM ID* Server ID Server Type Region
Guild ID Guild Name Guild Level Guild Type Server Name Server ID GM ID*
GM ID Character ID* Character Name Guild ID* Server Name Server ID
Table 2: 2NF (Second Normal Form)
Social Network Gaming 2012
38 | P a g e
3NF Users Character Guild Guild Master Server Last Login
User ID Username Forename Surname Password Gender Email Date of Birth Facebook
Character ID Username* Character Name Server Name Guild Name Class Race Level Primary Talents Secondary Talents Faction Primary Profession Secondary Profession Armoury
Guild ID Guild Name Guild Level Guild Type GM ID Server Name Server ID*
GM ID Character ID* Character Name Guild ID Server Name Server ID*
Server ID Server Name Server Type Region
Last Login ID User ID* Last Login Current Login
Table 3: 3NF (Third Normal Form)
4.2.2 Defining Object Methods
Like any application my service provides its users with the ability to perform a
variety of tasks. However an operation must be called for a specific process
depending on what action is taking place. To define my operations, I must create
object methods that will extract all the essential data required by my system. This
will include the initialisation of what processes are to take place, in addition to
how they will be defined. To establish which object methods are necessary, I must
classify to what information needs to be recorded within the database.
First and foremost each user must register to gain access to the application’s
primary interface. Users also have the option of providing data regarding their
game characters, guilds and guild masters. A static object method that records
and updates the last logins for user accounts will also be included. This
accumulates a total of seven operations, each recording a specific set of
information for their relative object tables. Provided below is a listing of each
object method with a summary of their respective parameters.
Social Network Gaming 2012
39 | P a g e
Register User (Username, Forename, Surname, Password, Confirm
Password, Email Address, Confirm Email Address, Facebook Link).
Register Character (Character Name, Faction, Race, Class, Level, Region,
Primary Talents, Secondary Talents, Primary Professions, Secondary
Professions, Armoury).
Register Guild (Guild Name, Guild Type, Guild Level, Region, Server).
Assign Guild Master (Character Name, Guild Name, Region, Server).
Search Character (Character Name).
Record Login (Last Login ID, User ID, Current Login).
Update Last Login (Last Login ID, User ID, Last Login, Current Login).
In each case, these methods act as the functional medium between a user and the
database. Any data that the methods acquire is validated and stored within the
object tables for later enquiry. It should also be noted that the functionality of
these operations can be affect by the order of their execution. Typically the first
method that the service initiates will be Register User. Without undergoing this
process, the system won’t allow users access to the rest of the service features
that integrate the object methods.
4.2.3 Object Relationships and Dependencies
When developing a relational database, a big portion of the design will involve
allocating your data elements into tables connected by a set of references. When
database becomes operational, it will be the task of my object relationships to
string together my system records in a meaningful manner. For example, the
record of a registered character is worthless without knowing the details of the
user that it belongs to. Yet it would be impractical to store these values within the
same table. The more convenient method would be to store character and user
data in two separate tables, while also establishing a relationship that will refer to
both tables through a relative attribute. Subsequently, relationships will identify
each character record with its corresponding user. Considering that normalized
tables make up the foundation of relational databases, it is only prudent to
acknowledge object relationships as their standard cornerstone. Due to these
points, my objects include a variety of relationships to support data integrity. The
following workings will illustrate the connections between the key attributes that
define my object relationships. These associations are initialised in regards to the
data that links the concerned tables together.
Social Network Gaming 2012
40 | P a g e
User Table relationships
(User Table) Username -> (Character Table) Username
(User Table) User ID -> (Last Login Table) User ID
Character Table relationships
(Character Table) Character ID -> (Guild Master Table) Character ID
(Character Table) Username -> (User Table) Username
(Character Table) Guild ID -> (Guild Table) Guild ID
Guild Table relationships
(Guild Table) Guild ID -> (Guild Master Table) Guild ID
(Guild Table) Guild ID -> (Character Table) Guild ID
(Guild Table) GM ID -> (Guild Master Table) GM ID
(Guild Table) Server ID -> (Server Table) Server ID
Guild Master Table relationships
(Guild Master Table) GM ID -> (Guild Table) GM ID
(Guild Master Table) Character ID -> (Character Table) Character ID
(Guild Master Table) Guild ID -> (Guild Table) Guild ID
(Guild Master Table) Server ID -> (Server Table) Server ID
Server Table relationships
(Server Table) Server ID -> (Guild Master Table) Server ID
(Server Table) Server ID -> (Guild Table) Server ID
Last Login Table relationships
(Last Login Table) User ID -> (User Table) User ID
Social Network Gaming 2012
41 | P a g e
These relationships show the single connections between my object tables, with each link being subject to a specific
dependency. Additionally an overall view of my relationships would comprise of the following design:
Figure 11: Object Relationship Diagram
Social Network Gaming 2012
42 | P a g e
4.3 System Modelling Techniques
In order to provide a conceptual demonstration of how my system is to be
structured, it would necessary to depict my components through a range of
modelling techniques. The significance of these models facilitates a variety of
design benefits, each of which provides a unique illustration for an explicit level of
planning. Other factors that encourage the use of system modelling include:
Reducing the number of potential errors within final source code.
Follows an orderly process to organising and identify your system.
Branches options in a logical manner providing early opportunity to
discover more preferable alternatives.
Provides a rational representation of the development and maintenance
process with regards to the original system requirements.
In accordance to my design plan, I will be incorporating three specific modelling
techniques to define my systems configuration. These models include ERDs, use
case and sequence diagrams.
4.3.1 Entity Relationship Diagram Representation
The purpose of an entity relationship diagram is to provide a graphical
representation of relationships between system entities. The three main aspects
of an entity relationship diagram include:
The initial entity which can count an as object, person, location or occasion
for which information is gathered.
The relationship that identifies the association between those entities. This
concept defines whether specific entities share a common reference.
Finally the cardinality involves the number of associations that an entity is
subjected to. Typically relationships provide three forms of cardinality, one
to one, one to many or many to many depending on the association.
I chose to use an ERD in order to classify the relationships between my entities
more distinctly. Since my database records information about a game with many
relative elements, I made sure to initialise any potential relationships shared
between my entities.
Social Network Gaming 2012
43 | P a g e
Entity Relationship Diagram
Figure 12: Entity Relationship Diagram
Social Network Gaming 2012
44 | P a g e
4.3.2 Use Case Diagram Representation
Use case diagrams are primarily used for the classification, explanation and
organisation of systems. The initial purpose of a use case is to identify the various
sequences of interaction that occur between a user and a system. These
interactions usually lead to a specific goal that must be satisfied in order for the
sequence to terminate. Essentially use cases should only display system activities
that contain relative significance to users. The diagram itself consist of a collection
of elements, they can be used in conjunction to create larger scales of sequences.
These elements include an actor, use case, association and text, each of which
being required to make up the primary diagram.
Certain elements that use cases integrate include:
Systematizes the operational requirements.
Exemplifies the purpose of an actor’s interaction with the system.
Documents scenarios that take place as connected processes, showing all
stages of activity until a specific goal has been reached.
Demonstrates a primary course of action, with the addition of alternate
tasks that can be performed. These are recognised as exceptional flows of
events, or secondary courses of action.
Acts on a collection of layers, where uses cases can adopt each other’s functionality.
My reasons for applying a use case to my design derive from its vast
representational capabilities. Due to the large number of tasks that take place
within my application, I concluded that a use case diagram would offer an
exceptional illustration of my system activities. Taking into account that my
system activities contained many connected processes, I began to map out each
use case with regards to their associations. The diagram depicts two actors, a
user, and the system administrator.
In reference to my diagram, a user can undertake all the standard system
activities. Alternatively the administrator also has access to the same services,
with a greater level of authority. It is the administrator’s responsibility to perform
routine system maintenance, with the addition of applying any necessary
updates.
Social Network Gaming 2012
45 | P a g e
User Use Case Diagram
Figure 13: User Use Case Diagram
Social Network Gaming 2012
46 | P a g e
Administrator Use Case Diagram
Figure 14: Administrator Use Case Diagram
4.3.3 Sequence Diagram Representation
Sequence diagrams illustrate the process of interaction between relative objects
within a particular system or environment. Object collaboration is expressed
through the representation of time based sequences, drawing towards a specific
goal or purpose. These diagrams provide a fundamental overview of process
driven development, detailing the essential concepts for system analysis and
design. The diagram incorporates a series of role classifiers, each defining an
object within the process. Communication between objects is expressed through
a sequence of action methods, which depict the flow of interaction. Available
actions include call, return, send, create and destroy processes. The order of
interaction follows a vertical path, working from top to bottom until all operations
are completed.
Sequence diagrams present considerable benefit for process modelling, some of
its most useful features include:
Complex connections involving relative components.
Can be used as a base for elaborating use cases.
Validates the architecture and logic of system components based on a level
of scenarios.
Social Network Gaming 2012
47 | P a g e
Presents rational illustrations of system procedures, defining the
interactions that transpire between objects.
Due to the multitude of processes that occur within my application, I opted for a
suitable modelling scheme that would best illustrate my collaborating objects. As
each process involves a distinct order of execution, it became necessary to
express the operations through individual diagrams. This includes user
registration, character registration, character search, guild registration, guild
master registration and last login establishment. Leading onto my diagrams, I
begin by identifying the initial steps involved for each operation. The sequences
begin with a user who initiates an action towards other objects. This causes a
chain reaction where other objects begin to institute their own connections to
continue the flow of interaction.
However in order to understand how each operation is constituted, we must
firstly identify the order of each process.
Character Registration Sequence
The sequence is prompted as the user requests to register a character from the
WoW beacon home page. The application then redirects the user to the character
registration interface. The user then forwards another action by registering their
character details. Once submitted, the application transmits the data into the
system database. The information is archived while a verification check is sent
back to the application. The user is then redirected to a confirmation page,
informing them that their character was successfully registered onto the system.
From this point the user can choose to register another character, or return to the
application home page.
User Registration Sequence
The process begins when a user requests to register their details from the WoW
beacon login interface. Users are then redirected to a registration page where
they create and submit a profile. The profile data is then sent to the system
database for verification. Once the verification is complete, the profile is allocated
following a confirmation of the record. The user is then redirected to a
Social Network Gaming 2012
48 | P a g e
confirmation page, informing them that their profile was successfully registered
onto the system. Users can then navigate back to the login page and begin to
utilize the application with their new account.
Last Login Sequence
The first time a user logs into the system, the time and date is verified within the
database as their current login. This process is modified slightly following any
subsequent logins. Any new logins are confirmed and forwarded to the system
database, where they replace the previous current login. The preceding data is
then shifted and recorded as the user’s last login. Once a last login become
available, the application retrieves and displays the data through the WoW
beacon home page.
Character Search Sequence
This process begins with a user requesting to utilize the character search service
from the WoW beacon home page. The user is then redirected to the character
search interface, where they are required to submit the name of the character
they wish to locate. Once the search is initiated, an enquiry is made and
forwarded to the system database. At which point the system records are
examined until the requested data has been recovered. After the search is
confirmed, users are redirected to a results page where the retrieved character
information will be displayed. Since each character is associated with a registered
user, the results page provides an option to view that user’s profile.
Following this sequence, the database acquires the requested data and navigates
to that user’s profile page. Here users are provided with that individual’s account
details, in addition to all the characters they have registered onto the system.
Guild Registration Sequence
This sequence is initiated once a user chooses to register a guild from the WoW
beacon home service list. They are then redirected to the guild registration page
where they must provide and submit their guild information. The data is then
verified by the database and allocated within the guild registry. A registration
Social Network Gaming 2012
49 | P a g e
check is then passed back to the application, which in turn redirects users to a
confirmation page. Here users are presented with a notice of approval for their
guild registration, at which point they can choose to register another guild or
return to the home page.
Guild Master Registration Sequence
To begin this operation, a user will request to register a guild master from the
WoW beacon home service list. This action will then lead them to the guild
master registration interface where they must initialize the requested
information. The details are then dispatched to the system database for
allocation, after which a registration check will be commissioned. Once approved,
the application will forward users to a confirmation page that acknowledges the
guild master as a registered entity. Users are then presented with the option to
reutilize the service or return to the home page.
Social Network Gaming 2012
50 | P a g e
Character Registration Sequence Diagram
Figure 15: Character Registration Sequence Diagram
Social Network Gaming 2012
51 | P a g e
User Registration Sequence Diagram
Figure 16: User Registration Sequence Diagram
Social Network Gaming 2012
52 | P a g e
Last Login Sequence Diagram
Figure 17: Last Login Sequence Diagram
Social Network Gaming 2012
53 | P a g e
Guild Registration Sequence Diagram
Figure 18: Guild Registration Sequence Diagram
Social Network Gaming 2012
54 | P a g e
Guild Master Registration Sequence Diagram
Figure 19: Guild Master Registration Sequence Diagram
Social Network Gaming 2012
55 | P a g e
4.4 Defining Validation Conditions
In order to supply the correct standard of information for my database, I must
ensure that my application institutes a specific degree of data validation into its
services. The integrity of a system asserts great significance towards its ability to
function sufficiently. This includes regulating various system components to
maintain the intended format of data collection. Due these reasons, my
operations will support a set of validation conditions to warrant the proper order
for data input. In the following sections I will be discussing the validation
procedures for each phase of my application. This will include the conditioning of
each input field, with respect to any dependencies that must be satisfied
beforehand.
4.4.1 User Registration Validation
When a user first registers onto the system, they will be expected to provide a
range of personal information. As each input corresponds to a specific attribute
within the user registry table, it institutes great precedence for the proper
sequence of submission. This enlists several conditional factors that must be met
before a user is successfully registered. The nature of a condition can vary
depending on what is being verified, yet it’s possible for users to prompt more
than one form of validation at a time. User registration conditional factors
include:
Providing matching passwords.
Providing matching emails.
Selection of an unregistered username.
Completion of all input fields.
These conditions follow a specific order for execution, while also incorporating
elements for alternate outcomes. An additional point would be that three of
these factors involve local conditioning, while one requires verification from the
system database.
The following table displays all possible validation outcomes for the user
registration process:
Social Network Gaming 2012
56 | P a g e
Table 4: (User registration validation table)
Val1 = Fields not complete
Val2 = Passwords don’t match
Val3 = Emails don’t match
Val4 = Username is taken
Error message 1 = Please ensure you have completed all the fields before
submitting!
Error message 2 = Your passwords do not match!
Error message 3 = Your emails do not match!
Error message 4 = The username “Username Variable” is already in use, please
choose another.
4.4.2 Character Registration Validation
The character registration process exhibits a considerably large variety of input
fields, although its validation margin is particularly small. The operation follows a
similar form of conditioning as demonstrated within the user registration process.
The only significance is that the character registration conditions relate
exclusively to character data. The validation check involves two specific forms of
verification, one local and one external. The conditional factors involve:
Registering a character that hasn’t been claimed on a specific server.
Ensuring that all the input fields are fully completed.
Val1 Val2 Val3 Val4 Val2 & Val3 Error message 1
Error message 2
Error message 3
Error message 4
Social Network Gaming 2012
57 | P a g e
The following table displays all possible validation outcomes for the character
registration process:
Val1 Val2 Error message 1
Error message 2
Table 5: (Character registration validation table)
Val1 = Fields not complete
Val2 = Character already registered
Error message 1 = Please ensure you have completed all the fields before
submitting!
Error message 2 = The character name “Character name variable” has already
been registered on “Server name variable”!
4.4.3 Character Search Validation
Acting as the primary service for my application, the character search feature
must also include a degree of validation. Although the process involves a large
collection of sequences, it only integrates a small level of authentication.
Considering that the search feature is the only system process that doesn’t record
data, it still requires a measure of conditioning for valid character enquiries. The
character search procedure is justified through a local and external verification,
each providing its own validation for the same subject of input. They include:
The name of the character must be provided.
The character must exist within the system.
The following table displays all possible validation outcomes for the character
search process:
Val1 Val2
Error message 1
Error message 2
Table 6: (Character search validation table)
Social Network Gaming 2012
58 | P a g e
Val1 = Character name not provided.
Val2 = Character does not exist.
Error message 1 = You must enter a character name!
Error message 2 = “Character name variable” is not a registered character on
WoW Beacon
4.4.4 Guild Registration Validation
The guild registration process introduces a select number of inputs that contain
their own individual conditioning factors. Due to the moderate volume of
requested criteria, the process can accommodate for a broader range of
verification. Although guilds don’t require any establishing factors, they do
constitute the basis for another object to exist. The guild registration process also
integrates the largest set of local conditions with seven possible validating
outcomes. However the employment of external verification is also necessary, as
it will justify whether a user will be overriding an existing record. The conditional
factors for guild registration involve these fundamental points:
The name of a guild must be provided.
A guild type must be initialised.
A region must be selected.
The guild must not already be registered within the system.
The following table displays all possible validation outcomes for the character
search process:
Table 7: (Guild registration validation table)
Val1 Val2 Val3 Val4 Val1 & Val2 Val1 & Val3 Val 2 & Val3 Val1 & Val2 & Val3
Error message 1
Error message 2
Error message 3
Error message 4
Social Network Gaming 2012
59 | P a g e
Val1 = Guild name not provided.
Val2 = Guild type not initialised.
Val3 = Region not selected.
Val4 = Guild already exists within the system.
Error message 1 = You must enter a guild name!
Error message 2 = You must select a guild type!
Error message 3 = You must select a region!
Error message 4 = The guild "Guild name variable" has already been registered on
"Server name variable".
4.4.5 Guild Master Registration Validation
When a users wishes to register a guild master, there are two specific establishing
factors that need to be satisfied beforehand. Initially guild masters are subclasses
of the character object, therefore sharing a direct dependency. This implicates
that without declaring a character instance, the guild master object is redundant.
Guild masters also share an additional dependency with the guild object, since a
guild master cannot exist without a guild. Essentially these two objects define the
guild master class through a collection of inherited properties. This concept is
further emphasised by the conditional factors of the guild master registration
process.
Since the guild master class shares two direct dependencies, it demonstrates a
substantial degree of referential integrity. These elements pay much benefit to
external conditioning of the registration process. This implies that each
dependency supports a relative form of verification for each guild master instance
within the database. The primary factors for these conditions comprise of the
following points:
A specific character must exist within the server.
A specific guild must exist within the server.
A region must be selected.
All input fields must be fully completed.
Registering a guild master who is not already assigned to the same guild
and realm.
Social Network Gaming 2012
60 | P a g e
Selecting a guild and realm that are not already assigned to a specific guild master.
The following table displays all possible validation outcomes for the character search process:
Table 8: (Guild master registration validation table)
Val1 = The guild and server are already assigned a guild master.
Val2 = The character does not exist on the server.
Val3 = The guild does not exist on the server.
Val4 = The character is already registered as a guild master.
Val5 = The character and guild do not exist on the server.
Val6 = All input fields must be fully completed
Val1 Val2 Val3 Val4 Val5 Val6 Error message 1
Error message 2
Error message 3
Error message 4
Error message 5
Error message 6
Social Network Gaming 2012
61 | P a g e
Error message 1 = The guild "Guild name variable" on "Server name variable"
already has a guildmaster!
Error message 2 = The character "Character name variable" does not exist on
"Server name variable"!
Error message 3 = The guild "Guild name variable" does not exist on the server
"Server name variable"!
Error message 4 = The character "Character name variable” is already registered
as a guildmaster on "Server name variable"!
Error message 5 = The character "Character name variable" and guild "Guild name
variable" do not exist on "Server name variable"!
Error message 6 = The character "Character name variable" and guild "Guild name
variable" do not exist on "Server name variable"!
4.4.6 User Login Validation
The user login involves a simple authentication process by the institution of a
username and password prompt. The initial operation involves a call to the
system database to verify the provided login details. If the login details are
confirmed, users are granted access into the application home page. However if
the system does not recognise the supplied information, the login attempt is
denied and a message is displayed to inform the user of the error. The user login
will constitute the following requirements:
A username must be provided for verification.
A password must be provided for verification.
This process involves only one form of external conditioning, which can be
expressed in this format:
1. Input username & password -> submit login details.
2. login_check_query = SELECT everything FROM user_table WHERE
user_table (username) and user_table (password) = username & password.
3. The result = (login_check_query).
4. While row is equal to (the result) -> Retrieve row and change flag to true.
5. If (flag is true) -> Grant access to home page.
6. Else if (flag is still false) -> Display error message.
Social Network Gaming 2012
62 | P a g e
4.5 Design Conclusion
After engaging this chapter, I can conclude that certain forms of validation can
vastly benefit the structural integrity of a system. While my application only
integrates a modest level of validation, I hope to continue experimenting with
more advanced methods of data verification. I also discovered the significance of
utilizing modelling techniques to define abstract layers of system design. I found it
considerably useful, as I was able to illustrate and review my system processes in
a resourceful manner. The only aspect that I felt was lacking in my design would
be the aesthetic outlook on my application, although I do plan to engage this
aspect of design with high priority in future projects.
Social Network Gaming 2012
63 | P a g e
Chapter 5: Implementation and Testing
5.1 Introduction
Now that I have reviewed my systems structural design, I can confidently
commence documentation of my implementation and testing phase. While my
previous chapters dealt with the conceptual side of my application, this section
will concern a more practical take on my system’s processes. In order to support a
well composed breakdown of my implementation stage, I will be structuring this
segment through a series of explicit topics. I plan to begin by demonstrating the
process of building my database object tables, integrating their declared
attributes and associations. There are also several predefined system factors that
need to be established. This includes the process of connecting my application to
the system database, in addition to configuring a string of preset methods.
I also plan to discuss implementation of my user interface components, detailing
the various steps taken to constitute their initial composition. This will include the
incorporation of additional system elements such as navigation and page status
features. Additional themes will illustrate the testing procedure for each
operation sequence, providing annotation for the standard order of processing.
5.2 Creating the Database
Following the normalization process applied in section 4.2.1, I was provided with
a finalized set of object tables that were ready for integration. Yet to be able to
incorporate my tables, I was required to initiate the creation of a database. After
experimenting with a number of administration tools, I decided to opt for a
program known as phpMyAdmin. My reasons for choosing this specific
application derived from its ability to create and manage records in a resourceful
manner. Once I had established the frame for my database, I turned my attention
to begin construction of my object tables.
In sections 5.2.1 and 5.2.2, I will be illustrating the procedures necessary to
compose my tables into the database. This will include the process of declaring
the data types, instigating field values, in addition to asserting table indexes.
Subsequently the method for initializing class relationships will also be
demonstrated.
Social Network Gaming 2012
64 | P a g e
Figure 20: phpMyAdmin database creation interface
5.2.1 Integrating Object Tables
The order of integration begins with the initialisation of my object table names.
Following a string of complications with previous PHP code, I chose to make a
habit of including underscores in between my table names. The diagram below
displays the table creation interface for phpMyAdmin. If you look closely you will
notice a collection of input fields that define the table properties.
Figure 21: phpMyAdmin table creation interface
Social Network Gaming 2012
65 | P a g e
There are eighteen properties in total, some of which correspond to specific table
identifiers. The creation of a table doesn’t necessarily require the initialisation of
each property, although there are several fundamental inputs that need to be
established. They include the column name, attribute type and column
length/value, with the exception of the index property if defining a table key. The
interface also provides an option for the insertion of additional columns as
indicated in the following diagram:
Figure 22: phpMyAdmin Column Modifier
After accommodating all the essential fields, I can finalize the table by submitting
the save option to create its structure. This view can be selected from the tab of
options located on the phpMyAdmin interface once the table is formed. The
structure tab provides a detailed overview of the table properties with options to
edit or drop a specific column. The diagram below illustrates the structural view
of my character table. You will notice that each attribute contains a detailed
overview of their respective properties:
Figure 23: phpMyAdmin Table Structural View
Social Network Gaming 2012
66 | P a g e
5.2.2 Connecting Class Relationships
There are two specific methods for instituting class relationships within
phpMyAdmin, yet I will only be examining the one I found most suitable to follow.
Any table created within phpMyAdmin will automatically inherit an option known
as its relational view. This feature can be accessed through the structural tab
interface, located at the bottom left portion of the interface as indicated below:
Figure 24: phpMyAdmin Relational View Feature
The interface for the relational view features three units that initialise the column
name, internal relation and foreign key restraint of a table. Depending on the set
of indexes a table may contain, a specific number of foreign key restraints will
become available. To establish an internal relation, a relative index must be
selected from the collection of possible associations. The same concept applies to
the foreign key constraint feature, although its initialisation removes the need for
an internal relation.
The diagram below demonstrates the relational view for my guild master object
table. As you can see it shares two internal relations with my guild and server
tables, in additional to a foreign key constraint association with my character
table:
Social Network Gaming 2012
67 | P a g e
Figure 25: phpMyAdmin Guild Master Table Relational View
5.3 Predefined System Factors
There are certain system factors that require defining before they can be properly
introduced into the application. Since a majority of my features are design to
enquire system records, it would be necessary to ensure that a stable database
connection is established and maintained between each operation. Other
elements will involve the configuration of preset system methods in order for the
application can operate as intended. Sections 5.3.1 and 5.3.2 will further
elaborate on these concepts to provide a clear evaluation of their significance.
5.3.1 Establishing Database Connection
As mentioned in the previous segment, the majority of application processes
involve vast measures of interaction with the system database. This notion
institutes a substantial degree of priority on the connection shared between the
two instances. The procedure for establishment involves a collection of
authenticating values that are processed by an integrated MySQL connection
method.
The following illustration depicts the standard MySQL connection sequence for
establishing the link between my application and database:
Social Network Gaming 2012
68 | P a g e
Figure 26: MySQL Database Connection Sequence
5.3.2 Configuring Presets
Most systems include a string of start up procedures that must be executed
before they can begin to operate in their instructed manner. This concept is been
influenced into my application through a script of preset methods. The initial goal
of my presets is to launch all the fundamental operations that are not defined
through runtime processes. Some of these presets include:
Server list generation.
Last login display message.
Establishing database connection.
These preset methods are defined by the following PHP script:
Server List Generation (EU & US)
function ServerValuesUS()
{
$SQL2="SELECT * FROM server WHERE region = 'US'";
$result2 = mysql_query($SQL2);
while($row2 = mysql_fetch_array($result2))
{
Social Network Gaming 2012
69 | P a g e
extract($row2);
$Server_US .="<option value='$Server_Name'>$Server_Name</option>";
}
return $Server_US;
}
Last Login Display Message (Get method)
function get_last_login($id)
{
$sql3 = "SELECT Last_Login FROM last_login WHERE User_ID = '$id'";
$result3 = mysql_query($sql3);
while($row = mysql_fetch_array($result3))
{
extract($row);
}
if ($Last_Login=="0000-00-00 00:00:00")
return "Not Available";
else
return $Last_Login;
}
Last Login Display Message (Record method)
function record_last_login($userid)
{
$CurrentDate = date('Y-m-d H:i:s');
$sql = "SELECT * FROM last_login WHERE User_ID = '$userid'"; // to identify
previous logged in record
$result = mysql_query($sql);
$num=mysql_num_rows($result);
if ($num==0)
{
$SQL2 = "INSERT INTO last_login (User_ID, Current_Login) VALUES ('$userid',
'$CurrentDate')";
Social Network Gaming 2012
70 | P a g e
$result2 = mysql_query($SQL2);
}
else if ($num==1)
{
while($row = mysql_fetch_array($result))
{
extract($row);
}
$SQL2 = "UPDATE last_login SET Last_Login='$Current_Login',
Current_Login='$CurrentDate' WHERE User_ID = '$userid'";
$result2 = mysql_query($SQL2);
}
}
5.4 Integration of User Interface
The construction of my application interface follows a base rule of structuring
each page component to accommodate my system processes. In order to
constitute an efficient collection of interfaces, I must ensure that each page
includes the correct capacity of elements as proposed in my initial design. The
interfaces must also include an explicit level of navigation for users to fully
experience each instance of the application. Structural proceedings for each
component will be summarised with respect to any key variables they contain.
In the following sections I will review the components adopted to implement my
pages, while providing subsequent illustrations for each interface.
5.4.1 WoW Beacon Registration
The implementation of my registration interface was carried out using the
notepad++ editor. The page comprises of thirteen input fields that correspond to
the attributes initialized within my user object table. They include user name, first
name, last name, gender, date of birth, password, password confirmation, email,
email confirmation, facebook link. There are also two buttons situated at the
Social Network Gaming 2012
71 | P a g e
bottom portion form, each catering a specific form of operation. The diagram
below exhibits the general form structure:
Figure 27: WoW Beacon User Registration Interface
The pages structural format provides a table foundation, which adopts each
correlating input field. There is also a specified range of inputs including text
boxes, radio buttons and select boxes. As each button supplies an individual form
of operation, they have been initialised by two different declaration types. One of
which is instantiated as an input of type submit, while the other consists of a type
button.
5.4.2 User Login
The user login interface is rather simple, as it includes a small degree of
implementation. The design contains a bold title specifying the purpose of the
page, in addition to two input fields followed by a set of two buttons. The input
fields verify the username and password parameters, while one button grants
navigation the user registration page with the other submits the login details.
The following illustration demonstrates the interface:
Social Network Gaming 2012
72 | P a g e
Figure 28: WoW Beacon User Login Interface
Since the page has a very small collection of components, its preliminary scripting
is rather short. The inputs include text boxes, submit and button types.
5.4.3 WoW Beacon Home
The WoW Beacon home page implements a large collection of buttons, as the
page acts as an anchor between the various application services. A very distinct
feature of the home page involves the integration of the facebook like button API.
The home page also displays the last login preset method, in addition to a page
status feature that exhibits the users account name. The following diagram
depicts the home page design:
Figure 29: WoW Beacon Home Interface
Social Network Gaming 2012
73 | P a g e
The scripting for the WoW Beacon home page institutes a specific set of tags to
accommodate the unique assortment of components. Although the majority of
the page units include buttons, the initial foundation of the interface follows a
complex scale of PHP code nesting.
5.4.4 Character Registration
The character registration interface contains almost the same design principles as
the user registration, with only a select degree of differences. Initially the form
integrates a standard collection of input fields, which include text boxes, radio
buttons and selection boxes. Additional components include submit and button
type inputs, including the user account page status feature. One significant aspect
of this interface would be that it incorporates JavaScript conditioning. This implies
that additional inputs become available following the selection of a specific field.
The interface design format is exhibited within the following diagram:
Figure 30: Character Registration Interface
Due to the integration of the JavaScript, various segments of the HTML code
reference JavaScript variables to establish the conditional factors.
Social Network Gaming 2012
74 | P a g e
5.4.5 Character Search
The character search contains two connected interfaces, each of which includes
their own specific design structure. This involves the initial character search
feature and its corresponding results page. The first interface integrates a small
detail of design components. They comprise of the form title, the user account
page status feature, a text box with the addition of two buttons.
The button components compose two specific operations, one of which initiates
the character search while the other navigates back to the home page. The first
interface is illustrated by the following diagram:
Figure 31: Character Search Interface
Due to the simple design of the character search interface, its primary scripting
contains very little implementation. The second interface caters a very distinct
structure for its concerned components. This is due to the summery table that
displays the results from the initial search. The page components consist of three
input elements, they include a submission button and two navigation tools.
The interface also implements the user account page status feature. An
illustration of the search summery page is provided in the below diagram:
Social Network Gaming 2012
75 | P a g e
Figure 32: Character Search Summery Interface
Social Network Gaming 2012
76 | P a g e
Since this page shares a processing link with a previous interface, its method calls
are utilized directly into its initial form design. Depending on the criteria for a
search, the results interface has been implemented to accommodate each
instance of a record within its structure.
5.4.6 Guild Registration
In respect to the previous interfaces, the guild registration page includes a very
similar range of components. The layout implements a range of field elements
that incorporate several input types. They include a text box for the guild name,
select boxes detailing the guild type and level, radio buttons to initialise the
guild’s region in addition to the user status page feature. There are also two
buttons situated at the bottom of the interface that trigger alternative
operations. The first being a submission tool for the page data inputs, while the
other provides navigation back to the home page.
One explicit aspect of this interface involves the integration of JavaScript
conditioning. The validation works as a flag by reading in the region value, then
displaying a list of available servers. The image below illustrates the page layout:
Figure 33: WoW Beacon Guild Registration Interface
Since the page consolidates a compact arrangement of inputs, it accommodates a
very practical and ordered structure for data insertion.
Social Network Gaming 2012
77 | P a g e
5.4.7 Assign Guild Master
The guild master registration interface institutes a small collection of input
features, each initialising a specific requirement for the process of submission.
Like most of its respective services, the guild master form is associated with a
standard page title to indicate its proposed purpose. Its components include text
boxes, select boxes and radio buttons. Another trait that is shared with the
previous interfaces includes the establishment of two button elements. The form
also includes a level of JavaScript validation, triggered by the same flagging
method used in the guild registration process. The following diagram
demonstrates the page design:
Figure 34: WoW Beacon Guild Master Registration Interface
It should also be noted that the page structure was constituted through the
specification of each guild master dependency. This derives from the need to
initialise both the character registration and the guild registration services before
being able to properly assign a guild master.
5.4.8 User Profile Page
As a resulting interface, the user profile page accumulates a vast range of form
elements. The page foundation is established through a series of titles, input
components, and user details in addition to a character summery table. The
layout begins with the page title that identifies the account of the user who is
being browsed. Situated below is the primary content of the interface which
includes the standard user account page status, in addition to an exclusive set of
Social Network Gaming 2012
78 | P a g e
user details. The data displayed in this section of the interface will vary depending
on the criteria of the initial search. The table element is a borrowed concept from
the character search summery interface. The only distinct difference is that it
states the characters that have been registered by that specific user. Additional
components include two navigational buttons, each initiating a specific
navigational operation. Here is an example of a user profile layout:
Figure 35: User Profile Interface
As you can see from the diagram, the interface consists of an adjustable template
that will alter to accommodate a range of enquired data.
5.5 Process and Component Testing
As a compulsory precaution that applies to all aspects of software development, a
system must be effectively tested to justify its original object. This concept
reviews the functional implications and whether they are performing as expected.
The importance of this process demands cause for application, not only as a
development protocol but also due to its influence on the initial product.
Software testing is considered an essential factor for determining system quality
assurance, with respect to aspects such as specification, design and coding.
It is also a known fact that software development incorporates great emphasis on
system testing, accumulating 40% of the initial productivity.
Social Network Gaming 2012
79 | P a g e
The main principles for system testing include:
Executing testing with the intention to discover potential errors.
Instituting a progressive test case that applies a high probability of finding
hidden errors.
Granting a practical solution for any conceived complications.
In the following sections I will be testing the consistency of my application
services, establishing the correct instruction for each process.
5.5.1 User Registration Process
The first process a user must undertake to gain system access involves the
registration of their profile details. At the user login there will be an option for
new users to navigate to a registration page, after which they can begin the
process of creating their user account. For the following segment I will be carrying
out an example registration, detailing each stage with illustrations of all the
possible procedural outcomes. In the following diagram you will notice that I have
included a list of credentials for the registration of a new user. Notice however
the two specific input fields confirm password and confirm email.
Figure 36: User Registration Data Input Format
Confirmation fields
Social Network Gaming 2012
80 | P a g e
This implies that when registering, a user must provide verification of both their
password and email in order for the process to execute successfully. Naturally if
either of these fields detects a mismatch, the following errors are displayed:
Figure 37: Incorrect Password Error
Figure 38: Incorrect Email Error
Social Network Gaming 2012
81 | P a g e
Figure 39: Incorrect Password & Email Errors
Although if a user fails to complete any of the requested data fields, another error
message will appear detailing that they need to complete all the input
requirements:
Figure 40: Incompletion of Input Fields Error
Social Network Gaming 2012
82 | P a g e
Additionally if a user chooses to list a username that has already been registered
in the database, the following error message will be displayed:
Figure 41: Username Already in Use Error
Alternatively if the user completes the registration without prompting any system
errors, they will be redirected to the following confirmation page:
Figure 42: User Registration Confirmation Page
Once registered, a record of the user’s details is allocated within the user table for
later enquiry:
Figure 43: Newly Allocated User Details
New record of user details
Social Network Gaming 2012
83 | P a g e
5.5.2 User Login Process
Once a user has successfully been registered onto the system, they can use their
username and password to log into the applications main interface. The process
however will involve the validation of the provided login details, in order to check
whether the user owns a genuine account. The following demonstration will test
integrity of the user login interface with regard to all possible circumstances.
The initial procedure involves the verification of the username and password,
against any possible matched within the database user table. If the user enters an
invalid set of details, the system will recognize this and return the following error
message:
Figure 44: User Login Error Message
If the user does however provide the correct login information, they will be
redirect to the WoW Beacon home page with an acknowledgement of the
account they are currently logged into. Additionally since this is the first time the
user has logged into the system, they will not have a last login available.
The diagram below illustrates this situation:
Social Network Gaming 2012
84 | P a g e
Figure 45: Home Page Structure for First Login
When the user next logins into their account, the last login feature will be
updated to display the last time they were logged onto the system. Essentially this
would be the date of their first login, which was previously stored within the last
login table as the current login date. The mechanics of the last login feature
require the database to record two specific dates, the current and the last login.
Therefore when a user logs in for second time, their previous current date gets
shifted into the last login field. The process will then insert the new date into the
current login field, due to repeat the procedure for any subsequent logins. The
images below detail this operation with reference to the change of the last login
notice, in addition to the last login date shifting:
Figure 46: Un-shifted Last Login Table
Record of user’s current login Blank last login field
Social Network Gaming 2012
85 | P a g e
Figure 47: Shifted Last Login Table
Figure 48: Updated Last Login Status
5.5.3 Character Registration Process
When a user chooses to register a character, there are specific protocols that
need to be established. Since the registration includes a variety of defining input
fields, it is important to engage the correct procedure of submission. Due to the
diversity of the World of Warcraft character profiles, users will be required to
initialise several defining factors for each registration. Depending on what inputs
they choose, an explicit list of values becomes available to provide proper
classification for each character. These establishing factors include the faction and
region attributes, both of which provide an exclusive set of predefined values. An
illustration of this concept is provided in the below diagrams:
Shifted current login date is now last login date New current login date
Social Network Gaming 2012
86 | P a g e
Figure 49: Alliance Faction Race Values
Figure 50: Horde Faction Race Values
As you can see from the illustrations above, each instance of a faction provides a
unique set of class values for the users to select. This technique installs a good
sense of structure into the registration process, by allowing users to choose what
data is relevant to them. Another benefit to this practice derives from the ability
to preserve a good arrangement of interface elements. This implies that users
won’t be subject to a muddled collection of components.
The workings behind this technique involve a moderate degree of JavaScript
encoding. Local variables are declared between radio buttons to establish calls to
the external method when a radio button is selected. Not only is this form of logic
effective, it also integrates a step based process. This in turn grants the
application a more user friendly structure.
You can see from the diagram below that this notion is carried on, as the select
box inherits a scroll bar to accommodate for each server value:
Social Network Gaming 2012
87 | P a g e
Figure 51: EU Region Server Values
Figure 52: US Region Server Values
Social Network Gaming 2012
88 | P a g e
Once a user has finished initialising each input, their submission will be tested
against two specific forms of validation. The first and foremost important
conditioning factor involves the completion of every input field. Due to its
application in the user registration process, it can be considered as a universal
priority for data collection operations.
Naturally if a user forgets to complete all the fields, they will be presented with
the resulting error message:
Figure 53: Character Registration Incomplete Fields Error
There is another case of conditioning that users may potentially encounter, as it
concerns the combined values of two specific input fields. Due to the gaming
standards of the World of Warcraft game, only one character can exist per server.
Therefore if a user attempts to register a character that’s already been listed on
same server, its record is identified by the database and the following error
message is thrown:
Social Network Gaming 2012
89 | P a g e
Figure 54: Unavailable Character Name Error
Alternatively if the user doesn’t encounter any validation issues, they’ll be
redirect to a confirmation page that justifies their registrations success. A record
of that registration is then allocated into the character table for later enquiry. This
scenario is demonstrated by the diagram below:
Figure 55: Character Confirmation Page
Figure 56: Newly Allocated Character Record
New instance of a character
Social Network Gaming 2012
90 | P a g e
5.5.4 Character Search Process
Serving as the primary feature of the application, the character search process has
a very distinct order of operations. In order to begin searching for a character, a
user must ensure they have firstly satisfied all the necessary input fields. Due to
the single search requirement for this process, it is essential that users initialise
the name of the character they are enquiring. If a user fails to provide a valid
character name or submits a blank input, the system will react by returning a
range of two errors. The following diagrams illustrate these potential errors:
Figure 57: Character Search Incomplete Field Error
Figure 58: Inconclusive Search Error
However, if the user managed to conduct a successful enquiry, the application
would redirect to a results page detailing the retrieved information. The data
acquire is stored within a character summery table, where it is organised into a
collection of attributes that define each aspect of the character class. Each
respective record will also be associated with a registered user profile extension.
The proceeding diagram reviews the search summery for the example character
that was registered in section 5.5.3:
Social Network Gaming 2012
91 | P a g e
Figure 59: Example Character Search Summery
Social Network Gaming 2012
92 | P a g e
5.5.5 Guild Registration Process
The guild registration procedure doesn’t necessarily have to be initiated in order
for users to employ the primary character search feature. The service does
however provide some additional background to a character, while also
instantiating an existing guild onto the system. The only implication to this
process involves users not being able to register their characters into a guild
directly. The only types of character that can be applied to a guild exclusively are
guild masters. However the following service only deals with the allocation of
guild data. In the following section I will be documenting the steps required to
effectively submit a guild, detailing each probable outcome that can occur.
The process begins with the insertion of several guild attributes, each of which is
specified by a distinct list of components. Like the previous procedures, there is a
degree of validation that may be encountered by users. The only significance is
that each field instance has been implemented to display its own individual error
message. Due to the small scale of the registration process, there is a smaller
margin of verification required. Therefore when a user fails to complete a specific
field input, they may trigger a collection of three possible error messages. The
following diagram illustrations these conditions:
Figure 60: Guild Registration Incomplete Field Errors
There is a chance that users may also come across a relative form of conditioning
that was applied to the character registration process. The verification principles
draw on the World of Warcraft gaming principle that a server cannot include two
guilds of the same name. This implies that if a user attempts to register a guild
Social Network Gaming 2012
93 | P a g e
that is already listed on the same server, a system error will be thrown. This
concept is demonstrated in the below diagram:
Figure 61: Unavailable Guild Instance Error
If the user manages to complete the entire set of inputs, they will be redirected to
a confirmation page that will detail the success of their registration. Additionally
an instance of the guild will be recorded into the database guild registry. The
images below depict each case:
Figure 62: Guild Confirmation Page
Figure 63: Newly Allocated Guild Record
New instance of a guild
Social Network Gaming 2012
94 | P a g e
5.5.6 Guild Master Assignment Process
The final service that a user can engage concerns the registration of a guild
master, although the process integrates several conditions for employment. As
mentioned in section 4.4.5 of my design phase, the guild master class includes a
set of establishing factors. This implies that without initiating the necessary
dependencies, a user will not be able to register a guild master. These defining
requirements include a registered character and guild instance, as without these
two elements a guild master cannot exist. In order to justify this concept, I have
illustrated an attempt to register a guild master without initialising the
compulsory process conditions:
Figure 64: Un-Established Character and Guild Error
This concept still persists if even one of the establishing factors has not been
defined:
Figure 65: Un-Established Guild Error
Social Network Gaming 2012
95 | P a g e
Figure 66: Un-Established Character Error
In terms of local validation, users must ensure that each input field is initialised
before submission. If a user fails to complete any of the provided inputs, they are
presented with the standard field verification error. This concept is defined by the
following diagram:
Figure 67: Incomplete Guild Master Inputs Error
Once a user has satisfied the registration process, their submission will be
instantiated into the guild master table registry. The procedure is further verified
as users are navigated to a confirmation page which details the success of their
guild masters allocation into the system. The following Illustrations provide
evidence of this abstraction:
Social Network Gaming 2012
96 | P a g e
Figure 68: Guild Master Confirmation Page
Figure 69: Newly Allocated Guild Master Record
New instance of a guild master
Social Network Gaming 2012
97 | P a g e
Chapter 6: Project Evaluation
6.1 Introduction
In this chapter I will be evaluating the extent of work applied throughout the
initial project. In order to determine whether my application has fulfilled its initial
purpose, I must refer to my original aims and object to justify what aspects my
finalized product has satisfied. The study will include an assessment of how far I
have managed to progress with my workings, in addition to what I have learnt
from the entire experience. I will begin by providing a quick recap on the initial
proposal for the project as mentioned in my terms of reference:
Perform a literature review to achieve a sufficient degree of knowledge
regarding the concept of Social Network Gaming.
Identify the essential elements of the project through a requirements
analysis.
Incorporate a structured project design to support an effective process of
development.
Begin Implementation of a registry system that utilizes an array of services
to provide World of Warcraft users the ability to seek out fellow players.
Perform a practical standard of testing on my finalised product to rectify
any functional or conceptual liability concerns.
In the following sections I will be conducting an assessment of the progress I’ve
made since proposal of my application. I plan to discuss my engaged stages of
development, with respect to any problematic aspects that I stumbled across.
6.2 Initial Assessment
Project Proposal
The development of my application began with an idea to take aspects from both
social networking and gaming to be merged into one unique concept. Although it
wasn’t mentioned within the project description, I felt that my proposal would
present a considerable degree of marketable potential. This concerned the
creation of a registry system that would exclusively cater for gamers. My reasons
for engaging this design were influenced by my perceptions that current market
Social Network Gaming 2012
98 | P a g e
leaders lack a sense of creativity. I felt further obliged to employ this idea after
realising that the current market hadn’t incorporated this form of software. It was
during this time that I began collecting resources, as I required additional
knowledge on the conceptual implications of social network games.
Literature Review
This process fabricated the basis for my literature review, which later began to
expand in content through my subsequent findings. I can safely say that the
construction of my review presented a mild level of difficultly. This was due to the
lack of relative material available, resulting in a very limited supply of recovered
resources. The overall process however supplied a modest degree of useful
information, some of which included graphical illustrations to support studies. I
eventually managed to document a fairly detailed literature review, addressing a
broad range of topics that I felt contained significant importance.
Requirements Analysis
Once I had gained a sufficient amount of information, I began to apply my findings
into an explicit analysis of my systems requirements. This would come to classify
the third stage of my project, allowing me to define the major implications
required to further compose my system. The segment goes on to identify various
conceptual factors, expressing the significance of each case for the initial process
of system development.
System Design
The notions from my requirements analysis were incorporated into my design
phase, setting the abstract principles for each of my object classes. As a result, I
began to constitute a range of modelling technique to structure each relative
object. Although I wasn’t very familiar with system modelling, the process
presented a vast degree of beneficial elements. One specific advantage was that I
could illustrate my system components through a unique set of perspectives. This
process also helped to outline a scale of alternate operations, some of which
replaced the original procedures due to more effective means of employment.
Social Network Gaming 2012
99 | P a g e
Implementation and Testing
I consider my final phase as the most time consuming stage of my development,
significantly due to the amount of associated testing required. The initial
instruction for each process institutes a huge volume of annotation, this in turn
applies a very lengthy process for documentation. Since my application involves a
large scale of operational sequences, it was necessary to identify each stage of
processing with the appropriate range of conceptual tools. In some instance, my
implementation offered a chance to reflect on whether a user will be able to
effectively utilize the correct order of components. As a result, my entire fifth
chapter has been revised to accommodate users to understand the mechanics of
my systems functionality.
Social Network Gaming 2012
100 | P a g e
Chapter 7: Project Conclusion
6.1 Introduction
As this is my final chapter, I will be concluding the entire process of my applied
development with respect to my own personal opinions. To effectively satisfy any
apprehensions regarding this project, I plan to discuss my views with respect to
the fundamental ideals of social network gaming. One specific topic that I was
hoping to dispute concerns the margin for improvement, as I feel that some areas
of my application have been neglected. When considering the amount of work
that has been commissioned, I feel that it would be appropriate for me to stress
the significance of my applications current standing.
The following segments detail my personal reflections on the progress I’ve made
so far. This constitutes the lessons I’ve come across over the period of my projects
development. Future growth and expansion would serve as another suitable topic
for discussion, as I would hope to steer this product into the market someday.
6.2 Reflection on Progress
Over the course of time that I’ve spent developing my application, I never really
took the time really sit back and criticise my workings. One of my initial objectives
was to integrate my application onto the social network Facebook. However due
to certain registry complications, I never got the chance to review the impact it
would project on a live network. I also have had a lot of feedback from the gaming
community regarding the ethical implications of my applications services, as it
openly manipulate personal data. Ironically the majority of social networks adopt
the same exclusive principles, so the ethical intentions of my application are
disputable.
I do believe however that every user is entitled to their opinion, considering that
negative criticism can sometimes prove to be the best form of feedback. All that
aside, I can still say that I feel rather confident about my overall progress, even if
the application is still in working progress. In any case, I do hope to eventually
elaborate on this project on a more professional level.
Social Network Gaming 2012
101 | P a g e
6.3 Potential Improvements
One distinct standard that I have constantly been applying throughout my profile
is the emphasis on operational priority. As a result, my applications development
became more concerned with satisfying the functionality of my system
components. This left a heavy impact on the aesthetical factors of the application,
judging by the fact that each of my interfaces incorporates a very simple design
layout. As a future precaution, I plan to apply myself more flexibly to provide for
all aspects of my future projects. Due to the unique integration of my guild object
class, a distinct level of confusion may arise regarding its relevance in the initial
system.
Coincidently the only guild attributes that are stored within the database include
name, level, type, region and server name. However according to the World of
Warcraft mechanics, a guilds primary objective is to add and store characters into
their roaster. Therefore to rectify this confusing concept, I would have to
reconfigure my guild table and implement a new feature that would allow users
to add character instances into registered guilds.
Social Network Gaming 2012
102 | P a g e
References
[Dave Roos, 2011] What is an API? (Online article reference) [Available at:
http://communication.howstuffworks.com/how-to-leverage-an-api-for-
conferencing1.htm, Accessed at: 14th November 2011]
[Facebook Developers, 2009] Facebook for Websites (Online guide reference)
[Available at: http://developers.facebook.com/docs/, Accessed at: 18th
November 2011]
[Biz Stone, 2006] Twitter API for Flash developers (Online guide reference)
[Available at: http://blog.twitter.com/2006/10/twitter-api-for-flash-
developers.html, Accessed at: 21th November 2011]
[Paul Salmon, 2011] Socializing online with Socializing Network Software (Online
article reference) [Available at: http://technicallyeasy.net/2011/02/socialize-
online-with-social-networking-software/, Accessed at: 14th December 2011]
[YouTube, 2009] Best Social Networking Apps (Online video reference) [Available
at: http://www.youtube.com/watch?v=o8KOgkmGwaA, Accessed at: 17th
December 2011]
[My Games Studies, 2009] Social Networking Game Design Diagram (Online
image reference) [Available at: http://www.mygamestudies.com/content/game-
design-social-networks-part-2-design-framework, Accessed at: 19th December
2011]
[Nick O’Neill, 2008] What exactly are Social Games? (Online article reference)
[Available at: http://www.mygamestudies.com/content/game-design-social-
networks-part-2-design-framework, Accessed at: 19th December 2011]
[Nadia Oxford, 2011] Social Games: The past, Present and Future (Online article
reference) [Available at: http://gametheoryonline.com/2011/10/10/social-games-
history-future-facebook/, Accessed at: 29th December 2011]
[Jon Radoff, 2010] History of Social Games (Online article reference) [Available at:
http://radoff.com/blog/2010/05/24/history-social-games/, Accessed at: 30th
December 2011]
[Adam Holisky, 2012] World of Warcraft subscribers dip 100,000 to 10.2 million
(Online article reference) [Available at:
Social Network Gaming 2012
103 | P a g e
http://wow.joystiq.com/2012/02/09/world-of-warcraft-subscriber-numbers/,
Accessed at: 12th February 2012]
[Wikipidia, 2012] Blizzard Entertainment (Online archive reference) [Available at:
http://en.wikipedia.org/wiki/Blizzard_Entertainment, Accessed at: 12th February
2012]
[Wikipedia, 2012] World of Warcraft (Online archive reference) [Available at:
http://en.wikipedia.org/wiki/Blizzard_Entertainment, Accessed at: 12th February
2012]
[Game Sparking, 2011] Advantages and Disadvantages of Playing Online Games
(Online article reference) [Available at: http://www.gamesparking.blog.com,
Accessed at: 9 January 2012
[Donna Cosmato, 2011] Advantages and Disadvantages of Social Networks
(Online archive reference) [Available at:
http://socialnetworking.lovetoknow.com/Advantages_and_Disadvantages_of_So
cial_Networking, Accessed at: 14th February 2012]
[Jiang Yang, 2008] Diffusion Dynamics of Games on Social Networks, 2011, Xiao
Wei, Jiang Yang, Lada A. Adamic, Ricardo Matsumura de Araújo, Manu Rekhi
(Online article reference) [Accessed at: 9 January 2012]
[Leonora Albino, 2010] The psychology of Social Gaming (Online article reference)
[Available at: http://www.schooleymitchell.net/?p=770, Accessed at: 15th
January 2012]
[World of Warcraft: Cataclysm] World of Warcraft Party Feature (In-game
reference) [Available at: http://eu.battle.net/wow/en/?-, Accessed at: 3rd
January 2012]
[Avenirtech, 2012] Core elements of Social Gaming (Online article reference)
[Available at:http://avenirtech.hubpages.com/hub/Core-Elements-of-Social-
Gaming, Accessed at: 22nd January 2012]
[Facebook, 2004] Mark Zuckerburg, Dustin Moskovitz, Eduardo Saverin (Social
Network reference) [Available at: http://www.facebook.com, Accessed at: 13rd
January 2008]
Social Network Gaming 2012
104 | P a g e
[Brian Borzykowski, 2012] Facebook: Should you invest in social media? (Online
article reference) [Available at: http://www.canadianbusiness.com/article/73455-
-facebook-should-you-invest-in-social-media, Accessed at: 02nd March 2012]
[Mike Thompson, 2012] Zynga Slingo tops the list of fastest-growing Facebook games by
MAU (Online article reference) [Available at: http://www.insidesocialgames.com/,
Accessed at: 26th March 2012]
[Fortumo.com, 2012] 8 Key Elements That Make Social Gaming Successful (Online
article reference) [Available at: http://blog.fortumo.com/8-key-elements-that-
make-social-gaming-successful/, Accessed at: 06th March 2012]
[Wikipedia, 2011] Social Network Game (Online archive reference) [Available at:
http://en.wikipedia.org/wiki/Social_network_game, Accessed at: 14th December
2011]
[Wikipedia, 2011] Social Network Game (Online archive reference) [Available at:
http://en.wikipedia.org/wiki/Zynga, Accessed at: 14th December 2011]
[Wikipedia, 2011] Social Network Game (Online archive reference) [Available at:
http://en.wikipedia.org/wiki/Playfish, Accessed at: 14th December 2011]
[Wikipedia, 2011] Social Network Game (Online archive reference) [Available at:
http://en.wikipedia.org/wiki/Playdom, Accessed at: 14th December 2011]
[Wikipedia, 2011] Social Network Game (Online archive reference) [Available at:
http://en.wikipedia.org/wiki/RockYou, Accessed at: 14th December 2011]
[Piers Harding-Rolls, 2011] Zynga Builds On Lead In Booming Social Network
Gaming Market (Online article reference) [Available at:
http://www.isuppli.com/Media-Research/News/Pages/Zynga-Builds-On-Lead-in-
Booming-Social-Network-Gaming-Market.aspx, Accessed at: 28th December
2011]
[Wikipedia, 2012] Requirements Analysis (Online archive reference) [Available at:
http://en.wikipedia.org/wiki/Requirements_analysis, Accessed at: 07th February
2012]
Social Network Gaming 2012
105 | P a g e
Appendix: A - Original Terms of Reference
Social Network Gaming
Ashkan Mehran
Project Background
After careful analysis and consideration, it came to my attention that this
particular project would be most suitable for me due to a number of points.
Firstly, the project brief informed me that I would be implementing an
application, which takes advantage of social networking services. This meant that
I would have to produce an application, which incorporates the interests of a user
on a social network. However before I could start any planning, I had to ensure
that I possessed the appropriate skills and abilities to carry out this project.
I started by reviewing the project requirements and discovered that the
requirements included knowledge of Java/JavaScript, MySQL and PHP in addition
to an interest in network and social gaming design and production. Since I could
relate to most of the requirements, I decided that it would be a suitable project
for me to employ. However, before making any solid decisions I choose to contact
the project leader CheGuevara John to consult on a number of points regarding
the projects structure and initial purpose.
It was not until Che had justified my concerns in more depth, that I concluded
choosing this project would be in my best interests. In addition to his advice, he
also provided me with some examples of applications that cater for Social
Network Services. With this new knowledge at my disposal, I started to
investigate how certain websites made use of their applications. My research led
me to the concept of APIs (Application-Programming Interface) that software
companies release to the public so that other software developers can design
their own products that support that particular service. After which, I contacted
my project manager George Fakas to request that he assign me to this project.
Aims
Develop an understanding of how Social Networking Services make use of
their applications.
To create an application that captures the interest of Social Network users.
Social Network Gaming 2012
106 | P a g e
Producing my project based on connected processes to aid application
problem solving.
To make my application satisfy its purpose, adding any required
improvements to enhance it.
Investigating how Social Networks integrate their API to allow independent
developers to produce supported applications.
To experiment with various development tools to determine which
platform would be most suitable for the development of my application.
Evaluating social networked services users integrate features such as
groups to further benefit them in preserving their gaming community ties.
Objectives
To achieve my project aims, I will need to organise my time efficiently and
responsibly taking into account each aspect of my project. This will include the
allocation of time and resources that will be spent on each phase. While I may be
developing my application, a gantt chart would be sufficient to help organise my
processes. This will allow me to keep track of my project schedule so I know
whether I’m spending too much time on one section, or if I’m ahead of schedule. I
also plan to engage in a wide variety of resources in order to make my research as
diverse and reliable as possible. This will include investigating articles that provide
constructive information to aid in the development of my application.
The initial development of my application will be credited to a number of factors.
Online tutorials and PDF guides are just some of the elements I plan to employ, as
I feel they are very resourceful and exclusive ways to exhibit information. In
addition there are a number of websites that I intend to explore such as playfire,
which present a similar approach to my projects purpose. Understanding how to
associate applications with a DBMS is just one of the concepts I need to integrate
into my project, fortunately the units I am studying will help cover the essential
areas such as web design and development, which dwells into the features such
as PHP script and MySQL.
Project Deliverables
My project will combine a number of ideas, which I think could present some
marketable quality. I intend to develop an application based on a PHP platform
for Facebook users who are also play the MMORPG World of Warcraft. Now the
Social Network Gaming 2012
107 | P a g e
initial idea of my project is to allow users who play World of Warcraft to locate
fellow players by making specific enquires on the application. User must firstly
register by providing specific credentials in order for them to be stored onto a
database for future enquiries. Once users have registered, they can begin to make
use of specific features based on the application. If users are looking for fellow
players yet lack their real life details, they can make use of the search tool
feature. This allows them to send a PHP script enquiry to the database to check if
register members match the enquiry details.
If a search is successful, users will receive a list of results relating to their enquiry.
Once users have selected a resulted profile, they redirected to a user profile page
that contains a specific collection of information. As I will be using the Facebook
API, each user profile will contain features such as the Like and Add Friend button.
This will allow users to trace each other over Facebook, adding consistency to my
application. Other profile features include user news feeds and event organisers,
where players can arrange game related activities. This will act as a global
notification to fellow players who are not available in game.
In addition to my project, I shall also be producing a project report and interim
report that will be included in my documentation.
Required Resources
Notepad ++, Adobe, EasyPHP 5.3.9, phpMyAdmin 3.4.5
Social Network Gaming 2012
108 | P a g e
Project Plan
Actual Deadlines: Terms of Reference (Project plan with aim, objectives and timetable)………………………..……...21st October 2011 Literature Review (First draft of the literature survey) ……………………………...………….…………..21th November 2011 Project Design (Draft of product design)………………………………….……………………………………..…..12th January 2012 Interim Report (Review of objectives achieved & revised project plan) ……………………...………16th December 2011 Implementation of Application (Draft of the implementation of the product) …………………...04th February 2011 Report Structure (Report outline with chapters sections and subsections) …………………...…..23th February 2012 Project Report …………………………………...............…………………………………………………….……..…….23th February 2012
Social Network Gaming 2012
109 | P a g e
Appendix: B - Modified Terms of Reference
Social Network Gaming
Ashkan Mehran
Project Background
After careful analysis and consideration, it came to my attention that this
particular project would be most suitable for me due to a number of points.
Firstly, the project brief informed me that I would be implementing an
application, which takes advantage of social networking services. This meant that
I would have to produce an application, which incorporates the interests of a user
on a social network. However before I could start any planning, I had to ensure
that I possessed the appropriate skills and abilities to carry out this project. I
started by reviewing the project requirements and discovered that the
requirements included knowledge of Java/JavaScript, MySQL and PHP in addition
to an interest in network and social gaming design and production. Since I could
relate to most of the requirements, I decided that it would be a suitable project
for me to employ. However, before making any solid decisions I choose to contact
the project leader CheGuevara John to consult on a number of points regarding
the projects structure and initial purpose. It was not until Che had justified my
concerns in more depth, that I concluded choosing this project would be in my
best interests. In addition to his advice, he also provided me with some examples
of applications that cater for Social Network Services.
With this new knowledge at my disposal, I started to investigate how certain
websites made use of their applications. My research led me to the concept of
APIs (Application-Programming Interface) that software companies release to the
public so that other software developers can design their own products that
support that particular service. After which, I contacted my project manager
George Fakas to request that he assign me to this project.
Aims
Develop an understanding of how Social Networking Services make use of
their applications.
To create an application that captures the interest of Social Network users.
Social Network Gaming 2012
110 | P a g e
Producing my project based on connected processes to aid application
problem solving.
To make my application satisfy its purpose, adding any required
improvements to enhance it.
Investigating how Social Networks integrate their API to allow independent
developers to produce supported applications.
To experiment with various development tools to determine which
platform would be most suitable for the development of my application.
Evaluating social networked services users integrate features such as
groups to further benefit them in preserving their gaming community ties.
Objectives
To achieve my project aims, I will need to organise my time efficiently and
responsibly taking into account each aspect of my project. This will include the
allocation of time and resources that will be spent on each phase. While I may be
developing my application, a Gantt chart would be sufficient to help organise my
processes. This will allow me to keep track of my project schedule so I know
whether I’m spending too much time on one section, or if I’m ahead of schedule. I
also plan to engage in a wide variety of resources in order to make my research as
diverse and reliable as possible. This will include investigating articles that provide
constructive information to aid in the development of my application.
The initial development of my application will be credited to a number of factors.
Online tutorials and PDF guides are just some of the elements I plan to employ, as
I feel they are very resourceful and exclusive ways to exhibit information. In
addition there are a number of websites that I intend to explore such as playfire,
which present a similar approach to my projects purpose. Understanding how to
associate applications with a DBMS is just one of the concepts I need to integrate
into my project, fortunately the units I am studying will help cover the essential
areas such as web design and development, which dwells into the features such
as PHP script and MySQL.
Project Deliverables
My project will combine a number of ideas, which I think could present some
marketable quality. I intend to develop an application based on a PHP platform
for Facebook users who also play the MMORPG World of Warcraft. Now the initial
Social Network Gaming 2012
111 | P a g e
idea of my project is to allow users who play World of Warcraft to locate fellow
players by making specific enquires on the application. User must firstly
register by providing specific credentials in order for them to be stored onto a
database for future enquiries. Once users have registered, they can begin to make
use of specific features based on the application. If users are looking for fellow
players yet lack their real life details, they can make use of the search tool
feature. This allows them to send a PHP script enquiry to the database to check if
register members match the enquiry details.
If a search is successful, users will receive a list of results relating to their enquiry.
Once users have selected a resulted profile, they are redirected to a user profile
page that contains a specific collection of information. As I will be using the
Facebook API, each user profile will contain features such as the Like and Add
Friend button. This will allow users to trace each other over Facebook, adding
consistency to my application. Other profile features include user news feeds and
event organisers, where players can arrange game related activities. This will act
as a global notification to fellow players who are not available in game.
In addition to my project, I shall also be producing a project report and interim
report that will be included in my documentation.
Required Resources
Notepad ++, Adobe Dreamweaver CS5.5, XAMPP 1.7.7, phpMyAdmin 3.4.5
Social Network Gaming 2012
112 | P a g e
Appendix: C – Ethnics Checklist
Ethics Check Form: Notes for Guidance
Before completing the Ethics Check Form the person undertaking the activity
should consider the following questions:
Yes No N/A
1 Is the size of sample proposed for any group enquiry larger than justifiably necessary?
X
2 Will any lines of enquiry cause undue distress or be impertinent?
X
3 Has any relationship between the researcher(s) and the participant(s), other than that required by the academic activity, been declared?
X
4 Have the participants been made fully aware of the true nature and purpose of the study? If NO is there satisfactory justification (such as the likelihood of the end results being affected) for withholding such information? (Details to be provided to the person approving the proposal).
X
5 Have the participants given their explicit consent? If NO is there satisfactory justification for not obtaining consent? (Details to be provided to the person approving the proposal).
X
6 Have the participants been informed at the outset that they can withdraw themselves and their data from the academic activity at any time?
X
7 Are due processes in place to ensure that the rights of those participants who may be unable to assess the implications of the proposed work are safeguarded?
X
8 Have any risks to the researcher(s), the participant(s) or the University been assessed? If YES to any of the above is the risk outweighed by the value of the academic activity?
X
9 If any academic activity is concerned with studies on activities which themselves raise questions of legality is there a persuasive rationale which demonstrates to the satisfaction of the University
X
Social Network Gaming 2012
113 | P a g e
that: i) The risk to the University in terms of external (and internal) perceptions of the worthiness of the work has been assessed and is deemed acceptable;
ii) Arrangements are in place which safeguard the interests of the researcher(s) being supervised in pursuit of the academic activity objectives;
X
iii) Special arrangements have been made for the security of related documentation and artefacts. Appropriate expert advice should be sought as appropriate
X
10 Have the ethical principles and guidelines of any external bodies associated with the academic activity been considered?
X
Social Network Gaming 2012
114 | P a g e
Ethics Check Form 1 Name(s) of Applicant: Ashkan Mehran 2 Department: Computing & Mathematics
3 Name of Supervisor: Che-Guevara John
4 Title of Project: Social Network Gaming 5 Resume of ethical issues: 6 Does the project require the approval of any external agency?
YES/NO * If YES has approval been granted by the external agency? YES/NO *
* delete as appropriate
7 Statement by Applicant I confirm that to the best of my knowledge I have made known all relevant information and I undertake to inform my supervisor of any such information which subsequently becomes available whether before or after the research has begun Signature of Applicant: Ashkan Mehran Date: 23 / Mar / 2012 8 Statement by Supervisor/Line Manager (please sign the relevant statement)
Approval for the above named proposal is granted I confirm that there are no ethical issues requiring further consideration. (Any subsequent changes to the nature of the project will require a review of the ethical considerations): Signature of Supervisor: _________________Date:_______________
Social Network Gaming 2012
115 | P a g e
Approval for the above named proposal is not granted I confirm that there are ethical issues requiring further consideration and will refer the project proposal to the appropriate Committee** Signature of Supervisor: _________________ Date: ______________
** For work forming part of an MMU taught programme– refer to Faculty Academic Standards Committee ** For work forming part of an MMU research programme – refer to Faculty Research Degree Committee ** For PhD by published work – refer to Research Degree Committee ** For any other work – refer to appropriate Faculty/Department Committee or line manager.