# Building Community and Collaboration Applications for MMOGs

Authors: George Adam; Christos Bouras; Vaggelis Kapoulas; Andreas Papazois
Journal: International Journal of Computer Games Technology
 (2012)

---

## Abstract

Supporting collaborative activities among the online players are one of the major challenges in the area of Massively Multiplayer Online Games (MMOG), since they increase the richness of gaming experience and create more engaged communities. To this direction, our study has focused on the provision of services supporting and enhancing the players' in-game community and collaboration activities. We have designed and implemented innovative tools exploiting a game adaptation technology, namely, the In-game Graphical Insertion Technology (IGIT), which permits the addition of web-based applications without any need from the game developers to modify the game at all, nor from the game players to change their game installation. The developed tools follow a design adapted to the MMOG players' needs and are based on the latest advances on Web 2.0 technology. Their provision is performed through the core element of our system, which is the so-called Community Network Game (CNG) Server. One of the important features provided by the implemented system's underlying framework is the utilization of enhanced Peer-to-Peer (P2P) technology for the distribution of user-generated live video streams. In this paper, we focus on the architecture of the CNG Server as well as on the design and implementation of the online community and collaboration tools.


---

## Body

## 1. Introduction

One of the most interesting potentials that Massively Multiplayer Online Games (MMOGs) developers and operator have is that they can offer to the online players the possibility to interact with a large number of other players as well as to collaborate and compete in a large variety of gaming situations. The majority of these activities are made in the context of online communities that can be built around the game and where players of MMOGs tend to join to connect with people with common interests and passions and to share their in-game experience [1]. The Community Network Game (CNG) [2] is an EU-funded research and innovation project that researches and develops in-game activities using the In-game Graphical Insertion Technology (IGIT) and that proposes an architecture that combines efficiently the client-server infrastructure for the MMOG activities with a Peer-to-Peer (P2P) overlay for the delivery of user-generated live video.IGIT is an innovative technology that permits replacing game’s objects and inserting User-Generated Content (UGC) within the game in real time. Using IGIT, the in-game avatars can be customized with players’ images, external 3D objects can be inserted within the game screen, and other types of windows, for example, external applications, can be inserted as a new layer on top of the game screen. It is important that IGIT’s features are offered without the need for the game developers to change the game’s code in the MMOG client or server [1]. This MMOG “independence” is achieved through a game adaptation process and an integrated browser’s rendering engine, which permits that the same technology implementation can be used in the same way on multiple games, and thus making CNG a generic application able to address directly  multiple MMOGs and MMOG operators.In this paper, we describe the high-level design and the system architecture components developed within CNG system for the support of community and collaboration applications. Furthermore, we provide a detailed design of the system’s architectural elements starting with details about the CNG Server’s components and continuing with the Web 2.0 applications. The most important aspects of system’s design and implementation are described. the used interfaces and protocols, as well as the system modules and the internal design specification. We focus on the features that distinguish CNG collaboration tools from a typical social networking website and we highlight any design issues that can potentially contribute in future standardization processes for WWW and open social networking.The remainder of the paper is structured as follows. Section2 reviews existing systems in the area and compares similar systems’ achievements with those of CNG. Section 3 provides an overview of the CNG system’s architecture and focuses on the supported community and collaboration tools. The design of the CNG Server architecture with regards to the online community and collaboration tools is presented in Section 4. The first results on our collaborating experience within CNG environment are presented in Section 5. In Section 6 we conclude, and, finally, in Section 7 we present our expectations as well as the planned next steps of this work.


## 2. Similar Systems and CNG Progress

Currently, many MMOG creators tend to build online communities around their games and to allow their players creating their own content and sharing it. In order to have a common look-and-feel around multiple games, a new trend towards the game adaptation frameworks and Online Meta-Gaming Networks (OMGNs) was arisen. There are several game adaptation and OMGN products that have been created so far, like Steam [3] and XFire [4], with the XFire being the most notable one among them, as mentioned in several studies including [5, 6]. XFire achieves game adaptation and provides a set of tools that appear in an overlay on top of the game screen. XFire is a free product and does not need any modification of the game code. Some of the most important features that XFire supports are the following: (i)
text and voice chat,(ii)
screenshot and video sharing,(iii)
live video streaming,(iv)
interconnection with external Instant Messaging (IM) networks.(v)
web browsing.All of the above features can be launched within the game screen, eliminating the disruption of the player’s in-game experience since quitting of the game application is not needed.Using IGIT, CNG is able to introduce innovative community and collaboration activities between gamers. MMOG serving systems can provide only limited and low-volume out-of-game services via their central servers. By the reduction of the processing and network load, the new game features and applications offered by CNG are able to overcome the limits that the majority of the current MMOG providers face. CNG community and collaboration applications appear within the game environment and can be accessed and manipulated by the players without the need to interrupt their gaming experience. These services are offered by the CNG Server (or multiple CNG Servers) which is the core of the CNG system architecture. One of the most important services offered by CNG is the streaming of user-generated live video among the online players using P2P technology. In the context of this service, CNG has researched and developed an innovative architecture that permits sharing of live video streams between multiple players via P2P without interrupting the MMOG data flow [8]. This P2P technology includes techniques for the creation of a dynamically optimized scalable network for the distribution of live video streamed from one player to another or from one to many players. The generated live stream traffic constitutes a major challenge given that it creates flows within a network already used by the MMOG data flows. To this direction, the project has researched and developed new techniques for P2P live video streaming that respect the MMOG client-server traffic (i.e., show “MMOG-friendliness”). The corresponding P2P tracker constitutes part of the CNG Server and has persistent communication with the CNG Client applications (peers) being responsible for the coordination and organization of the peers in order to assure an efficient and “MMOG-friendly” P2P live video communication. It should be noted that the implementation of online community and collaboration applications is based on Web 2.0 technology which is widely used for social and UGC-sharing activities. Further enhancements have been added to support the in-game activities as well as to make use of the features offered by the IGIT technology.Table1 lists the CNG key features and shows whether they are offered by the current game adaptation products or not. The most significant in-game adaptation frameworks have been considered in this comparison, namely, XSteam [3], XFire [4], PLAYXPERT [9], Overwolf [10], and Raptr [11]. It is obvious that XFire is the most notable among the similar systems. The progress of CNG beyond the current similar systems can be summarized in the following directions: (i)
innovative network technologies for live video sharing over a P2P overlay network,(ii)
game-oriented social networking, collaboration and video-editing tools,(iii)
innovative web technologies appropriate for the in-game rendering of the online community and collaboration tools,(iv)
advanced game adaptation technologies for 2D texture replacement and 3D object insertion at game-spots indicated by the user.Table 1
CNG features support by the most significant similar systems (source: [7]).
Feature
XFire
PLAYXPERT
Steam
Overwolf
Raptr
Texture replacement
In-game overlay
✓
✓
✓
✓
✓
Video capture
✓
✓
✓
Video edit
Video upload
✓
✓
Live video
✓
Instant messaging
✓
✓
✓
✓
✓
Audio chat
✓
✓
✓
File sharing
Online blogging
SDK free
✓
✓
✓
✓It should be noted that all of the above technologies have been developed in an MMOG “independent” and “friendly” manner.


## 3. The CNG System

In this section we provide a high-level overview of the CNG system’s architecture and present the online community and collaboration tools designed to support MMOG communities.


### 3.1. Overview of CNG Architecture

Figure1 provides an overview of the CNG system’s architecture. The CNG system consists of two basic elements, namely, the CNG Client and the CNG Server. The CNG Client has been designed as a framework that runs together with the game itself on the user’s machine. On the other hand, the CNG Server consists of a set of components providing the various services for community and collaboration activities as well as for live video sharing. Figure 1 also depicts the MMOG Server entities as well as the network flows related to the CNG and MMOG services provision. It is obvious that the generic MMOG architecture is not modified since the game content is still transferred through the MMOG Server(s).Figure 1
The CNG network architecture (source [1]).The CNG Client is an application that integrates the game application and provides the framework enabling the user to access the MMOG as well as the CNG toolbox. This framework is able to embrace any online game application simply by a configuration process that can be executed easily by an inexperienced user. The CNG Client includes all the software that is necessary for the game adaptation, that is, the IGIT libraries, as well as the P2P module.The CNG Client’s P2P module is responsible for the live video sharing over P2P among the peers. It has a dual role based on whether it is located in a source or sink peer. In a source peer it is responsible for the captured video adaptation and streaming to the appropriate sink peers. Within a sink peer the P2P module is responsible for receiving the video streams, retransmitting them to other peers when necessary, as well as for the adaptation of the received video data in order to play back the video initially captured in the source peer. In order to achieve the above procedure in an efficient manner, the P2P module interacts with the P2P tracker in order for the P2P tracker to build and manipulate the P2P overlays. The P2P module also includes mechanisms that add reliability and improve the performance of the P2P system. These mechanisms include schemes for congestion control, forward error detection, and correction of packet losses. The P2P module has also been designed to create a UDP traffic that is “friendly” to the game’s TCP traffic. “MMOG friendliness” has been implemented in the sense that the CNG P2P module is able to adapt the use of network resources by identifying the available network capacity and thus respecting the game traffic flows [8].Within the CNG Client framework, the various CNG tools are offered to the players through the CNG toolbox. The CNG toolbox is the web application that is initially rendered within the game screen through the IGIT technology. It provides access to the various Web 2.0 tools for social networking, collaboration, video editing, and video sharing over P2P, which are all developed within CNG project. CNG toolbox also provides access to other services like access to external IM applications and web search engines. The IGIT module provides controls for the look-and-feel of all the out-of-game CNG tools on the game screen including their size, position, and transparency. A JavaScript API has been implemented within the IGIT module to provide the necessary IGIT functionality to the Web 2.0 tools [1].The CNG Server is the core of the CNG system and has a twofold role within it. First, it provides the CNG online community and collaboration web services to the connected CNG Clients, and, second, it monitors the P2P communication as a P2P tracker. As a web server, CNG Server provides all the CNG community and collaboration services, the video and graphics tools that are provided in the CNG set of tools. As a fully integrated and standalone system, web server also hosts additional applications like media services, administration UIs, and applications for the interaction with external social web services like Facebook, Twitter, and YouTube. It should be noted that the CNG Server architectural design permits that all the above services can be hosted on the same or multiple machines. As a P2P tracker, CNG Server is responsible to interact with the various P2P modules within the CNG Clients, to organize of the P2P overlays for achieving an efficient live video diffusion. Finally, the P2P tracker hosts all the common information entities that are to be accessed by the peers [12].


### 3.2. Social Networking and Online Collaboration

CNG Server hosts various community tools that offer online collaboration services to users. The tools are accessible to the users through the GNG Toolbox. Since they are web based, the CNG Client retrieves all the necessary information from the CNG Server in order to provide these applications to the user.The community tools are based on the Web 2.0 technology and are following the science-driven and interoperable design. The users are able to interact, communicate, and collaborate with each other in a social networking platform. In this architecture, the users are considered to be both consumers and producers of the generated content. As long as the CNG Server acts as a social networking system, it considers four different types of user-to-user relationship:(1)
idol,(2)
fan,(3)
friend,(4)
friend of a friend. Assuming that player A adds player B to his (A’s) friend list means that player A is now a fan of player B and player B is an idol of player A. If player B also adds player A to his (B’s) friend list then player A will be friend of player B and player B will be friend of player A. Finally, if player C is a friend of player B, he has just become a friend of a friend of player A. The friend list can be organized by creating various groups of friends.Community tools provide a wide variety of interactive applications. The members are able to interact and communicate to each other using many available tools, from simple private messaging to live video streaming. The tools are intended to be accessible within the game environment. Taking this into account, they are having minimal style.The design of the web tools can support and present many forms of user-generated content. Firstly, the Wall application is a community tool in which the users can publish posts in a common thread. The users can view posts made by other users and can interact by replying or republish them to his Facebook and Twitter accounts.The user can create his personal blog, create custom polls, or upload files. These features are widely used in social networks and are considered to be very essential tools for the members of gaming communities. The proposed design follows the principle that the user-generated content should be exposed only to authorized groups. When uploading a file, creating a poll, and so forth, the user specifies the access restrictions, thus the content may be publicly available or only available to a group of friends.Voice chat applications are very popular to gamers as long as they support voice conversations besides text-based chat. CNG Server includes a voice chat tool that can be used for real-time communication among the connected members. Every user can create his own chat room providing information about who are authorized to join it.IM belongs to the real-time text-based communication systems, between users that use any supported devices. As the majority of The Internet users are using IM services, the need of interconnection with such external services arises. Following the users’ needs, CNG Server integrates browser-based IM systems that support multiple networks, like Windows Live Messenger [13] and gTalk [14].


## 3.1. Overview of CNG Architecture

Figure1 provides an overview of the CNG system’s architecture. The CNG system consists of two basic elements, namely, the CNG Client and the CNG Server. The CNG Client has been designed as a framework that runs together with the game itself on the user’s machine. On the other hand, the CNG Server consists of a set of components providing the various services for community and collaboration activities as well as for live video sharing. Figure 1 also depicts the MMOG Server entities as well as the network flows related to the CNG and MMOG services provision. It is obvious that the generic MMOG architecture is not modified since the game content is still transferred through the MMOG Server(s).Figure 1
The CNG network architecture (source [1]).The CNG Client is an application that integrates the game application and provides the framework enabling the user to access the MMOG as well as the CNG toolbox. This framework is able to embrace any online game application simply by a configuration process that can be executed easily by an inexperienced user. The CNG Client includes all the software that is necessary for the game adaptation, that is, the IGIT libraries, as well as the P2P module.The CNG Client’s P2P module is responsible for the live video sharing over P2P among the peers. It has a dual role based on whether it is located in a source or sink peer. In a source peer it is responsible for the captured video adaptation and streaming to the appropriate sink peers. Within a sink peer the P2P module is responsible for receiving the video streams, retransmitting them to other peers when necessary, as well as for the adaptation of the received video data in order to play back the video initially captured in the source peer. In order to achieve the above procedure in an efficient manner, the P2P module interacts with the P2P tracker in order for the P2P tracker to build and manipulate the P2P overlays. The P2P module also includes mechanisms that add reliability and improve the performance of the P2P system. These mechanisms include schemes for congestion control, forward error detection, and correction of packet losses. The P2P module has also been designed to create a UDP traffic that is “friendly” to the game’s TCP traffic. “MMOG friendliness” has been implemented in the sense that the CNG P2P module is able to adapt the use of network resources by identifying the available network capacity and thus respecting the game traffic flows [8].Within the CNG Client framework, the various CNG tools are offered to the players through the CNG toolbox. The CNG toolbox is the web application that is initially rendered within the game screen through the IGIT technology. It provides access to the various Web 2.0 tools for social networking, collaboration, video editing, and video sharing over P2P, which are all developed within CNG project. CNG toolbox also provides access to other services like access to external IM applications and web search engines. The IGIT module provides controls for the look-and-feel of all the out-of-game CNG tools on the game screen including their size, position, and transparency. A JavaScript API has been implemented within the IGIT module to provide the necessary IGIT functionality to the Web 2.0 tools [1].The CNG Server is the core of the CNG system and has a twofold role within it. First, it provides the CNG online community and collaboration web services to the connected CNG Clients, and, second, it monitors the P2P communication as a P2P tracker. As a web server, CNG Server provides all the CNG community and collaboration services, the video and graphics tools that are provided in the CNG set of tools. As a fully integrated and standalone system, web server also hosts additional applications like media services, administration UIs, and applications for the interaction with external social web services like Facebook, Twitter, and YouTube. It should be noted that the CNG Server architectural design permits that all the above services can be hosted on the same or multiple machines. As a P2P tracker, CNG Server is responsible to interact with the various P2P modules within the CNG Clients, to organize of the P2P overlays for achieving an efficient live video diffusion. Finally, the P2P tracker hosts all the common information entities that are to be accessed by the peers [12].


## 3.2. Social Networking and Online Collaboration

CNG Server hosts various community tools that offer online collaboration services to users. The tools are accessible to the users through the GNG Toolbox. Since they are web based, the CNG Client retrieves all the necessary information from the CNG Server in order to provide these applications to the user.The community tools are based on the Web 2.0 technology and are following the science-driven and interoperable design. The users are able to interact, communicate, and collaborate with each other in a social networking platform. In this architecture, the users are considered to be both consumers and producers of the generated content. As long as the CNG Server acts as a social networking system, it considers four different types of user-to-user relationship:(1)
idol,(2)
fan,(3)
friend,(4)
friend of a friend. Assuming that player A adds player B to his (A’s) friend list means that player A is now a fan of player B and player B is an idol of player A. If player B also adds player A to his (B’s) friend list then player A will be friend of player B and player B will be friend of player A. Finally, if player C is a friend of player B, he has just become a friend of a friend of player A. The friend list can be organized by creating various groups of friends.Community tools provide a wide variety of interactive applications. The members are able to interact and communicate to each other using many available tools, from simple private messaging to live video streaming. The tools are intended to be accessible within the game environment. Taking this into account, they are having minimal style.The design of the web tools can support and present many forms of user-generated content. Firstly, the Wall application is a community tool in which the users can publish posts in a common thread. The users can view posts made by other users and can interact by replying or republish them to his Facebook and Twitter accounts.The user can create his personal blog, create custom polls, or upload files. These features are widely used in social networks and are considered to be very essential tools for the members of gaming communities. The proposed design follows the principle that the user-generated content should be exposed only to authorized groups. When uploading a file, creating a poll, and so forth, the user specifies the access restrictions, thus the content may be publicly available or only available to a group of friends.Voice chat applications are very popular to gamers as long as they support voice conversations besides text-based chat. CNG Server includes a voice chat tool that can be used for real-time communication among the connected members. Every user can create his own chat room providing information about who are authorized to join it.IM belongs to the real-time text-based communication systems, between users that use any supported devices. As the majority of The Internet users are using IM services, the need of interconnection with such external services arises. Following the users’ needs, CNG Server integrates browser-based IM systems that support multiple networks, like Windows Live Messenger [13] and gTalk [14].


## 4. Design and Architecture

In this section we present the architectural components developed within CNG to provide the online community and collaboration tools, namely, the user interface, the web server, the database, and the chat application. We describe the chat application separately since a large part of its functionality has been implemented to run within the CNG Client and because it is the sole system’s module that interacts with the media services of the CNG Server. Figure2 illustrates an overview of the system design for the provision of the community and collaboration services.Figure 2
System architecture for the provision of community and collaboration services.Before presenting the architectural components in more detail we summarize the user needs that led to the CNG system and the design presented in this paper.


### 4.1. User Needs for Community Activities within MMOGs

The CNG project has conducted a user needs’ analysis and an initial research on stakeholders’ requirements. The results are available in [15] and are outlined in [16]. This research identifies why players communicate with others, what they share and how, as well as what they find frustrating about using current community related tools. Some of the main points found in this work are summarized below. (i)
The interviewees were frustrated by the use existing community tools, because of reduced immersion, communication difficulties and privacy issues, and poor usability of tools.(ii)
Some of the interviewees have used or were aware of similar systems, low awareness and poor ease of use being the hurdles to adoption.(iii)
Many reported that if the process of using such tools was made easier, they would be more likely to try it.(iv)
The key social/community functions that were particularly popular include video sharing, chat services and in-game web browsing.(v)
The results support the development of a range of social/community function, in game, without the need to minimize the game screen.These findings formed the basis for the selection of the CNG tools to support social and community activities from within multiplayer games and the design of the CNG system, detailed in the following sections.


### 4.2. User Interface

As discussed previously, IGIT technology permits the in-game rendering of web content and thus the CNG online community and collaboration tools are implemented as web pages that are rendered inside the game window and corresponding to various independent widgets that are offered to the players. The graphical design for these widgets follows a simple and clear approach, so as not to dominate over the game scene itself onto the screen and therefore without affecting or distracting the user’s in-game experience. Figure3 depicts some examples of these widgets.Figure 3
Examples of CNG community and collaboration tools’ widgets.The CNG tools have customizable layout by making use of advanced web technologies. This is to accommodate both the various users’ preferences and styles, as well as the different positioning options in the different games since the CNG collaboration tools should not overlap the game’s on screen tools and options. The customization options can also be used to offer different layouts for different scenes of the game and/or different views.Using IGIT, the CNG tools behave as floating windows within the game and thus achieve to appear as part of the game. The importance of this functionality is that it enhances the game experience without any need for the players quitting the game and breaking their in-game experience. It should be noted that positioning the CNG collaboration tools outside the game window, for example, next to right side of the game window, has also been considered but gamers seem to prefer the tools rendered on top of the game window. IGIT permits that the tools’ containers can be highly customizable in terms of size, position, and transparency. Two different positioning, transparency setting, and sizing options are depicted in the two screenshots of Figures4 and 5 where RedBedlam’s MMORPG, the so-called “The Missing Ink” [17], is being used within CNG framework. The first screenshot shows the layout of the blogging widget when the user has expanded the widget’s height and therefore a vertical alignment of the panes in the widget is more suitable in terms of usability and visibility. The second one shows the “Wall” widget layout in case the user has expanded the widget’s width and therefore a horizontal alignment of the panes in the widget is more suitable.Figure 4
RedBedlam’s “The Missing Ink” game with integrated CNG collaboration tools, where widget panes are in vertical alignment.Figure 5
The same game with integrated CNG collaboration tools, where widget panes are in horizontal alignment.Finally, an important challenge during the design of the CNG User Interface is the support of multiple game resolutions and screen sizes. To this direction, the CNG online community and collaboration tools have been designed in a manner that is independent of the game resolution selected by the user. This adaptation to the game screen configuration is not limited to the size of the CNG tools’ windows but also considers their web content. At the initiation of the session, the game screen configuration is read through the IGIT JavaScript library and communicated to the CNG Server. Based on this input, CNG Server generates dynamically the appropriate dimensions of the CNG windows as well as consistent Cascading Style Sheet (CSS) files for the various elements (including Flash objects) consisting the web content, thus, achieving a consistent layout of the CNG tools’ windows.


### 4.3. Web Server

The web server is the CNG Server’s component responsible for the provision of the online community and collaboration services. The web server consists of two components: the UI component, which is the part of the web server that constitutes the presentation-tier, and the backend component, which is the part of the web server that constitutes the business logic-tier. The web server is based on the the Elgg social networking engine [18].


#### 4.3.1. UI Component

The UI Component is the interface of the overall web server towards the web browser instances in the CNG Client side. At this point it should be noted that the client side of the CNG system is executed within a container that is able to display web content on top of the game, using web browser instances. The UI component provides the client side with the CNG user interface and the Web 2.0 online collaboration tools as web content, that is, HTML, JavaScript, and Flash objects. The web browser instances in the CNG Client side can communicate directly with the UI component in order to be provided with these services. With this arrangement it is possible to update and extend the CNG user interface and the CNG Web 2.0 online collaboration tools without changing the CNG Client.An additional service offered by the UI Component is the provision of the web-based interface that is necessary for the administration of the web server. This interface is available to the users that have privileges as administrators on the CNG system.


#### 4.3.2. Backend Component

The backend component is in the core of the overall web server and it is the mid-tier between the other parts of the system, that is, the UI Component and the Database. The purpose of the backend component is to provide all the functionality that is related to the Web 2.0 community and collaboration applications that the CNG system offers and integrates with the games played. This functionality includes also the management of these web applications, as well as the management of the involved entities, for example, users, access groups, and so forth.In addition the backend component also offers authentication and authorization services, to the rest of the system that might require it. Although the authorization and authentication is designed as part of the backend component, since the user accounts and the access rights are a key part of the social applications, the pertinent functionality is provided also using a simple and clear interface that other servers and/or modules can use. The backend component stands between all other components and the database, hiding the database schema and database implementation details, from the rest of the system.


#### 4.3.3. External Social Networks

CNG Server has the capability to interact with other existing external social networks. The system’s design includes interconnection with Facebook [19] and Twitter [20] and single sign-on functionality. The user has to follow an one-time setup phase in which he enters his Facebook and Twitter credentials and an access token is generated. In this setup phase, the user has to authorize the corresponding CNG application to grant write permissions in his account. The credentials are used only to acquire a permanent token and are not stored in CNG Server. After this initialization step, the messages that are posted using the community tools can be posted to his Twitter and Facebook walls. This procedure is done at server side, without prompting the user to provide his credentials for logging in to his social networks accounts. The design of the interconnection with the above networks can be considered secure, as long as no credentials are stored in the CNG Server but only the access tokens. These tokens are valid only for usage by the declared network address of CNG Server.


### 4.4. Chat Application

Chat application can be considered as a real-time communication channel which enables two or more online users to chat using text and voice. It can provide both private and group chat using chat rooms that the users can create. In group chat, all the users on the chat room must be connected to the CNG Server but in the case of private messaging, the messages sent to offline users will be delivered as soon as the users log back in. A notification for new messages is presented to the user when there are any new unread messages and the chat window is enabled but not visible.We have chosen Adobe Flash [21] technology for the implementation of the CNG web-based chat application. This choice was done by observing a lot of benefits in comparison with other solutions like Java and HTML. The most important are the simplicity of the implementation that Flash offers and the client side compatibility. Flash is a multimedia platform that is used for graphic animations and is able to provide interactivity to web pages. Some of its features include the support of bidirectional multimedia streaming and capturing the users’ input devices, including microphone and camera. The Adobe Flash Player is a very popular multimedia and application player supporting Shockwave-Flash (SWF) files. It is integrated as a plugin at most web browsers and is available on many platforms. Its efficiency relies on the fact that it uses vector graphics to minimize file size and create files that save bandwidth and loading time. Finally, the selection of HTML5 was discouraged in the current implementation while it is a new technology that supports audio (and video) playback but not capturing and therefore it cannot adequately cover the CNG chat application functionality.Chat application was designed to be simple and easy to use in order to not require a lot of resources and degrade the gaming experience. An overview of the intefaces between the involved system modules is depicted in Figure6. Like every CNG web tool it is applied as a module in CNG Server and it is located at server side. This architecture enables the maintenance of this tool independently from the system. A replacement of this tool with a tool that relies on different technology is also possible without introducing any overhead to CNG Client software.Figure 6
Overview of the interfaces for CNG chat application.A media server is used as an application server for the chat services. Flash is accompanied by open-source solutions like the Red5 Media Server [22], which is used for the support of the media streaming functionality. Red5 is an open-source RTMP server written in Java that can be used for text, audio, and video chat applications. It supports audio/video streaming (FLV and MP3), client stream recording (FLV only), and live stream publishing. This server handles the CNG chat application requests by implementing the Real-Time Messaging Protocol (RTMP) protocol for all multimedia transmissions of the chat application.The Flash objects that are provided by the CNG Server are intended to provide web-based text and voice communication in an asynchronous mode in order to implement an interactive web application. The chat application maintains a permanent connection between the user and the media server as long as the user is connected. Thus, the user can retrieve data asynchronously without interfering with the display and behavior of the existing page.The CNG chat application acts both as transmitter and as receiver at client side. As a transmitter, it is able to capture voice and text messages and transmits them to the media server, while as a receiver it can receive voice streams and messages and reproduce them in the client side. The backend component’s role is to be responsible for room management and also for access management in cooperation with the media server. Users have to select from the list of the users joined in the room, which voice streams they wish to receive. They can also send text messages to public (in-room) chat or to individual (private) user. The communication within the chat service is not direct between two users, but the messages and streams are transferred through the media server. Figure7 presents the operation of the CNG chat application with respect to its interaction with the CNG Server in the form of a sequence diagram.Figure 7
Sequence diagram presenting the operation of the CNG chat application with respect to its interaction with the CNG Server.


### 4.5. Database

The database is part of the CNG Server and constitutes the data-tier of the CNG Server’s 3-tier architecture. The main part of the data stored in the database are the data for the CNG community and collaboration tools. As mentioned before, the web server and the CNG tools are based on the Elgg social networking engine [18], and therefore the CNG database follows the schema required by Elgg.In order to be extensible, this schema models the entities and the entity relationships in general and allows specific entities and relationships that are inherited from the general entities and relationships. The schema for the “Entities” and the “Entities_Relationships” tables is shown in Figure8. The main entities used are the User_Entities, The Group_Entities, and the Object_Entities. The “User_Entities” table and the “Object_Entities” table model the CNG system users and the user groups defined in the CNG system, respectively. The “Object_Entities” table models the social network objects like the video streams, the blog posts, the uploaded files, and the bookmarks. Figure 9 shows the part of the schema for these main entities.Figure 8
The tables “Entities” and “Entity_Relationships.”Figure 9
The tables “Users_Entities,” “Groups_Entities,” and “Object_Entities” as well as their relationship with the “Entities.”Further to these entity types, the nature of an entity can be further specified through the definition of subtypes. For example, an entry in the Entities that is also related to an entry in the “Object_Entities” table and is related with the subtype entry “chatRoom” is interpreted as an entry for a chat-room object. Similar approach is followed for all the other community and collaboration objects. The subtypes are mainly used for the objects entities, for example, wall posts or video streams, but can also be used for all the other types of entities. The subtypes are modeled by the “Entity_Subtypes” table, which is related with the “Entities” table, as shown in Figure10.Figure 10
The “Entity_Subtypes” table.Moreover, additional information can be added to entities in two ways. The first way is the addition of metadata, which is information that can be added to an entity to describe it more precisely. For example, tags, an ISBN number, or a file would fall under metadata. The second way is the addition of annotations, which are generally information added by third parties. For example, comments and ratings are both annotations. Metadata and annotations are modeled by the “Metadata” and “Annotations” with an additional “Metastring” table to store the actual stings of extra information, which is linked to the entities through the “Metadata” and “Annotations” tables, as shown in Figure11.Figure 11
The tables “Annotations,” “Metadata,” and “Metastrings”.Finally for granular access control every entity, annotation, and piece of metadata is related to an entry in the “Access_Groups” table that models the access rights and is related through the “Access_Group_Memberships” table to the “Entities” table, thus signifying which entities, for example, users, have access to the entity at hand, for example, a live video stream. The relevant part of the schema is shown in Figure12.Figure 12
The “Access_Groups” and “Access_Group_Membership” tables for the application of access controls to entities.This flexible design of the database schema provides extensibility to the system, in terms of the possibility for having additional social objects, additional relationships between the objects, additional information to existing objects, and so forth.


### 4.6. Administrative and Monitoring Tools

As the CNG Server provides online tools to many users at the same time, it is important to monitor the system’s performance and also the online tools usage using administrative and monitoring tools. The users are free to interact with the online community using the CNG tools and it is always possible to generate inappropriate content. In these cases, the administrative tools are used in order to supervise the CNG community network and avoid the distribution of content that violates the terms of service. The users can report any content that they feel that breaches standards on social, religious, cultural, or other grounds. Then, the administrators are finally able to moderate and review any reported user or content.Administrative tools include an interface for the administrators of the CNG system to manage the CNG system using network administration tools and a control panel for users’ accounts administration. The administrative procedures provide statistics like the number of registered users, groups, existing polls, issued blog posts, wall posts, uploaded files, shared streams, and information about currently online users. The administration panel provides full access to users of the system. It supports operations for adding, removing, activating, and  deactivating a user and also resetting passwords and promoting users as system administrators. A common usage of the users’ administration tool is when a user generates some appropriate content and should be banned from the administrator.CNG Server can be configured by setting its basic properties like the URL of the website for the provision of the Web 2.0 collaboration tools, along with its name and description. The administrator can also set the sites email address, the sites default language, and whether secure access through HTTPS is used or not. Apart from global configuration settings, the administrator can activate or deactivate any tools and also configure their parameters. The CNG community network is designed to be modular and can be considered as a compilation of different online tools. That means that the community network can be totally changed by enabling or disabling some tools. With this functionality the collaboration tools could be easily extended and maintained without affecting the whole system. Furthermore, as the administrator is able to configure the tools’ parameters it means that the configuration of each tool may be changed online at anytime by the administrators without interrupting the other tools.The monitoring tools log the users’ activity within the CNG tools and intend to provide information on the users’ behavior in the form of detailed logs as well as through visual aggregated statistics. The implementation of the tools has been based on the Elgg [18] framework’s infrastructure. These tools are used in combination with the other online verification tools in order to provide a complete view of the systems behavior. CNG Server provides a system diagnostics tool that generates a text file with all the configuration information of the system. This information includes all the paths to the files installed in the web server and all the installed collaboration and community tools and any necessary related details. Moreover, the diagnostics tool provides information on the global parameters of the system, such as the Server’s environment, IP, URL, and connected database.Apart from generic diagnostic tools, CNG Server includes monitoring tools that are related to specific collaboration tools. The tool for live video streaming is considered as one of the most important and most frequently used tool of CNG system. The monitoring of live video streams requires a dedicated monitoring tool that will be able to provide detailed information. The implementation of this monitoring tool is illustrated in Figure13.Figure 13
Live video streams’ monitoring on the web server.The monitoring tools intend to analyze the traffic of the CNG tools usage at the highest possible level. The main functionality relies on collecting real data and analyzing them in order to extract knowledge about the usage of CNG community and collaboration tools. It is obvious that the usage of packet capturing (sniffing) software, for example, Wireshark, is discouraged in this case, since the desired information exists at the application layer. On the other hand, the existing common web analytics tools (like Google Analytics [23]) could be used for monitoring the CNG system usage but in a generalized way. They are not able to depict the CNG tools usage because they have no information about CNG tools or users. Thus, the existing common web analytics are not suitable for such in-depth analysis. The implemented web-monitoring tools provide this type of CNG tools analysis and of course can be used for extracting generalized results for the system usage.These web-monitoring tools are integrated to the CNG Server and are fully accessible from the administration panel of the CNG Server (of course for the CNG Server’s super-users). They exploit the existing technology for the Web 2.0 tools. The logged information is stored in the MySQL database of the system and the results can be viewed from the existing CNG web interface. Moreover, the “Google Chart Tools” [24], which is a state-of-art web-technology for data visualization, is used for rendering charts at client side using JavaScript.The logging is executed at every user HTTP request towards the CNG Server. The system parses the requested URL and then finds the referring tool. Furthermore, it utilizes the same URL and the HTTP request method (GET or POST) in order to identify the action of the user within the CNG tool. The results of the web-monitoring process can lead to a variety of conclusions. The collected information reflects the activity of the user on the CNG tools. The results can be organized in various ways based on the choices of the system’s verification engineer or administrator. A filtering procedure that organizes the results (a) per user, (b) per tool, and (c) per action has been implemented for this purpose. This filtering procedure is depicted at the following flowchart.The results are real time presented to the administrator and they are available at three formats: tables, pie charts, and raw logs. Each table shows the results in two columns. The first column refers to the object that is monitored and the second column refers to the hits. At pie chart, the objects are coloured and labelled. This representation is used for visualizing the table content, thus the administrator is able to quickly identify which objects are popular.Raw logs are presented in a table with the columns: IP, Date, Tool, Action, URL, Method. The rows represent the users’ interaction on the CNG tools. This output format can be used for in-depth monitoring of activity within a specific tool or of a specific user. Next, Figure14 displays the logs of a specific user.Figure 14
Raw logs for a specific user’s activity.When a tool filtering is applied, then an action analysis for the selected tool is presented. The verification engineer/administrator can observe which tools are popular and which actions are popular for a specific tool. For example, Figure15 shows the action monitoring for the “Blog" tool. Finally, it is worth mentioning that special care has been given in order for all the above tools to be automatically extended in case additional tools/user activities are added in the CNG Server.Figure 15
Reporting the actions usage for the “Groups” tool.


## 4.1. User Needs for Community Activities within MMOGs

The CNG project has conducted a user needs’ analysis and an initial research on stakeholders’ requirements. The results are available in [15] and are outlined in [16]. This research identifies why players communicate with others, what they share and how, as well as what they find frustrating about using current community related tools. Some of the main points found in this work are summarized below. (i)
The interviewees were frustrated by the use existing community tools, because of reduced immersion, communication difficulties and privacy issues, and poor usability of tools.(ii)
Some of the interviewees have used or were aware of similar systems, low awareness and poor ease of use being the hurdles to adoption.(iii)
Many reported that if the process of using such tools was made easier, they would be more likely to try it.(iv)
The key social/community functions that were particularly popular include video sharing, chat services and in-game web browsing.(v)
The results support the development of a range of social/community function, in game, without the need to minimize the game screen.These findings formed the basis for the selection of the CNG tools to support social and community activities from within multiplayer games and the design of the CNG system, detailed in the following sections.


## 4.2. User Interface

As discussed previously, IGIT technology permits the in-game rendering of web content and thus the CNG online community and collaboration tools are implemented as web pages that are rendered inside the game window and corresponding to various independent widgets that are offered to the players. The graphical design for these widgets follows a simple and clear approach, so as not to dominate over the game scene itself onto the screen and therefore without affecting or distracting the user’s in-game experience. Figure3 depicts some examples of these widgets.Figure 3
Examples of CNG community and collaboration tools’ widgets.The CNG tools have customizable layout by making use of advanced web technologies. This is to accommodate both the various users’ preferences and styles, as well as the different positioning options in the different games since the CNG collaboration tools should not overlap the game’s on screen tools and options. The customization options can also be used to offer different layouts for different scenes of the game and/or different views.Using IGIT, the CNG tools behave as floating windows within the game and thus achieve to appear as part of the game. The importance of this functionality is that it enhances the game experience without any need for the players quitting the game and breaking their in-game experience. It should be noted that positioning the CNG collaboration tools outside the game window, for example, next to right side of the game window, has also been considered but gamers seem to prefer the tools rendered on top of the game window. IGIT permits that the tools’ containers can be highly customizable in terms of size, position, and transparency. Two different positioning, transparency setting, and sizing options are depicted in the two screenshots of Figures4 and 5 where RedBedlam’s MMORPG, the so-called “The Missing Ink” [17], is being used within CNG framework. The first screenshot shows the layout of the blogging widget when the user has expanded the widget’s height and therefore a vertical alignment of the panes in the widget is more suitable in terms of usability and visibility. The second one shows the “Wall” widget layout in case the user has expanded the widget’s width and therefore a horizontal alignment of the panes in the widget is more suitable.Figure 4
RedBedlam’s “The Missing Ink” game with integrated CNG collaboration tools, where widget panes are in vertical alignment.Figure 5
The same game with integrated CNG collaboration tools, where widget panes are in horizontal alignment.Finally, an important challenge during the design of the CNG User Interface is the support of multiple game resolutions and screen sizes. To this direction, the CNG online community and collaboration tools have been designed in a manner that is independent of the game resolution selected by the user. This adaptation to the game screen configuration is not limited to the size of the CNG tools’ windows but also considers their web content. At the initiation of the session, the game screen configuration is read through the IGIT JavaScript library and communicated to the CNG Server. Based on this input, CNG Server generates dynamically the appropriate dimensions of the CNG windows as well as consistent Cascading Style Sheet (CSS) files for the various elements (including Flash objects) consisting the web content, thus, achieving a consistent layout of the CNG tools’ windows.


## 4.3. Web Server

The web server is the CNG Server’s component responsible for the provision of the online community and collaboration services. The web server consists of two components: the UI component, which is the part of the web server that constitutes the presentation-tier, and the backend component, which is the part of the web server that constitutes the business logic-tier. The web server is based on the the Elgg social networking engine [18].


### 4.3.1. UI Component

The UI Component is the interface of the overall web server towards the web browser instances in the CNG Client side. At this point it should be noted that the client side of the CNG system is executed within a container that is able to display web content on top of the game, using web browser instances. The UI component provides the client side with the CNG user interface and the Web 2.0 online collaboration tools as web content, that is, HTML, JavaScript, and Flash objects. The web browser instances in the CNG Client side can communicate directly with the UI component in order to be provided with these services. With this arrangement it is possible to update and extend the CNG user interface and the CNG Web 2.0 online collaboration tools without changing the CNG Client.An additional service offered by the UI Component is the provision of the web-based interface that is necessary for the administration of the web server. This interface is available to the users that have privileges as administrators on the CNG system.


### 4.3.2. Backend Component

The backend component is in the core of the overall web server and it is the mid-tier between the other parts of the system, that is, the UI Component and the Database. The purpose of the backend component is to provide all the functionality that is related to the Web 2.0 community and collaboration applications that the CNG system offers and integrates with the games played. This functionality includes also the management of these web applications, as well as the management of the involved entities, for example, users, access groups, and so forth.In addition the backend component also offers authentication and authorization services, to the rest of the system that might require it. Although the authorization and authentication is designed as part of the backend component, since the user accounts and the access rights are a key part of the social applications, the pertinent functionality is provided also using a simple and clear interface that other servers and/or modules can use. The backend component stands between all other components and the database, hiding the database schema and database implementation details, from the rest of the system.


### 4.3.3. External Social Networks

CNG Server has the capability to interact with other existing external social networks. The system’s design includes interconnection with Facebook [19] and Twitter [20] and single sign-on functionality. The user has to follow an one-time setup phase in which he enters his Facebook and Twitter credentials and an access token is generated. In this setup phase, the user has to authorize the corresponding CNG application to grant write permissions in his account. The credentials are used only to acquire a permanent token and are not stored in CNG Server. After this initialization step, the messages that are posted using the community tools can be posted to his Twitter and Facebook walls. This procedure is done at server side, without prompting the user to provide his credentials for logging in to his social networks accounts. The design of the interconnection with the above networks can be considered secure, as long as no credentials are stored in the CNG Server but only the access tokens. These tokens are valid only for usage by the declared network address of CNG Server.


## 4.3.1. UI Component

The UI Component is the interface of the overall web server towards the web browser instances in the CNG Client side. At this point it should be noted that the client side of the CNG system is executed within a container that is able to display web content on top of the game, using web browser instances. The UI component provides the client side with the CNG user interface and the Web 2.0 online collaboration tools as web content, that is, HTML, JavaScript, and Flash objects. The web browser instances in the CNG Client side can communicate directly with the UI component in order to be provided with these services. With this arrangement it is possible to update and extend the CNG user interface and the CNG Web 2.0 online collaboration tools without changing the CNG Client.An additional service offered by the UI Component is the provision of the web-based interface that is necessary for the administration of the web server. This interface is available to the users that have privileges as administrators on the CNG system.


## 4.3.2. Backend Component

The backend component is in the core of the overall web server and it is the mid-tier between the other parts of the system, that is, the UI Component and the Database. The purpose of the backend component is to provide all the functionality that is related to the Web 2.0 community and collaboration applications that the CNG system offers and integrates with the games played. This functionality includes also the management of these web applications, as well as the management of the involved entities, for example, users, access groups, and so forth.In addition the backend component also offers authentication and authorization services, to the rest of the system that might require it. Although the authorization and authentication is designed as part of the backend component, since the user accounts and the access rights are a key part of the social applications, the pertinent functionality is provided also using a simple and clear interface that other servers and/or modules can use. The backend component stands between all other components and the database, hiding the database schema and database implementation details, from the rest of the system.


## 4.3.3. External Social Networks

CNG Server has the capability to interact with other existing external social networks. The system’s design includes interconnection with Facebook [19] and Twitter [20] and single sign-on functionality. The user has to follow an one-time setup phase in which he enters his Facebook and Twitter credentials and an access token is generated. In this setup phase, the user has to authorize the corresponding CNG application to grant write permissions in his account. The credentials are used only to acquire a permanent token and are not stored in CNG Server. After this initialization step, the messages that are posted using the community tools can be posted to his Twitter and Facebook walls. This procedure is done at server side, without prompting the user to provide his credentials for logging in to his social networks accounts. The design of the interconnection with the above networks can be considered secure, as long as no credentials are stored in the CNG Server but only the access tokens. These tokens are valid only for usage by the declared network address of CNG Server.


## 4.4. Chat Application

Chat application can be considered as a real-time communication channel which enables two or more online users to chat using text and voice. It can provide both private and group chat using chat rooms that the users can create. In group chat, all the users on the chat room must be connected to the CNG Server but in the case of private messaging, the messages sent to offline users will be delivered as soon as the users log back in. A notification for new messages is presented to the user when there are any new unread messages and the chat window is enabled but not visible.We have chosen Adobe Flash [21] technology for the implementation of the CNG web-based chat application. This choice was done by observing a lot of benefits in comparison with other solutions like Java and HTML. The most important are the simplicity of the implementation that Flash offers and the client side compatibility. Flash is a multimedia platform that is used for graphic animations and is able to provide interactivity to web pages. Some of its features include the support of bidirectional multimedia streaming and capturing the users’ input devices, including microphone and camera. The Adobe Flash Player is a very popular multimedia and application player supporting Shockwave-Flash (SWF) files. It is integrated as a plugin at most web browsers and is available on many platforms. Its efficiency relies on the fact that it uses vector graphics to minimize file size and create files that save bandwidth and loading time. Finally, the selection of HTML5 was discouraged in the current implementation while it is a new technology that supports audio (and video) playback but not capturing and therefore it cannot adequately cover the CNG chat application functionality.Chat application was designed to be simple and easy to use in order to not require a lot of resources and degrade the gaming experience. An overview of the intefaces between the involved system modules is depicted in Figure6. Like every CNG web tool it is applied as a module in CNG Server and it is located at server side. This architecture enables the maintenance of this tool independently from the system. A replacement of this tool with a tool that relies on different technology is also possible without introducing any overhead to CNG Client software.Figure 6
Overview of the interfaces for CNG chat application.A media server is used as an application server for the chat services. Flash is accompanied by open-source solutions like the Red5 Media Server [22], which is used for the support of the media streaming functionality. Red5 is an open-source RTMP server written in Java that can be used for text, audio, and video chat applications. It supports audio/video streaming (FLV and MP3), client stream recording (FLV only), and live stream publishing. This server handles the CNG chat application requests by implementing the Real-Time Messaging Protocol (RTMP) protocol for all multimedia transmissions of the chat application.The Flash objects that are provided by the CNG Server are intended to provide web-based text and voice communication in an asynchronous mode in order to implement an interactive web application. The chat application maintains a permanent connection between the user and the media server as long as the user is connected. Thus, the user can retrieve data asynchronously without interfering with the display and behavior of the existing page.The CNG chat application acts both as transmitter and as receiver at client side. As a transmitter, it is able to capture voice and text messages and transmits them to the media server, while as a receiver it can receive voice streams and messages and reproduce them in the client side. The backend component’s role is to be responsible for room management and also for access management in cooperation with the media server. Users have to select from the list of the users joined in the room, which voice streams they wish to receive. They can also send text messages to public (in-room) chat or to individual (private) user. The communication within the chat service is not direct between two users, but the messages and streams are transferred through the media server. Figure7 presents the operation of the CNG chat application with respect to its interaction with the CNG Server in the form of a sequence diagram.Figure 7
Sequence diagram presenting the operation of the CNG chat application with respect to its interaction with the CNG Server.


## 4.5. Database

The database is part of the CNG Server and constitutes the data-tier of the CNG Server’s 3-tier architecture. The main part of the data stored in the database are the data for the CNG community and collaboration tools. As mentioned before, the web server and the CNG tools are based on the Elgg social networking engine [18], and therefore the CNG database follows the schema required by Elgg.In order to be extensible, this schema models the entities and the entity relationships in general and allows specific entities and relationships that are inherited from the general entities and relationships. The schema for the “Entities” and the “Entities_Relationships” tables is shown in Figure8. The main entities used are the User_Entities, The Group_Entities, and the Object_Entities. The “User_Entities” table and the “Object_Entities” table model the CNG system users and the user groups defined in the CNG system, respectively. The “Object_Entities” table models the social network objects like the video streams, the blog posts, the uploaded files, and the bookmarks. Figure 9 shows the part of the schema for these main entities.Figure 8
The tables “Entities” and “Entity_Relationships.”Figure 9
The tables “Users_Entities,” “Groups_Entities,” and “Object_Entities” as well as their relationship with the “Entities.”Further to these entity types, the nature of an entity can be further specified through the definition of subtypes. For example, an entry in the Entities that is also related to an entry in the “Object_Entities” table and is related with the subtype entry “chatRoom” is interpreted as an entry for a chat-room object. Similar approach is followed for all the other community and collaboration objects. The subtypes are mainly used for the objects entities, for example, wall posts or video streams, but can also be used for all the other types of entities. The subtypes are modeled by the “Entity_Subtypes” table, which is related with the “Entities” table, as shown in Figure10.Figure 10
The “Entity_Subtypes” table.Moreover, additional information can be added to entities in two ways. The first way is the addition of metadata, which is information that can be added to an entity to describe it more precisely. For example, tags, an ISBN number, or a file would fall under metadata. The second way is the addition of annotations, which are generally information added by third parties. For example, comments and ratings are both annotations. Metadata and annotations are modeled by the “Metadata” and “Annotations” with an additional “Metastring” table to store the actual stings of extra information, which is linked to the entities through the “Metadata” and “Annotations” tables, as shown in Figure11.Figure 11
The tables “Annotations,” “Metadata,” and “Metastrings”.Finally for granular access control every entity, annotation, and piece of metadata is related to an entry in the “Access_Groups” table that models the access rights and is related through the “Access_Group_Memberships” table to the “Entities” table, thus signifying which entities, for example, users, have access to the entity at hand, for example, a live video stream. The relevant part of the schema is shown in Figure12.Figure 12
The “Access_Groups” and “Access_Group_Membership” tables for the application of access controls to entities.This flexible design of the database schema provides extensibility to the system, in terms of the possibility for having additional social objects, additional relationships between the objects, additional information to existing objects, and so forth.


## 4.6. Administrative and Monitoring Tools

As the CNG Server provides online tools to many users at the same time, it is important to monitor the system’s performance and also the online tools usage using administrative and monitoring tools. The users are free to interact with the online community using the CNG tools and it is always possible to generate inappropriate content. In these cases, the administrative tools are used in order to supervise the CNG community network and avoid the distribution of content that violates the terms of service. The users can report any content that they feel that breaches standards on social, religious, cultural, or other grounds. Then, the administrators are finally able to moderate and review any reported user or content.Administrative tools include an interface for the administrators of the CNG system to manage the CNG system using network administration tools and a control panel for users’ accounts administration. The administrative procedures provide statistics like the number of registered users, groups, existing polls, issued blog posts, wall posts, uploaded files, shared streams, and information about currently online users. The administration panel provides full access to users of the system. It supports operations for adding, removing, activating, and  deactivating a user and also resetting passwords and promoting users as system administrators. A common usage of the users’ administration tool is when a user generates some appropriate content and should be banned from the administrator.CNG Server can be configured by setting its basic properties like the URL of the website for the provision of the Web 2.0 collaboration tools, along with its name and description. The administrator can also set the sites email address, the sites default language, and whether secure access through HTTPS is used or not. Apart from global configuration settings, the administrator can activate or deactivate any tools and also configure their parameters. The CNG community network is designed to be modular and can be considered as a compilation of different online tools. That means that the community network can be totally changed by enabling or disabling some tools. With this functionality the collaboration tools could be easily extended and maintained without affecting the whole system. Furthermore, as the administrator is able to configure the tools’ parameters it means that the configuration of each tool may be changed online at anytime by the administrators without interrupting the other tools.The monitoring tools log the users’ activity within the CNG tools and intend to provide information on the users’ behavior in the form of detailed logs as well as through visual aggregated statistics. The implementation of the tools has been based on the Elgg [18] framework’s infrastructure. These tools are used in combination with the other online verification tools in order to provide a complete view of the systems behavior. CNG Server provides a system diagnostics tool that generates a text file with all the configuration information of the system. This information includes all the paths to the files installed in the web server and all the installed collaboration and community tools and any necessary related details. Moreover, the diagnostics tool provides information on the global parameters of the system, such as the Server’s environment, IP, URL, and connected database.Apart from generic diagnostic tools, CNG Server includes monitoring tools that are related to specific collaboration tools. The tool for live video streaming is considered as one of the most important and most frequently used tool of CNG system. The monitoring of live video streams requires a dedicated monitoring tool that will be able to provide detailed information. The implementation of this monitoring tool is illustrated in Figure13.Figure 13
Live video streams’ monitoring on the web server.The monitoring tools intend to analyze the traffic of the CNG tools usage at the highest possible level. The main functionality relies on collecting real data and analyzing them in order to extract knowledge about the usage of CNG community and collaboration tools. It is obvious that the usage of packet capturing (sniffing) software, for example, Wireshark, is discouraged in this case, since the desired information exists at the application layer. On the other hand, the existing common web analytics tools (like Google Analytics [23]) could be used for monitoring the CNG system usage but in a generalized way. They are not able to depict the CNG tools usage because they have no information about CNG tools or users. Thus, the existing common web analytics are not suitable for such in-depth analysis. The implemented web-monitoring tools provide this type of CNG tools analysis and of course can be used for extracting generalized results for the system usage.These web-monitoring tools are integrated to the CNG Server and are fully accessible from the administration panel of the CNG Server (of course for the CNG Server’s super-users). They exploit the existing technology for the Web 2.0 tools. The logged information is stored in the MySQL database of the system and the results can be viewed from the existing CNG web interface. Moreover, the “Google Chart Tools” [24], which is a state-of-art web-technology for data visualization, is used for rendering charts at client side using JavaScript.The logging is executed at every user HTTP request towards the CNG Server. The system parses the requested URL and then finds the referring tool. Furthermore, it utilizes the same URL and the HTTP request method (GET or POST) in order to identify the action of the user within the CNG tool. The results of the web-monitoring process can lead to a variety of conclusions. The collected information reflects the activity of the user on the CNG tools. The results can be organized in various ways based on the choices of the system’s verification engineer or administrator. A filtering procedure that organizes the results (a) per user, (b) per tool, and (c) per action has been implemented for this purpose. This filtering procedure is depicted at the following flowchart.The results are real time presented to the administrator and they are available at three formats: tables, pie charts, and raw logs. Each table shows the results in two columns. The first column refers to the object that is monitored and the second column refers to the hits. At pie chart, the objects are coloured and labelled. This representation is used for visualizing the table content, thus the administrator is able to quickly identify which objects are popular.Raw logs are presented in a table with the columns: IP, Date, Tool, Action, URL, Method. The rows represent the users’ interaction on the CNG tools. This output format can be used for in-depth monitoring of activity within a specific tool or of a specific user. Next, Figure14 displays the logs of a specific user.Figure 14
Raw logs for a specific user’s activity.When a tool filtering is applied, then an action analysis for the selected tool is presented. The verification engineer/administrator can observe which tools are popular and which actions are popular for a specific tool. For example, Figure15 shows the action monitoring for the “Blog" tool. Finally, it is worth mentioning that special care has been given in order for all the above tools to be automatically extended in case additional tools/user activities are added in the CNG Server.Figure 15
Reporting the actions usage for the “Groups” tool.


## 5. Internal Testing

The prototype of the CNG system including the CNG Server and the collaboration tools implemented, based on the presented design, has undergone a testing phase, called internal testing or closed alpha testing. During this phase the CNG system was used together with the TMI on game, by a small number of users, that are members of the CNG consortium and students. Although the purpose of the internal testing was to verify the correct operation of the CNG system and identify problems and bugs to be fixed, this testing gave some initial insights into the usability of the system and its expected acceptance.The testers found that the CNG system did not affect the game’s responsiveness and that the CNG tools work well. The testers appreciated the ability to change the size of the CNG widgets and rearrange them, as to minimize interference with the in-game experience. They also appreciated the ability to change the opacity of the CNG widgets and render them at a configurable level of transparency.However, it should be mentioned that this internal testing procedure was not meant as a large-scale verification, and the tester demographics may not be representative of the target group’s (the players of online games) demographics. Therefore a more complete picture on how the users experience CNG will be available after the completion of the large scale CNG verification.


## 6. Conclusions

In this paper, we presented the system developed in the context of the CNG project in order to provide online community and collaboration services to MMOG players. After a brief introduction of the CNG system and its key features, which are, namely, the IGIT technology and the live video streaming over P2P, we described the CNG system’s high-level architectural design. Then we focused on the system’s design and implementation for the provision the online community and collaboration tools. We presented a detailed description of the CNG system’s core element, that is, the CNG Server as well as the relevant aspects of the CNG Client. Our analysis included details on the user and administration interfaces, the element’s structure, and the functionality for both the CNG Server and Client. All the relevant architectural components were described including the web server, the CNG database, as well as the client-side Web 2.0 components with respect mainly to the CNG chat. It should be noted that, during the presentation of the above aspects, we highlighted all the innovative design and implementation features that distinguish CNG collaboration tools from a typical social networking website.


## 7. Future Work

The next step of this work is the evaluation of the design and the CNG system, during the CNG verification phase. Tests will be conducted, with the engagement of online players, for an extended period of time (approximately 2 months). During this process, online users will be led to use the TMI online game both without and with the CNG system. The assessment of the CNG system will be performed through the collection of feedback from the users through online questionnaires and with the aid of the implemented verification and monitoring tools.As the design of the CNG system is based on real user needs and is influenced by the user preferences, it is expected that the verification phase will confirm the system’s usability, and the players’ intention to use it in order to enhance their in-game experience. It is also expected that the verification process will produce several comments for enhancing and fine-tuning the CNG system, making it more appealing to the users.In addition, since the CNG collaboration tools extensively use and integrate open or de facto WWW standards, several possible contributions to the standardization processes have been identified so far. The first possible contribution could be to the specification of the CSS. CNG system has been designed to support multiple MMOG resolutions and the collaboration tools have to be rendered consistently in all resolutions, therefore it is required to render the content in a resolution-independent manner. Anther possible contribution of CNG to WWW standards could be a set of specifications for audio and video capturing and visual effects support within HTML. Finally, a new set of social relations, typically used within games, as well as support for user-generated multimedia content over online communities, can be contributed to open social networking standards.



---

*Source: 969785-2012-09-11.xml*