Wargaming Platform: Hello World
WTF is Platform?
Wargaming has a separate division that is engaged in ... developing a certain “platform” for publishing games. It is very difficult to explain what the Platform is, what it is and is not, but I will try.
Why did the article appear
Hello! My name is Max. And I'm working here [at Wargaming].
We have a separate division that deals with ... is developing a kind of "platform" for publishing games. My colleagues and I have a desire to tell you about the Platform and its internal “kitchen”: who we are, what we do, what technical decisions we make, what we have, and what not. I am one of the “old” employees of this team, and in this article I want to talk about how we came to the need to create the Platform and the main stages of its development.
History to the top: the very beginning
World of Tanks is not the first game of Wargaming, but the creation of the Platform began with it. Although the concept of [Platform] and its selection into a separate entity appeared much later.
To the game (which consists of a client and a server) were first added:
- forum - on it players communicated (from early alpha) with game developers;
- site portal - where was the first registration of accounts, news, articles;
- Launcher - a client application that updates the game;
- payment system - a service for receiving money from players: integration with external payment aggregators, first of all;
- a separate site for technical support - which allows you to manage player property;
- Ticket - where the players left their applications.
Approximately this composition managed to go into closed testing, start receiving payments (presales), then in the open and, finally, in release (in August of 2010).
History at the top: rapid development: in life and in production
Before the release of “Tanks” and for a long time after it, the main development of the platform took place in the “faster and bigger” mode. Often, raw services went into release, which then stabilized, and it was time to make other solutions for other tasks:
- exporter - a separate service that stored the "replica" of these games as a set of JSON; The fact is that inside the game the data is in a binary form, more convenient for the WoT engine, and outside (from typical web sites) it is easier to use a textual representation;
- Single authentication service - for a game, forum, game site, etc .; before this, the “login / password” pair was kept almost in each service separately, and it was not always possible to store them in concert;
- clan wars - in fact, a separate browser game with chips, attacks on the territory of neighbors, with fights that happened already inside WoT;
- tournaments - similar to clan wars;
- the continuous increase in methods and convenience of payment is generally an endless task, you can always do better and more.
"Tanks" during this time were released in Europe and North America.
History at the top: planes, ships
Then the company began to develop not only "Tanks". And here the disadvantage of what we did earlier for the Platform became obvious. Everything we developed was made for one game. Moreover, these were actually working prototypes; We didn’t have enough time or hands for long-term testing. At that time, we thought about scaling up to several games basically theoretically.
At the heart of the World of Tanks, World of Warplanes, World of Warships game servers lies the BigWorld game engine and the basic tasks of integrating with the platform services could be implemented in a general way. But the teams responsible for developing each of the games have their own vision of how exactly each game should be served. That is, despite the fact that the common vector coincided, it turned out that there are a huge number of differences that came to us in the platform as separate requirements.
One part of the services (for example, the Samoletov and Ships gaming web portals) actually turned out to be sold out forks of the tank portal. The second part remained unchanged, but the architecture of these services was such that each of the games required a separate copy working in production. And only a small part of the services was not difficult to modify to leave a single copy for all the games in a particular region.
Work has become much more, and the constant struggle began. What is better: a single technical solution for all games or a separate one for each game? Duplication is unnecessary work, but this approach allows games to freely customize, release more often and go their own way.
History on tops: consoles, mobile
When the games began to be released not only on PCs (the speech is primarily about World of Tanks on consoles and mobile devices), this affected the Platform in the most direct way. “Tanks” on these devices are not ports from a PC, they are separate, completely reworked games. But! The servers of these games, although they were reworked, at the very beginning were not very different from the PC version.
We have the task of integrating with third-party platforms; we had to become some proxy between them and the game, take on as many interaction tasks as possible and minimize changes to the server parts of the games. First of all, these are the following tasks:
- Sign-in support using Sony PSN and Microsoft Xbox LIVE;
- login to WG web resources;
- creating accounts and logins on mobile devices;
Specific work on integrating with the Microsoft and Sony APIs was done by the game developers themselves. We, as platform developers, needed to refine certain components and help with integration. Although we also had enough tasks related to the specifics of the work of these platforms.
Unusual regions: Vietnam, China, Korea
Asia is a separate world. And not even one. There are a lot of nuances. Including exactly how people play games:
- China is the release of a game exclusively with a local partner. The fact is that in China to release the game alone is very difficult. Required to go through a huge number of administrative procedures, including coordination in the government.
- Vietnam - there for several years World of Tanks worked with a partner who ... whose integration API was in the form of stored procedures for MS SQL.
- Korea is a very demanding legislation. Which, in particular, requires mandatory integration with the government SaaS. It provides data on the name, age, etc. of the player, and insists on the implementation of restrictions on payments (no more than $ 500 per month), on game hours, and so on. There are even requirements for player passwords.
At a certain point in time, services began to be developed that were needed to better operate games.
From what players themselves face, this is:
- Wargaming Game Center (WGC) - a single Windows application for installing games;
- personal store service based on player statistics;
- joint tariff plan from Wargaming and Rostelecom.
And a lot of internal tools for the work of support departments, content, and others.
New platform for new games
Then our tasks expanded further. From the support of several games made by Wargaming on the BigWorld engine (WoT, WoWP, WoWS), it was necessary to switch to the support of many other games made on completely different technologies. And not only by Wargaming.
It became obvious that many components can support several games, but not tens / hundreds. Yes, and our API, used for integration, were very sharpened for games at BigWorld, but not for games on other technologies.
No "new" platform happened. It happened just to add a few new services and new APIs that perfectly coexist with the “classic” ones. The games that went along the new rails (from the already announced ones) were:
- Total War Arena;
- Pagan Online.
Well, the migration of old ones began.
The platform is - a set of services and tools for publishing games - everything that allows the player:
- log in;
- down-load a game;
- get help.
And for the publisher - to help the player do this, taking into account all the regional features and the wishes of game developers.
What is interesting to know
This is a story, albeit on top, with my eyes. It is not necessary to consider it official - somewhere I could be mistaken, somewhere simplified, somewhere exaggerated. But! I really want to continue to share information. Let me know what you would be interested to know, and my colleagues and I will try to tell you about it.
Thanks for the pictures Pandarama https://www.instagram.com/pandaramka/