2013 has so far seen the emergence of some pretty strong endorsement for the cloud when it comes to games. Peter Warman, CEO of the highly rated NewZoo, boldly declared in February that “Someday all games will run in the cloud’. I agree with this. I am not sure when exactly it will apply to 100% of games but I am sure 2014 will be the year that most games convert. Many of the larger games studios of course already architect their games on the cloud. In fact, if you look at a game like Candy Crush, the device executable is only a tiny part of it. Most of the smart stuff is done in the cloud or on the server-side. It's a mindset shift that games developers need to adopt. Companies like King think data centre when they think game. Most of us need to do the same. Here’s why …
(please note that in most cases I am using ‘the cloud’ to imply server-side but stick to referring to the cloud for reasons that should become clear at the end)
These days a game needs to launch across a lot of platforms – particularly if mobile. A game that has to launch across iOS, Android, Windows etc on tablet, smartphone and now the whole plethora of open consoles appearing on the market will end up having lots of versions of the core game client-side code. In fact many of the games developers we work with have up to 15 different versions of the same game. This is a versioning nightmare and not to mention unmanageable in the medium term. It makes complete sense to reduce the amount of game logic that happens in the client and transfer it to a single instance on the server that interfaces with them all. Of course there are lots of ways to minimise the overhead of the versioning issue such as source code control systems like Perforce and Git. Game engines like Unity also allow you to write once and run across devices. Sure these can work … but combined with the other key reasons, the best solution is to move as much of the game logic to the server as you can. This is really just following the architectural shift towards multi-tiered systems that has already occurred in many other verticals.
There has been a strong paradigm shift towards thinking of games as a service (GaaS) rather than as a product (GaaP). Why? It's less risky for both publishers and developers … They are less orientated around trying to build instant hits and gambling huge amounts to support the initial launch. Rather they take a long term view and take a good game concept, get it out as early as possible and build player numbers over time making sometimes (but hopefully minimal) fundamental changes to the game in response to feedback from players. There are other reasons for this shift too though. Basic technology changes make this shift possible. Digital convergence generally speaking has played a big role. GaaP to GaaS is the key way the games industry is evolving to the changing digital landscape (always-on fast connections, device capabilities, penetration leading to huge player volumes, etc etc). Ultimately, to sustain a games business the games have to make more money than they cost to build and operate (and yes – to market). Of course I realise this is stating the obvious but it needs to be stated plainly as it seems to get overlooked by so many people so frequently.
The business models underpinning the games industry are evolving so fast it is hard to know what works in every circumstance. Freemium? F2P? Subscription? Which one is right for you? If you embrace cloud-based gaming you don’t have to hitch your wagon to only one of these models. Cloud-based systems allow you to play with these models a lot more. I don’t advocate designing great gaming experiences without having a strong idea about how to go to market but I do strongly recommend you build in the ability to tweak it or alter it as you go forward in response to what your player base tells you. There are no hard and fast rules around this. What works for one demographic in one country for a particular genre of game may not work elsewhere. There are so many variables at play that it's hard to predict with any certainty. Publishers play the game that VC’s do … they bet on several and hope and pray the good bets cover the bad bets. It's not a good idea to just take a punt and hope for the best.
When you run a game as a service, you are now in the business of building an audience and trying to make more money from them than it costs you to get them to your game. Once you have players playing your game you need a lot of capabilities in order to be successful at this. You need to understand how players are playing the game. You need to understand their preferences and their buying habits and be able to respond to this. You need to give them new and engaging content. You need to enable them to engage socially with their friends. It is only when these things are done properly will a games company successfully sustain and grow its player base. You cannot achieve this without having your games based on some server side capabilities such as player management, in-game commerce and storefront management, dynamic content management, analytics etc.
I am a huge fan of the Free-2-Play revenue model for a variety of reasons and recognise one thing very clearly. To do well out of it I have to be an expert at selling. There are many levels to this expertise. The first and most important aspect is to design the whole gaming experience with this in mind. Game designers need to create scarcity in a world where clearly there are no real limits to supply. I can create more digital tractors than the world will ever need – anyone can. Once there is scarcity you have a supply and a demand. Once you have that you have a market … and once you have that you are in the selling game.
If the game design is good then the second thing you need to get pretty good at is retail theory and have the systems in place to support you. You need to have stock management, pricing, placement, store management, analytics and reporting capabilities. These are all tools that should be available on the cloud as it would be wrong to build them into each and every game. They are the essentials of eCommerce systems and there is no way one can be good at retailing across a large install base of games on different devices without some basic player management and merchandising systems in place. Running a game requires flexibility so that things can be changed dynamically. For example, being able to change the prices of virtual goods on the fly, offering discounts for loyalty and running promotions. It's an impossible task to get all of this right up front which is why your game needs to be dynamic and cloud-based. Getting this right is the key to success like that enjoyed by Supercell with Clash of the Clans and King with Candy Crush.
Systems in this area are in short supply admittedly. The larger games companies have, to date, had to build these capabilities themselves, which is a shame. People in other verticals, faced with similar challenges, wouldn’t expect to have to build a CRM or an eCommerce system from scratch any more. I’ll be open. I work for a company (GameSparks) whose main purpose is to bring these capabilities to every games developer. The reason I work for this company is because I believe what I am writing.
In a very competitive world, player acquisition is one of the larger issues facing game developers. It is surprising therefore that so many game designs overlook one of the key strategies around player acquisition: multiplayer. Ultimately, games that are more social by design and bring people together to play are more viral. Letter Press, Draw Something, the ‘with Friends’ series from Zynga were all at one stage (if not still) hugely successful games because of the social and multi-player nature of the games themselves. Forget marketing. If the games themselves do not support virality the game is handicapped from the start.
With respect to multiplayer, Apple’s Game Center provides a hybrid solution for iOS devices only. Google Play’s Game Services does the same and aims to support both iOS and Android. In this writer’s opinion these are just scratching the surface. If you are going to be successful in building social multiplayer games then you have to understand what you are really doing. Limited game state persistence, leaderboards, challenges … these are great things but they are the tip of the iceberg really. Ultimately you need to transfer game logic to the back end and develop server-side code.
Games that do not run on the server do not have a problem scaling. Let’s acknowledge that upfront. However, a lot of the arguments for moving to the cloud really pertain to making your games more server-side and let’s face it … you can do that without a cloud. The cloud comes into play to make scalability easier and, in many cases, using cloud services is the only way to make the whole thing commercially sustainable.
Perhaps somewhat naively, I am of the opinion that most games developers build their games with a view to making them successful. For server-based games this would imply the need to scale the back end services appropriately to meet the player volumes expected. It's very hard to predict accurately and it makes no sense to provision a large infrastructure upfront without certainty. Cloud or Infrastructure-as-a-Service offerings remove this burden and allow you to launch your games on a minimal infrastructure and then burst or scale as appropriate.
Just be wary that using a 3rd party IaaS provider requires some know-how too. One needs to be careful about bursting freely and incurring charges for that without taking into account the revenue performance of the game. You somehow need policy management that enables you to set the option: ‘burst to this capacity regardless of game performance and only go above if game is profitable’. GameSparks allows you to do this by the way.
All of the reasons cited here are closely linked. Our vision is for all games to eventually be run as services, managed from the cloud. It's a vision that divides the games industry and no doubt there are lots of examples where this is not the optimal design paradigm right now. Some day it will be though .. for all games.