FR EN ES PT
Browse forums 
Ankama Trackers

Summary: "Merger and Dev News" Livestream

By [Ankama]WAKFU - ADMINISTRATOR - November 06, 2020, 10:57:53
AnkaTracker

We did a livestream to talk with you about the server merger and a few projects the dev team is working on.

Debriefing on the Merger

Before starting with the summary of the part of the livestream that dealt with the merger, don't forget to read our thread about it on Twitter.

As a reminder, we had already carried out "mergers" (Amara, Chinese servers, etc.). Even so, these "mergers" were just basic imports of characters. Since then, the game has changed a lot, and it wasn't that simple anymore.

Firstly, Eneval and Enio thought about the best way to proceed with merging the servers and estimated how long it would take to produce such a merger tool (which would then become the Fusionator). This particularly involved thinking about all the types of saved game data, point by point: Could it be transferred as it was? Did anything need to be done to it?

  • For example, in the case of rewards (Shift + R in the game), character IDs are stored for battlefields. Since character IDs change during the merger (to avoid clashes between servers), they had to be replaced with new ones: one set of rewards at a time, character by character.
  • Guild IDs change as well. The IDs therefore had to be changed in line with the level of characters, bonuses, Haven Worlds, guild ranks, etc.
  • Another issue was that during Update 1.67, we made changes to the Haven World mechanic because we couldn't keep so many instances open, coupled with the constant refreshing of the ecosystem within them. We also wanted to reduce how certain mechanics were being abused. There were 150 Haven Worlds per server, but many more servers were being merged.


The aim was to optimize the merger time to avoid shutting down the servers for weeks on end while it was carried out.

All these issues and thoughts led to the creation of the Fusionator, a tool to configure the execution of millions of parallel tasks in just a few lines, in the most optimized and fluid way possible. It took almost three months to arrive at an almost perfect tool, not counting the other months dedicated to other more individual tasks (characters, character bags, character Haven Bags, guilds, Haven Worlds, Marketplaces, etc.), roughly 50 of them in total.

Among the issues encountered, sidekicks have long been a concern. Firstly, sidekicks used a rewards server (the same as the online one) to give back surplus items. The problem was that the server involved had a little trouble keeping up.

Beside that, the merger "source" database was getting overloaded in terms of performance because of the number of requests involved and how slow they were, not to mention the back-end operations for conversion.

It was necessary to modify the migration to use the account chest tabs (and inject them directly into the destination database) without going through the server's "account chest" server, and to optimize all requests and processing operations.

At the same time, throughout the process, we were doing our own tests and validations of migrations on a case-by-case basis. But after a while, as it became complicated to test everything ourselves, we had to involve testers, so we created three test servers: two source servers and one merger server. We also gave them "magic buttons" (oh yeah!) to launch a merger from their two source servers to their merger server.

From that point, they tested all the features and special cases affected by the merger; for example, if two sidekicks have exactly the same XP, two servers with the same number of items, characters with the same nickname, etc. The testers gave us feedback on everything that caused problems and many fixes ensued. They had several hundred of validation points and dozens of online validation characters for the day of the merger.

All in all, a whole host of teams (testing, web, support, communication, etc.) at Ankama had to be in sync for the big day so everything would be ready. At the same time, we carried out "full-scale" tests to reduce the overall merger time as much as possible. After two weeks, the time it took to carry out the operation went from several days to a few hours.

After that, we just had to set it all up and wait to see how it turned out.

As regards the state of the servers after the merger, we monitored the indicators daily. At first, we were worried about the proxy, but it went just fine. The servers are doing well in terms of pure RAM and CPU.

Dev News


Optimization

We noticed the greater impact of client optimization issues as soon as the merger took place and we started stepping up our work on them.We used JProfiler (a tool to analyze memory and CPU use, among other things) and from there, we identified "main" problems and problems with lesser impacts. Since we wanted to introduce a range of optimizations before the December update, we had to quickly estimate and plan fixes for the most resource-intensive problems:

  • The network thread was far too resource-heavy for our liking (over 40% increase in resource use).
  • When certain logs arrived many times, it could slow down the disk and therefore the game – it's difficult to estimate the impact, but it's significant.
  • Translations put too great a burden on the client, and we had to load them all at once (reduced by half); the client also suffered a slight "leak" resulting in constant but non-increasing excessive resource use.
  • Other characters' movements are calculated by the client to unburden the network and to avoid problems particularly related to the latency between when the other character starts moving and when the movement is received by the client. Since pathfinding was very resource-heavy by nature, it was also carried out in a way that could cause display slowdowns. The estimated gain for roughly 30 nearby characters is equivalent to about 10% of CPU resources dedicated to the display. However, we were unable to do this due to bugs.
  • Some data is resource-heavy to load when launching the client and in the game. We've been looking for solutions to reduce it, but the deadlines to introduce this before December caught up with us, and we couldn't delve into it as deeply as we'd have liked to.


All these points should reduce RAM use and black screens, limit client micro-freezes, etc.

Summary of ongoing optimizations:
  • changes to the way the client's network messages are processed to relieve the network thread;
  • filtering of translations to save RAM (~30 MB of RAM);
  • fixing a log arriving very regularly to unburden the disk and the client's processing of certain things;
  • and changing the texture-loading mechanic to unburden the graphic thread (this may greatly unburden the client, especially in terms of micro-freezes).

Furthermore, these optimizations are available in the update of the Beta client. You can test them now and give us your feedback. For more information click here.

Global Chat

We are planning to develop global chats so players can communicate with all players present.

We are working on setting up two global chats: one dedicated to recruitment and the other to trade. In addition, these chats will be restricted so as to avoid flooding, for example.

Character Selection

We would like to make changes to the character selection interface.

At first glance, these changes would appear in the form of "mail" (as we say in dev speak). In summary, the list of characters and their information (nickname, level, nation, etc.) would be on the left, and the character preview would be on the right.

We don't have any prototypes to show you for now, but we are planning to revitalize the character selection interface.

Giveaway


We gave away a Twitch costume during the livestream.

FAQ


We answered players' questions live.


Don't forget to check out the replay of the livestream with Enio and Zorel: click here.

Enjoy the game, everyone!
Reply
First Ankama intervention

Replying to Thirtheenx

Hi Thirtheenx,

To clarify, Rubilax is an international server so it is composed of different nationalities, as such different languages are spoken.

For everyone to communicate with each other, the server's official language is English, as it considered the global language.

[Flatops]

See message in context
Reactions 8
Score : 75

Are there any plans to update ability / spell graphics? Most feel pretty lackluster even compared to Dofus. I think that a refresh on skill graphics would go a long way towards increasing the game's appeal to a modern audience.

Thanks for the translation. I missed the English stream due to work.

1 0
Reply
Score : 3900

They said they are, at least for reworked classes, but that their animator has a ton of work, so it will tke some time

1 0
Score : 10

Why Rubilax server has a flag from United Kingdom if this is a global server? Doesn't make sense.

1 -1
Reply
Score : 3900

I assume because it's there to show that the server's language is English

3 -3
Score : 30

Is there any plans to work the times around for the pvp battle grounds? At least for me when i am able to get on in the evening before the merge i could do quite a few Bgs but now they don't start till about 10 am which is a problematic at least on my side. 

1 0
Reply
Score : 10

 

cody5|2020-11-08 16:29:24
I assume because it's there to show that the server's language is English




That's not true, Rubilax is a server for all communities and languages, it doesn't have a official language.

 
[Ankama]WAKFU|2020-11-09 07:35:02
Hi Thirtheenx,

To clarify, Rubilax is an international server so it is composed of different nationalities, as such different languages are spoken.

For everyone to communicate with each other, the server's official language is English, as it considered the global language.

[Flatops]



I thought there was no preference, as was said in the other forums, but okay, i still think the flag should be changed to something more global, like in Dofus:


Thanks for the answer, Flatops.
1 -2
Reply

Hi Thirtheenx,

To clarify, Rubilax is an international server so it is composed of different nationalities, as such different languages are spoken.

For everyone to communicate with each other, the server's official language is English, as it considered the global language.

[Flatops]

Respond to this thread