There is one important thing we must keep in mind all the time if we want to create a popular social application: players are our most important resource. This statement does not only concern core developers or game designers – many more people must understand it.

The whole team must work on building a successful application – developers, server administrators, database architects, content managers, game designers, QAs, level designers, translators, composers, promoters, SEO experts etc. All of them must want to create a great application, and if one of them is not interested in the idea – it may be a failure.

While developing online social applications we discovered some issues that can kill the success of an application. Let’s take a look at the most important ones:

 1. Main aspects

quick response
As players receive some response to their action, the game should get more exciting and attractive. Therefore, the best hosting solutions are preferred, and, of course, the best server scripting technologies and developers are required.

stability
Players will not trust an application that cannot provide stable service – that’s obvious. But, unfortunately, things can go wrong sometimes. So, in case any problems with the application occur or any data are missed (for example, user does not have a stable Internet connection and some data are lost in communication), player should receive valid problem information. It can be an overlay informing user about existing issues or scheduled maintenance.

data integrity
It is important to build a solid system with no loss of any player info. Virtual balance and level progress are the most important things for players. So, on both sides – on the client and server one – control over all data updates is required.

cheating
Yes, some people do try to cheat or hack an application. Most of those users try to increase their virtual balance or level progress. However, using secure socket connection with specially generated secure keys can help solve the issue.

social integration
Social features make games more fun for users. For example, posting to the Facebook stream or Twitter feed, sending gifts to friends, some kinds of leaderboards, etc. will bring benefits by encouraging players to run the application again and again.

personalization
Social applications can be personalized for each player. The application can get a lot of information from player’s Facebook profile. For example, the application can say happy birthday or merry Christmas to player.

frequent updates
If users play the same game for a long time, they get bored. So, to keep the players excited, you will need to provide them with regular updates. Some kind of new bonuses, gifts, promotions, new items to purchase will be great. Holidays promotions are also important, for example, at Christmas, on Mother’s day, at Easter etc.

translation
It will be better if the application is translated to, at least, several most popular languages. Based on the player’s location or profile info, or even browser language, the application can automatically detect user’s language and provide relevant content. Of course, making updates in a few languages is harder for content management, but it is worthwhile.
We have reviewed the aspects that the whole development team should keep in mind. Now, let’s check the major IT issues that IT developers should take care about:

2.  Asynchronous requests

To build a usable and interactive social application, many data updates are required. Much data is changed when the application is used, like user balance, level progress, leaderboard position, friends’ online status, etc. So, all of these data can be received from the server. To increase application performance, it makes sense to use asynchronous client-server communication.

3. Content Distribution Network

Once an application becomes popular (that is, many players are using the app simultaneously), some problems may arise related to the main server overloading due to a big number of requests for static content – images, configs, JavaScript, sounds, flash files, etc.
In this case, it is required to use special static content servers, where only the static resources should be stored. That way, users can receive all the required interface elements fast, and the main server loading will decrease.

In addition, if the application is intended for use from different countries or even continents, there is one more must-have feature. It is called CDN (Content Distribution Network). This network means that servers for static content storage are located in different countries, and people from different cities and countries can access application faster, because less time is needed to access all the static data.

4. Database replication

On the other hand, there may be a bottleneck on the database side.
Multiple simultaneous queries will cause many lags and problems in the database. So, the best solution is using master-slave database replication. In this case, urgent data updates will use the master database, and other queries on reading data from the DB will use the slave one. From time to time, the two databases will be synced (all changes from the master will be written to the slave).

Second major feature that should be used to increase performance is database cache. All rarely changed data, like leaderboard, awards, shop items, etc., can be cached so that all other queries can be executed faster.

5. Aspects of back-office data management (editing, deleting)

It is important for admins working with the application from the back office to understand that they should not remove existing achievements or statistics that users can already have.
For example, user receives some award or badge. But the content manager decides to delete it from the back office for some reason. If this badge disappears from user statistics, the user will think that the application has some lags or that the game management is dishonest. That’s not good for the application success.

So, any changes in existing data should be made clear for players, because they spend their time and money in the game.

Developing back office for social games, we put a lot of effort into the issue. Usually, no data are removed from the application, but they are simply marked as “removed” and this item will never be shown to players who don’t have access to it.

So, as we can see, during development of big applications all the team members should work as one solid engine. There cannot be any unimportant issues in their work – all the required features should be developed with maximum responsibility. That’s the only way to create an app to work seamlessly.

Our team can provide skills, service and stability for perfect applications development

Feel Free to Ask Us a Question  !