The Inter-life project aims at harnessing the power of 3D virtual worlds such as Second Life to help young people develop social skills and navigate difficult transitions in their lives. The team working on the Inter-life project have developed a private 3D island –the Inter-life Island to help with this research. They are looking at 2 groups, the first are gifted and talented children and the second are first year university students.
Visitors to the island can engage in creative and confidence building activities in a safe and supportive online environment.
There is an in-world monitoring system which logs back-end activity and positional data at the dedicated server at the University of Stirling [6]. It is this positional data that aids in plotting avatar locations on the mobile device.
Second Life Apps
There are quite a number of Second Life mobile applications. A fully functional Second Life application which supported the Second Life 3D world was released on Samsung mobile devices back in 2008. The Second Life client for Samsung cellular devices had some notable features. They included a mixed blogging platform that allowed users to post their blog synchronously in the real world and Second Life’s virtual world. The Samsung Mixed Contact feature also allowed users to have mixed world interactions by communicating with avatar friends through voice or short text messaging. The Second Life client was compatible with Samsung mobile devices running Windows Mobile OS [7].
While this seemed like a good idea mobiles devices, usually do not have state-of-the-art hardware to handle the intensity of such applications. They normally eat away phone resources such as memory and battery life.
There is also a version of Second Life on the iPhone called PocketMetaverse. Users can have a real-time chat experience with members in-world, as well as from app to app. PocketMetaverse enables users to teleport from one region to another and it also covers a wide region of the Second Life grid. All the maps on PocketMetaverse are in 2D. Figure 2 shows as screenshot of PocketMetaverse for the iPhone.
Screenshot of PocketMetaverse for iOS
In addition to the apps already discussed above, Xin Li of the University of Stirling also worked on an app for the InterLife Island. However, the development platform was the Android operating system. Its main features included plotting avatar locations on the InterLife map as well as a chat function for communicating with avatars.
The features of the app being built for this current project include the ability for users to see their contacts online on a 2D InterLife map. Another important attribute is the ability to see their exact location and coordinates on the map. It also incorporates a communication platform using a Twitter API for interacting with avatars in-world. Most importantly this is one the first apps for the InterLife Island specifically programmed for devices running Windows Phone 7.5.
Before developing any application for Windows devices, be it desktop computers, laptops, notebooks, tablets or even mobile devices; one needs to acquaint themselves with some state-of-the-art Microsoft Technologies. Obviously these came up during the research stages for this project and as such deemed it necessary to include their discussion in this report.
The .NET Framework is a programming infrastructure created by Microsoft. It is an integral Windows component which supports the development and running the next generation of applications and XML Web services [8]. The .NET aspect in the Framework’s name should not be misconstrued as being a purely Internet-focused framework. The .NET tag in the name is there to reiterate Microsoft’s belief that distributed applications, in which the processing is distributed between client and server, are the way forward [9].
The .NET Framework is designed to bring to realization these objectives:
-
To make available a coherent object-oriented programming environment whether object code is stored and executed locally, executed locally but Internet-distributed, or executed remotely.
-
To yield a code-execution environment that brings to a minimum software deployment and versioning incompatibilities.
-
To provide a code-execution environment that promotes safe execution of code, including code created by an unknown or semi-trusted third party.
-
To provide a code-execution environment that discards the performance problems of scripted or interpreted environments.
-
To make the developer experience consistent across widely varying types of applications, such as Windows-based applications and Web-based applications.
To build all communication on industry standards to ensure that code based on the .NET Framework can integrate with any other code [10].
The .NET Framework contains 2 major parts:
Short for Common Language Runtime, a runtime environment that manages the execution of .NET program code and provides services such as memory and exception management, debugging and profiling, as well as security. The CLR is a major component of the .NET framework. The CLR also is known as the Virtual Execution System [11].
-
The Framework Class Library
This is the collective name for the thousands of classes that compose the .NET Framework. The services provided by the FCL include runtime core functionality (basic types and collections, file and network I/O, accessing system services, etc.), interaction with databases, consuming and producing XML, and support for building Web-based and desktop-based client applications, and SOAP-based XML Web services [12].
There is a downgraded .NET Framework version on handheld devices running Windows operating systems like the Windows Phone. This version of the framework has limited functionality which obviously matches the hardware capabilities of the devices they run on.
Programming in C-Sharp (C#)
Main programming for most Windows devices is C#, C++, Visual Basic (VB) or F++. With the help of the .NET Framework all these programming languages are interoperable. C# was developed by Microsoft and just like any other programming language is objected oriented. It provides a means for coding almost any type of software or component that is needed to be written for the Windows platform. Between them, C# and .NET have revolutionized the way developers write their programs and have made programming on Windows much easier than it has ever been before [13].
Relationship between C-Sharp and the .Net Framework
The .NET Framework is the most significant technology for developers at present, .NET is designed to provide an environment within which you can develop almost any application to run on Windows, while C# is a programming language that has been designed specifically to work with the .NET Framework. By using C#, you can, for example, write a dynamic web page, a Windows Presentation Foundation application, an XML Web service, a component of a distributed application, a database access component, a classic Windows desktop application, or even a new smart client application that allows for online/offline capabilities [14].
Versions of Windows Phone – Brief Overview
What is now known as Windows Phone was actually the successor of the Windows Mobile operating system. Over the last decade or so, there were numerous versions of Windows Mobile operating systems. The very first version debuted as the Pocket PC 2000 operating system in April 2000 running on PDA devices. The operating system metamorphosed into several other different versions until Windows Mobile 6.5- released to manufactures in May 2009.
The earlier versions of the operating system enjoyed a great deal of success with the consumer market, especially business organisations. The inception of the iPhone running iOS, by technology giants Apple in 2007 revolutionised the whole mobile phone industry. The sleek features and design of the iPhone caught on very fast with consumers. This dealt a heavy blow to Windows Mobile’s market share.
Not long after Apple introduced the iPhone, Google also shipped out their Google Android mobile operating system. This went on further to cripple the Windows Mobile operating system which at that time was struggling to recapture its original consumer market from Apple, amongst others.
Microsoft’s answer to Windows Mobile OS – Windows Phone
As a result of the difficulty Microsoft faced with its waning sales in the mobile technology industry, there came a need for a total reboot of Windows Mobile, basically starting from scratch. In February 2010, Microsoft unveiled the Windows Phone 7 operating system. This was a totally revamped mobile operating system which bore no resemblance whatsoever to its predecessor Windows Mobile. The operating system is simply referred to as Windows Phone. On October 21 2010, Windows Phone was launched in Europe, Singapore and Australia. It was launched on November 8 2010 in the United States and Canada.
Market Share Projections
The International Data Corporation (IDC) predicts that by 2015 Windows Phone worldwide sales will beat devices running Apple’s iOS, and will be second to the Android operating system. The table on page 9 shows the projected market shares of all the mobile platforms by the year 2015.
Market Shares of Mobile Operating Systems [15]
Networking and Web Services for Windows Phone Using Sockets on Windows Phone
Windows Phone 7.5 supports the use of socket connections, TCP and UDP. This feature is not supported in version 7.0. The use of sockets played a very important role in this project. TCP was used in communicating with the InterLife server. Figure 4 shows a typical TCP socket connection using Windows Phone.
To communicate over TCP, a connection must be established between the client and the server. The endpoint to which the client wants to communicate must be defined as part of the connection request. This is an asynchronous operation in Windows Phone.
Data can be sent from client to server once connection is established. It does so by setting up a buffer of data and passing it to the server. TCP is stream-based and the order in which the data is received is guaranteed to be in the order in which it was sent. The TCP protocol takes care of this ordering and reliability for the transmission.
The client can request to receive data from the server. This is an asynchronous call and, if successful, the resulting callback will contain the buffer of data that was sent.
Once the client has finished communicating, it calls shutdown to inform the server that the socket is terminating. This call is used to make sure the remaining data from the server is received before the socket disconnects. Finally, the client disconnects the socket and closes the communication channel.
Client-Server Communication using Sockets on Windows Phone [16]
Character Encoding for Windows Phone
At present Windows Phone supports 3 types of character encoding, they include UTF8, and Unicode which uses an encoding of the UTF-16 format that uses little-endian byte order and the BigEndianUnicode which uses an encoding of the UTF-16 format that uses big-endian byte order. All information sent from the Inter-life app for Windows Phone to the Inter-life server relied on the BigEndianUnicode character encoding compatible with that of the Inter-life server whose encoding is also UTF-16 based.
Share with your friends: |