Today I was reading some articles on the Amazon site, these are about their web services, in other words cloud computing services. When I heard about cloud computing 5 years ago, I was thinking; why cloud computing? the web is on the cloud right? why are we going to use other approach for web?.
I was like; what cloud computing can offer us that is different than what we have right now?, well today after all those 5 years and after a lot of development work done, I can see why this is important, and what is out there that will help us develop more powerful systems.
AWS (Amazon Web Services) is a set of services that can be hired and will be very helpful when they are used with wisdom, I think the first and most important part of these services is the scalability.
For example if we develop a game that will be played just by three people, does it needs such a complex infrastructure?. At the first sight we could say: No!
But think more, what happens if you start with your own server, and then this game starts being popular, or better; viral. what happens when the game start lagging due so much players in it? well at this point you can buy more RAM, a better processor. But think! what is the first thing that you need to do in order to add this to your server?
Shut down! and this will not make your user happy right? they will need to log out and stop playing for that period of time. This is not good for the business. Maybe for three people is not that important, but imagine if your game is being played by 10,000 players at the same time, and you decide to increase the power of your server, this is a worst scenario.
But, with cloud computing you can stop thinking on this infrastructure. You can let IT professionals handle this for you. Now imagine that the same 10,000 players are very disgusted by the performance of your game, and this is because you have a Pentium III assigned to the game server. And you decide that you have the enough budget to buy a twice powerful processor. And you only say to the IT guys that you will pay for more processing power. And then magically those 10,000 players start playing the game more smoothly. And there was no downtime. This is very nice, don’t you think?
So cloud computing is a really good infrastructure. And there is more! another pillar of the cloud computing is storage. And this becomes more important when you want to deliver static content. Now imagine a MMORPG (Massive Multi-player Online Role Playing Game) that needs to deliver map content to several, let’s say a HUGE amount of players. And when this map is going to change? well let’s suppose that the map is going to remain the same forever (so boring!), but well… this is just an example, so supposing this we have this static map, we can split this map in several areas, done this we need deliver each part of this static content to players, and let’s add something interesting, this is only going to be delivered when they visit that specific area. So they only need that data, when they step into the area. But all the players needs this same content. We can deliver this with a CDN (Content Delivery Network), when we build such a good infrastructure we can achieve better game response. And also we are delegating the responsibility of deliver content to other entity, this reduces the processing of the main game server(s).
Well these are some of the benefits of cloud computing, and this is only my point of view, there are a lot of approaches and a lot of applications that can use these services better, but I’m going to be focusing on mobile game development.
And this is the end of my first post, I hope you enjoy the reading, and I’m here for any comments that you have. Thanks! Stay tuned!