DevikinsLogo_White-Stroke

Connection issues – RAM Memory

SUMMARY
• The majority of disconnections in Devikins are due to local reasons and are reported as server errors.

• To address false accusations of disconnecting on purpose, these disconnects are now reported as server errors instead of the previous “Opponent disconnected”.

• The game currently uses a single server for both cost and matching purposes, limiting the ability to prevent local disconnects.

• One identified cause is a full cache and multiple running apps,  notifications and a large inbox and unclaimed content.

• Despite advice not to leave unclaimed items, many players do so and blame disconnections on their opponents.

• A recent update changed inbox management to load only four pages into memory/cache to partly address this last reason.

• Some players advise not claiming daily chores due to inactive void coin rewards, but this increases the risk of disconnections due to a full cache.

• Enforcing cache clearing at each PvP round or startup could affect other quality-of-life features like favorites, and penalize players who practice good memory management.

• Android and iOS handle memory and security differently, with Android allowing more customization and iOS being more secure but limiting the development team’s options.

• These factors contribute to the longer development time for iOS games compared to Android games.

• Ultimately, it is a matter of priorities, and significant changes to address the different ways IOS and Android manage memory will only be feasible once planned and necessary changes to the game are completed and tested and future changes to the game are limmitted to the addition of maps,  skills, skins etc.

FULL ARTICLE
As I said before, the vast majority of disconnects are because of local reasons.
They are reported as server errors if it is not immediately clear why it happened.

Originally, they were reported in error messages with the message “your opponent disconnected”, but this led to quick and false accusations that it was intentional. So we started to report them as server errors since the direct cause was that the server did not get a timely reply.
In very few instances, there is actually a server problem.

We have limited abilities to prevent these local disconnects since we use only one server and not regional ones because of both costs and matching.
But the team is still working to improve and prevent some of the causes of these local disconnects.

For example:
One cause of disconnecting is local app performance becoming slow due to a full cache and multiple apps running.
One identified reason for this is a large inbox and unclaimed content being loaded into the cache and memory.
Although players are told not to leave unclaimed items in the inbox, many do so anyway.
And they would typically claim that the opponent was to blame for the disconnect.
For this reason, the last update included a change to inbox management where only four pages are loaded into memory/cache.

On Discord, some players now advise not to claim the daily chores because the void coin rewards are not activated yet.
That is their right,  but it also means that their cache will fill up fast, and they are at higher risk of disconnecting.

It may be necessary in the future to code things like clearing the cache to happen at each PvP round/startup instead of giving players that choice.  But that would also affect other quality-of-life parts of the game like the favorites functions, which also use the cache. And penalize players who do practice good memory management by disabling known causes such as disabling notifications, discarding inbox messages, regularly clearing the cache, and optimizing the Android or iOS system.

So currently, we have opted not to enforce some things yet. If you regularly disconnect and also lose, it has a local cause, and there are several things you can do to prevent that, as described in the guide.

The alternative would be to force everything and set high minimum requirements, like many other games do.
Which would be another barrier for new players starting to play.

A final reason that these things are not yet enforced or determined by in-game settings is the very different ways Android and iOS handle memory and security.
Android shares all memory over all apps, while iOS does not. In Android, you can fine-tune many things, which you cannot do in iOS. For instance, in Android, you can clear the general cache shared by all apps. This causes other apps to close. Android apps can also reserve unlimited memory or force notifications to have priority over other apps. Many apps do this. They typically don’t care about other apps.  If you practice good memory management, you can limit this and potentially have all your memory available for Devikins.

But in iOS, only the owner app can clear its part of the cache/memory. This is much more secure but limits  what the team can do without a very different and complicated underlying app.  This again greatly extends the time needed for bug fixes and updates.
It is one of the reasons there are a lot fewer iOS games than Android games.
They are very different and take a lot longer to develop.

So it’s mostly a question of priorities.
Only when planned and requested necessary changes are finished and tested in practice will it become feasible to develop and implement completely different iOS and Android apps with their own settings and in-game memory management. Or start looking at regional servers with different timeout settings dependent on local network circumstances.