So, my wife downloaded that game from the app store. It’s of rather simplistic nature, yet very addictive. So there she was – gaming on her phone, occasionally swearing out loud just to retry again the very next minute; every now and then cheering of satisfaction and excitement once she mastered a particularly challenging level. Witnessing this result of well-balanced gameplay I could not help but think: gamificiation – at its best!

Its been the first time I have seen her so attached to a game, which got me curious so I gave it a try. Shortly after I found myself equally fascinated by the game.

Having spend more time with it than I would have thought (and way more than I’d like to admit) it soon had me thinking about a simple question: why is that game for free? I mean, if you got a damn good game – why just give it away?

That question got me thinking. Sure, there are many ways of monetizing game development. Maybe that game is just a door opener – a freebie. Free quality games surely bubble to the top of the app store charts quickly and as such attract potential customers. Now that sounds square and fair in my book…

But is that all there’s to it? In that particular case, probably yes.

After having checked out the game at the store followed by very basic web searching I realized that this game was free for only a very limited period of time and that the regular price tag is $2.99. (Which I do consider a very reasonable price for a great game by the way. If I do my usual math of comparing the price to the number of hours of entertainment than it’s a bargain for sure….)

Note: By now you may wonder why I keep talking about the game without disclosing its name. Well, truth is that the game was just a trigger for further thoughts. Nothing more. I am not affiliated with the developer(s) of the game in any way.

In fact, I just got hold of the game in a very common way – by recommendations and then downloading it from the app store. As such I do not have any insight into how the game was developed, the source code or anything else. Consequently, all the of the following thoughts are purely hypothetical and I definitely do not want to link that particular game to what I’m gonna write here. Ultimately I got to believe that it may be best to omit the name altogether … as much as I’d like to endorse it.

Back to the story… So, are there other ways to monetize a free game? The usual suspects would probably be advertising, marketing, cross-selling, promotions what else you got.

Yet, in a true conspiracy-theory fashion my thoughts were heading elsewhere.

The unusual obsessive usage of my phone as a gaming device started to quickly drain the batteries. That caught my attention. Could it be that this game is eating up all the processing power of my phone? It seemed unlikely. All about this game was simple: the rules, the design, the user experience (a diabolic mix!). As such, I doubted that this type of games would be anyway near of maxing out the processing power of the phone.

Now wait a minute…

If that is the case, it meant it would be technically be possible to run the game AND leverage the rest of the available computing power doing something else. That could be really be anything one could think of… let’s say running a massive calculation in a highly distributed manner or any sort of coordinated operation.

Bot nets came to mind, a term which is typically associated with illegal cyber attacks and the like. I’d say that any app that secretly performs operations which are not directly associated with its core value proposition qualifies as malware in my book. But how to know for sure? Who knows what exactly the device is doing all the time? So in the end, it’s all a matter of trust… trust in devices, trust in vendors, trust in software, trust in developers!

A Question of Trust

Open-source seems to be the best choice then, hm?

Only for the experts, who are able to understand all the code, build and then personally deploy it on their phone/device. Only this group could check if an app really does what the user think it does – that and only that. Nothing else.

That greatly reduces the number of people who don’t rely on others to make sure the app is free of “hidden features”. Yet, even for them .. it simply goes to the next layer (think onion!). The programming language, the vm (virtual machine), the OS (operation system) and so on. Stack over stack…. and that’s only on the device. We also route that data through the net. At the end, it’s trust for most of us, isn’t it?

To reduce the security risks introduced with the mass adoption of computers and post-pc devices (and everything else that runs any kind of software, firmware or transmits data) vendors started to construct closed environments (so called sandboxes) to isolate apps and lock them in – only capable of using well-defined and secure communication protocols and APIs. If all of this is done in a proper way it gets really hard for people to break out and bypass these defined rules.(Note: I said hard, not impossible. At the end of the day it’s just a question of how much criminal energy is required to break a system.)

As a consequence I think that jail-breaking or rooting your phone sounds like a step one should not take lightly as it affects your “circle of trust“. I recently refreshed on my security skills and what stuck with me was that “security is not a state, it’s a process.” There will always be people that will try to break the rules and the system.

Mobile Clouds

So, enough about this negative scenario which could well just be the result of a post-security training paranoia or whatever… There are always two sides to every story, isn’t it?

Now what if … that available processing power would be used for something positive? Like searching for extra-terrestrial life (SETI@Home) or – even better – a cure for cancer or whatever else there is worth calculating, crowd-sourcing and getting computed? The amount of devices capable of doing some nifty processing AND are “always connected” to the web (and consequently to each other) is steadily growing. Current gen(-eration) smartphones and tablets already are multi-core.

(Now, I know that mobile devices may not be the most efficient number crunching devices there are. GPUs are superior for that purpose for sure. Furthermore, it greatly depends on the particular task whether or not integer or floating point optimization is preferable. However, as we know too well technology is moving fast and both processing capacity and the number of devices will steadily increase. I’ll get back to that point at the end.)

As such, why not use that available processing power to do something good – as a contribution to a greater cause. Let’s say: develop a great game which gets downloaded a million times. And while people play the device does some number crunching and parallel computing at the same time (of course completely transparent and in agreement with the user).

We are talking about millions of devices. To avoid the term bot net and its negative associations I’d be willing to call it mobile clouds (feel free to suggest better names though!)

If taken to the next level you could provide a platform (e.g. based on Apache Hadoop) that exposes an API that would allow developers to include the functionality as a shared library into their games or apps. The platform would allow organisations to create projects and post the data about the calculation they would like to have processed. The app developers would then be able to suport a specific project which they would help to process in the background while the app is run. Or, you could let the end-user choose IF and to which cause they’d want to contribute to when using an app that is supporting the platform.

Applying gamification to such a platform may encourage people to donate processing power to a cause they support.

Let’s say we level them up so that if a pre-defined threshold of users is calculating at a same time they get rewarded with digital incentives like achievements, trophies, banners, ranks or other status symbols that inspire people to contribute and thereby compete against & with each other at the same time. Companies, Universities and Research Labs interested in having calculations done would issue particular challenges to promote particular projects. You know, that type of things…

Or think geo-location. A good friend of mine once build an interactive website for the WWF (EXPO 2000) on which their logo was drawn in connect-the-dots fashion: each dot representing a location on the world map. It required a special amount of people to activate each dot/location, which encouraged people to logon at the particular location/event. I’m sure you can think of many more scenarios of that sort.

Oh well… I’m certainly neither the first nor the last thinking along these lines, yet I found it worthwhile writing it all down. Just as a snapshot for later reference. If, by chance, some of you know about similar projects or related information – please let me know! I’d really be interested in following up on some of these ideas…

One last remark. The skeptics may doubt that mobile users would donate processing power as it’s a limited resource during the day. True, it’s right that draining the batteries when being mobile does not sound very appealing and personally I’d avoid such apps when I’m on the go. However, mobile phones are also used as gaming devices at home these days and personally I’d be ok to donate processing power when sitting on a couch. Furthermore, such a platform would obviously aim to support as many possible devices as possible starting from smartphones, to computers, to servers up to server farms…. (feel free to hook-up any idle HANA box as well!)

Wow, that got a bit lengthier and less structured than I originally hoped for. Oh well, every story sets its own plot – I’m just the narrator ;)

Kudos: As I sign out I’d like to give a brief shout-out to some of the people that got me thinking on these topics. Props go to enterprise geeks, Mario Herger, Markus Detering and Thomas S. (your security session was just great!)