Q4S: A quality of service approach for HTML5 and WebRTC
Q4S is an IETF protocol for enabling real-time multiplayer games. Q4S measures the connection quality during game session in terms of latency, jitter, bandwidth and packet loss, alerting whenever one of the negotiated conditions is violated.
Multiplayer games benefits from Q4S adapting the game movements in order to provide the same user gameplay experience to every participant, regardless their connection quality differences.
With Q4S protocol running on each participant, the reaction times are identical to all participants. None player plays with advantage over other player.
Q4S measures continuously latency against game server and propagates these measurements to other participants for equalling conditions. In addition, Q4S alerts on packet loss or latency could be used to achieve actions over the game server and/or over the network, improving user experience, reducing or increasing video resolution, difficulty, and other possibilities in real-time.
Q4S alerts may be taken into account by network owner (operator), enabling a new Quality on demand business. However, in this hackathon we will focus on Q4S application-based Quality Of Service capabilities.
Q4S Hackathon Challenge
The following diagram shows the hackathon server and the challenge definition. As a developer, you may create a multiplayer online game using HTML5/JavasScript. All in one chrome package app, without server-side programming.
1. Google Chrome version 23+, you can download it from development channel:
2. Download BasicGameSkeleton package application (including Q4S):
Basic Game Skeleton
Go to 'chrome://extensions/' where unpacked application can be loaded from our project folder pressing the button 'Load unpacked extension”.
Once accepted, the game is loaded.
All these activities require the 'Developer mode' checked in this page
BasicGameSkeleton includes the following files and folders:
main.js: declares the start page and its size.
manifest.json: game Information
inicio.html: start page
css: CSS folder
images: image folder.
Add your game logic, implement the mandatory methods, call API for sending actions and customize look and feel of your game.
3. Upload your new package application to the hackathon server. Everyone can now enjoy it!
Chrome Web Store Game Examples: