Answer the question
In order to leave comments, you need to log in
Is it worth it to take care of the possibility of supporting previous versions of a multiplayer online mobile game? And How?
Hello,
Problem: While maintaining a game, the client/server communication protocol or something else may change, after which previous versions of the game will no longer be supported.
Questions:How critical is this for multiplayer mobile online games? Are there any statistics on the impact of mandatory game updates on user engagement? Is it realistic to create a game in such a way that the changes made would not affect previous versions and the life of each version would remain maximum? And how to do it? Can the task of maintaining previous versions greatly affect the architecture of the software, the speed and development process? Or most people do not pay attention to the need to update the game and just do it? Interested in the opinion and experience of both the developers and the players themselves.
Thank you.
Answer the question
In order to leave comments, you need to log in
During maintenance of the game, the client/server interaction protocol or something else may change, after which previous versions of the game will no longer be supported.
The question can be divided into two:
- how to update the interaction protocol?
- how to update the game logic?
The protocol is simple. There are many options, I prefer this approach:
- For each API method, a version is entered that is explicitly specified by the client.
- Multiple versions of the same method can be supported.
- There are destructive API changes (increase the version) and non-destructive ones (do not increase the version).
- Non-destructive - this is the addition of new parameters to the response or optional to the request, without changing the logic of the server's reaction to receiving old parameters.
- Destructive: deletion, renaming, changing the semantics or data format in the response, changing the logic of the server reaction.
- When a destructive change needs to be made, the old method is kept in support until all clients (or the desired percentage of them) are updated.
Logic is more difficult. But there are also options:
- The simplest is a forced update. They rolled out a new server, everyone should update the client. It is the easiest to support, if a top product is not being made, then it is better to do so - it will save a huge amount of resources. But there are some nuances, for example, it is difficult to achieve the simultaneous release of mobile clients on different platforms (Google Play, App Store) due to the peculiarities of reviews, agreements on featuring, etc.
- Run multiple server versions: old and new. If a player has updated the client and played on the new version, he will no longer connect with the old client. Here it is necessary to correctly distribute clients across servers and take care of the non-intersection of different versions of the game. For example, it is not possible for clients with different versions to play together (PvP, tournaments, etc).
Separate the server interaction component from the main application.
When there is an update, update it in a "transparent" mode for the user.
In most games I saw only one option - they are not allowed to play until you update. If the update is released during the game, then they show a message in the interface, they say now there will be work on the server. Nobody supports older versions, it only fragments the user base.
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question