Spotlight: Brandon's GameStow

gamestow.png

Here's how GameStow uses Pusher in three different ways.

Introduction

We’ve chatted to Brandon Chez, who developed his own cloud based solution for saving game files, GameStow. He put the idea on the funding platform Kickstarter, and the project was a success. The prototype is now open and anyone can try it out for free.

What does your app do, and what problems does it solve for your users?

GameStow helps PC Gamers to store their game progress in the cloud. Since there is no consistent hard drive location for game save files, it can be frustrating for users to hunt them down if they ever want to backup their game progress. GameStow knows exactly which files need to be backed up to the cloud and will automatically sync the necessary files once the user quits a game. It also helps keep games that are installed on multiple computers synced with the user’s latest progress, regardless of which computer the user plays from.

gamestow-pusher-1.jpeg

What functionality is powered by Pusher?

GameStow uses Pusher in three different ways:

  • To notify other computers running GameStow that newer versions of game save files are available to download from the cloud.
  • To keep the desktop client consistent with any account updates. For example, if the user updates their profile on the website, any profile info displayed on the desktop client will be updated immediately.
  • To keep track of how many users are running the desktop client at any point in time.

The client app is a .NET 4.0 executable which monitors game save files and uses the Pusher .NET client library to be informed of new or updated files based in the cloud. When local file changes are detected by the app a request is made to the GameStow REST API, which is hosted on EC2. Whenever the API receives a sync request from the client app, it then makes calls to Amazon S3 and Amazon SDB to fetch/store the files. If they store new or updated files, the API will send an event through Pusher, using the Pusher PHP server library, to the other connected computers running the .NET app to notify them that some new files need to be downloaded.

How does this new functionality improve the user experience for your users?

Since all files are synced and updated in real time, the user doesn’t ever need to worry if their game save files are out of date!

Have you got any technical tips or code that could help other Pusherinos?

WebHooks trigger events when the first person joins a channel or the last one leaves a channel. If you give each user their own unique channel, you can use WebHooks to monitor how often users are connecting to and disconnecting from your app.