Tuesday, October 15, 2013

Meet Our Customers: Piriform

A short interview with Rafal Girycki, Senior Developer and Team/Project Leader at Piriform, a global provider of award-winning software that makes computer run 'Clean, Safe and Fast'.

Let’s talk about your organization. What is your core business?

"Our company is a global provider of software that makes computers run ‘Clean, Safe and Fast’. Along with our flagship product CCleaner, which is now available both for Mac and PC in different versions for both home and business/enterprise users, Piriform also developed Defraggler, a user-friendly tool for hard drives defragmentation, Recuva, a utility for lost files recovery, and Speccy, an advanced system information tool.

Agomo is the first cloud-based PC maintenance solution developed by Piriform. It brings CCleaner, Defraggler and other useful tools to the cloud".

 Could you let us know any further information?

"Piriform is a privately owned UK software house, with offices in London, New York and Eastern Europe. At Piriform we create award-winning software to make computers faster, more secure and with increased privacy. Our software is used and trusted by millions, in 195 countries. CCleaner alone has been installed more than 1 Billion times onto nearly 25% of all the PCs in the world, and has been chosen by over 1 million business customers".

Monday, October 7, 2013

Optimizing Multiplayer 3D Game Synchronization Over the Web

A few months ago, I stumbled upon an interesting article by Eric Li titled "Optimizing WebSockets Bandwidth" [1]. Eric mentions how the advent of WebSockets has made it easier to develop HTML5 multiplayer games. But delivering the positional and rotational data for each player in a 3D game can consume a lot of bandwidth. Eric does some calculations and illustrates several optimizations to expose how much bandwidth might be needed.

Table of Contents
After reading the article, I was thrilled because I have been dealing with bandwidth optimization of real-time data streaming for thirteen years now. I am the CTO and co-founder of Lightstreamer, a Real-Time Web Server that we originally created for the financial industry to deliver real-time stock prices. Well, many of the optimization algorithms created for online financial trading can be applied, unchanged, to online gaming. And we have worked with many banks across the world for several years to optimize bandwidth and reduce latency. So, I considered Eric's article as a challenge to demonstrate how well the algorithms we have developed in the last decade can give immediate benefit to multiplayer games, including MMOs, MMORPGs, and immersive 3D virtual worlds. Coming from the sector of real-time financial data, I am not a game development expert but I think that "cross-fertilization" between finance and gaming could give some unexpected benefits.

We decided to work on an online demo of a simple multiplayer 3D world, using Lightstreamer for the real-time synchronization, while showing the actual bandwidth used. We added several buttons, sliders, and controls to allow tweaking the parameters of the scenario and simulate any flavor of data delivery.

The final result is a toolkit that can be exploited to experiment and tune different game communication scenarios. The full source code of the demo is freely available on GitHub.

In this article, I will take you through the demo, showing you how to use it, explaining what's under the hood, and illustrating some of the advanced techniques employed. If you are interested to know how we optimized the network transport, you can skip to the section "Techniques to Employ in the Real-Time Web Stack" below.