A Networked Service for the Remote Execution of Interactive Multimedia Applications
MetadataShow full item record
In an era of mobile computing where the latest of electronic consumer devices are cheaper, smaller, and lighter than ever before, the best of computer games require the very opposite. Whereas the newest in mobile phones now handle web browsing, word processing, and music and video playback with ease, the most popular game titles still demand heavy desktop computer configurations with one or more dedicated graphical processing units in order to run well and provide the user with the intended gaming experience. On this premise, a service where video games are played remotely in thin-client fashion seems to have more potential than ever. The objectives of this thesis is to design such a service and to realise it to the extent it is possible. In this thesis the objectives were approached by first reviewing the theory of thin-client computing and the nature of video games. Based on the work of similar projects it was decided to create the service by streaming video games as live audio and video streams over IP-enabled networks. By comparing it to similar services in use today, such as traditional video streaming and online multiplayer games, an assessment was made to identify its biggest challenges. Latency and media quality were identified as the two key technical challenges to the perceived user experience in that they necessarily degrade the content from its original state. A third user experience factor was found in the content, i.e. what type of game that is played. It was argued that different games might respond differently to the degraded quality of service - a hypothesis that would be put to test following the realisation. Three game classes were clearly defined for this purpose. Latency was identified as the biggest obstacle in providing a high user experience. Consequently, a theoretic review was carried out in an attempt to decompose the overall system into latency-inducing components. Based on theoretic discussions, system design and implementation was carried out in an effort to realise the core functionality of the service. Two modules were implemented. A server module was created with basis in a video game sharing utility from a related project. A client module was designed and implemented from the theoretic review with various optimisations such as bufferless streaming and a single-threaded design in order to reduce interaction latency. Client applications were created for the three major desktop platforms today, i.e. Windows, Mac OS X, and Linux. With a functional system, evaluation of the service as a whole was carried out by user testing. In a qualitative approach, 8 test subjects carried out a set of instructions which involved using the system at different settings and with different games. During tests, their session variables such as latency and loss values were logged. After the tests the users were given a questionnaire asking them to evaluate various aspects of the system as well as the general service as a whole. Performance testing was carried out seperate from the user tests and targeted technical aspects of the service and the client implementation, such as network load and processing-induced latency.User tests revealed that the total impression of the service varied. On average, the implementation was ranked in the upper end of mediocre. By comparing the results to server logs it was confirmed that user experience correlated with measured latency. This was also the case for media quality in that sessions with higher video bitrates scored better. Furthermore, the results from sessions involving different game classes were in harmony with the discussion on content as user experience variable. The three defined game classes performed as expected, confirming that first-person shooters is the ultimate stress test for such a system. Results from questions on the service in general confirmed that video latency was the property that most likely would prevent test subjects from using the service. Results also showed that test subjects were reluctant to paying for such a service, but very inclined to using it as a tool for game demo distribution. In terms of what features of the service that appealed to the subjects the most, all three options - i.e. ease of installation, platform independence, and lightweight client - were found attractive. The performance tests were consistent with predictions from the theoretic review. The combined tasks of decoding and rendering were measured to be around 75 % of the processing load of the client application, which as a whole took up 15-20 % of the system on a laptop computer. Input handling took up a mere 7 % of the client load. In terms of delay, decoding and rendering was shown to induce between 4 and 12 ms each, depending on session configuration. The network load analysis showed that the generated traffic varied with content and game situation, which is characteristic to the video codec and not the system, and also revealed an error in the server module that affects the video bitrate.