Code Poetry
and Text Adventures

by catid posted (>30 days ago) 8:24pm Thu. Mar 28th 2013 PDT
The way our average cellphone game lifecycle works is:

1. Money goes into ads to drive it up the charts.
2. Users jump on the game in droves and we have a huge spike in active users.
3. Users slowly lose interest and fall off the game.
4. Some stay behind and we have a steady-state of active users.

We want the best impression for users to be in those critical few weeks after launch.

During this time we constantly push updates to the app stores making it look better, perform better, fix bugs, etc.

However, I postulate that the majority of users do not update our games once they are installed.
With auto-updates, new content gets pushed to users whenever they open the app, which re-engages them more to play and see what changed.

Furthermore it would be possible to distribute a very small binary on the app stores and load all the content through CDNs to get people into our games faster.

Distributing the updates could be through an HTTP-based CDN but this does not perform ideally on wireless networks.  The best CDN would be based on a UDP+FEC transport falling back to MTCP+FEC transport.  We can advertise it as a secure data distribution system since encryption is easy to add since we control both ends of the tunnel.

This sort of CDN does not currently exist.

We can provide this CDN based on S3 and other existing hosting services, and completely push the cost of using it to the users of our service, taking a small profit over hosting costs.

The cellphone app library would determine the nearest CDN and contact it for updates.  The CDN would react to load and scale up with demand.

For Android this CDN can be set up to provide full app delta patches, specialized for file format, etc.
For iOS we would push users back to the store if their code is out of date but allow developers to push content updates.

We can transcode PNG into GCIF to reduce download times further and other mobile app-specific tech.


This would also be a good stepping-stone for building a low-latency real-time online game network.  Providing some common types of real-time synchronization and the servers would be perfect for the market we are in now, where people want to leverage existing tech and aren't willing to write it themselves without forming a company.
last edit by catid edited (>30 days ago) 8:37pm Thu. Mar 28th 2013 PDT