FR EN
FR EN
Browse forums 
Ankama Trackers

DOFUS Touch and Development

By [Ankama]DOFUS-Touch - ANKAMA - July 03, 2020, 14:00:00
AnkaTracker Announcements

We've often said that DOFUS Touch and DOFUS no longer have much in common in terms of development. Today we're going to explain things in a little more detail!

DOFUS Touch Development


This article will be a bit more technical than usual, but we're hoping it will provide some answers to your frequently asked questions about DOFUS Touch! That said, we'll do our best to keep it simple so that this is accessible to everyone.
 

Server and Client


Before we get started, it's important to understand these two aspects, which you may have heard during certain discussions: server development and client development.
 

Server Development


The so-called "server" environment allows for information to be received from and sent to the player's device. Among other things, it checks the validity of actions and manages their results. The server is also tasked with saving game data.
 

Client Development


The "client" environment deals with everything the player sees or interacts with, such as game menus, monster animations, etc. These two aspects of development are linked, and for DOFUS Touch to work, the two are closely linked. In simple terms, the client sends requests to the server, and the server processes them.
 

Practical Example


Let's say Roxor casts the Release spell. The client sends this information to the server, and the server verifies that the player has enough AP and is actually in combat, along with many other variables. It then executes the spell, calculates who gets pushed back, who receives pushback damage, etc. It returns the result to be displayed to the client (the fact that the player casts a spell, the damage, new placements, etc.) to the players in combat as well as to spectators.
 

Porting DOFUS to DOFUS Touch


It's no secret that DOFUS for PC (version 2.14, to be precise) was used as a base to produce the mobile version DOFUS Touch. This wasn't easy; contrary to what you may hear, it takes more than a simple copy-and-paste procedure.

DOFUS was developed in Flash, whereas DOFUS Touch had to be adapted for a mobile format using HTML5/CSS, Javascript, and (the infamous) WebGL. To illustrate this, we're going to describe some precise aspects of the game!
 

Game Maps


Several steps were required to properly generate the game maps exported from DOFUS.

The development team started out by generating "raw" maps, but without all the visuals, like scenery. This base manages line of sight and movement blocking and forms a "framework" for the final maps. Loading visual elements comes next, but this has to be divided into three more steps: the foreground, the environment in which the player moves around, and the background.

To illustrate these steps, here are the foreground and background for the main floor of Kerub's house, located in Astrub at [6,-16]:
 
DOFUS Touch Foreground
Foreground of the map
DOFUS Touch Background
Background of the map
Finally, the components of the scenery are added – "the environment in which the player moves around", as we described it earlier – to achieve the final result:
DOFUS Touch Final Map
These various steps were run by an algorithm. To reduce loading times as much as possible, the foreground and background are always generated as a single unit.

All the visual elements had to be reworked so they could be adapted to DOFUS Touch. These elements are adapted for Flash on PC (.swf format), so they had to be switched to .jpg or .png for the mobile version. Incidentally, the same process was used for monsters and items in the game.

The maps are still in 4:3 format, as this worked best with mobile. And 16:9 format wasn't yet available in DOFUS at the time, anyway!
 

Interfaces


As with maps, the interfaces designed for Flash (ActionScript) in the PC version had to be reworked for DOFUS Touch. So, the development team took the logic of the Flash source code and switched everything to HTML5/CSS and Javascript.

All the interfaces were tweaked, with no exceptions. Which created a whole set of issues, since Javascript and Flash use a different logic.

Also, the way messages are retrieved from the server is different.
 

But that's not all!


These examples account for a tiny fraction of the adapting that had to be done and that, in some cases, still has to be done. To cite one last example, this is the case when we decide to reuse the appearance of an existing set in DOFUS. Our team is required to rework the set in Flash format in order to adapt it to DOFUS Touch.
 

How about now?


As you can see, the PC version had to be completely reworked to be adapted to a mobile format and allow DOFUS Touch to come into the world. Even now, development for the two versions varies considerably, and each version has their own constraints.
 

Maps


As for game maps, very few of these are taken directly from DOFUS; our level designer [Maewin] produces these from start to finish.

To get a glimpse of this work, there's a video about creating the map for the Mount Neselite zone you can watch!
 
YouTube
Manage Cookie Preferences

In any case, the format of maps has changed between DOFUS and DOFUS Touch, so it would be impossible to reuse the DOFUS maps (or vice versa) without having to convert them. This also applies to many other components of the game.
 

Server Development


Although DOFUS Touch started out with the same server foundation as DOFUS 2.14, they've diverged quite a bit since then. One of our server developers, [Bob], explains it by way of a metaphor:
 
"It's like building two identical one-story houses. Then each architect takes liberties, based on the demands of each client and the technical specifications that derive from those demands, to add a second, then a third floor to each house. At that point you can't just say 'Let's use the roof of one of the two houses for the other one'. You need to make adjustments to avoid leaks and keep the roof from collapsing!"
In slightly more technical terms, there is no way to simply "copy and paste" the things you want to see in the game. The foundations to support new features aren't always available or aren't yet compatible with certain decisions taken for DOFUS Touch. The requirements for certain features diverge in complex ways, especially in terms of the technologies used and the code structure, which may not be visible to players.

To demonstrate this, let's imagine that for DOFUS Touch, a player is represented as a single unit called "player", but for DOFUS, this unit has been split up into several smaller units, each a different aspect, to make this easier to manage. For instance, you'd have "the player's social information", "the player's characteristics", "the player's bank", etc. As a result of this, in DOFUS Touch, to get information about the player's guild, we would do "player --> function that retrieves the guild", whereas in DOFUS, we'd use "player --> retrieve the player's social info --> retrieve the guild". And these differences keep increasing over time.

To provide a second example, DOFUS could use a new type of database and its new features could be built on that. Players would view this change as completely transparent, and the game would stay the same. But if we wanted to reuse these concepts, we'd need to adapt it for our own database or adopt this new database and change our entire program as a result.

These two topics are just two examples out of dozens that, over the course of months, separate us technically from DOFUS and make potential transfers increasingly tricky.

There are many reasons for all these differences between the two versions, including the format of the game, its technical requirements, its resources, as well as its needs relative to the project.
 

Game Design


Game design consists of establishing the rules of the game. For DOFUS Touch, this involves defining:
 
  • how character classes are played (spell creation, stat balancing, etc.)
  • what interactions players may have (trading, chat, challenges, friends, guilds, etc.)
  • how players can interact with the game (monster combat, professions, etc.)
  • how the game will react to the player's interactions
  • rules for how the World of Twelve works (using Zaaps, item recipes for the economy, etc.)
  • the various game modes and how they work (alliance versus alliance, Kolossium, Ascension Island, etc.)
  • how to balance equipment and set their stats
  • storylines and writing corresponding quests

Once again, although DOFUS and DOFUS Touch were both built on version 2.14, they quickly took different directions for the same reasons as those already described with respect to server development.

As with server development, each game rule has evolved differently over time. So it doesn't always make sense to assume that an idea used in DOFUS will be entirely functional in DOFUS Touch, and vice versa.

A revamp of Incarnam won't be done in the same way in DOFUS Touch as in DOFUS, since the players of each game don't exactly behave in the same way. This is because the players of each platform (mobile versus PC) have different profiles.

Nevertheless, certain ideas may remain essentially the same, since the two projects originate from the same game.

Regarding story differences between DOFUS Touch and DOFUS, you'll find an article on this topic here.
DOFUS Touch Krosmoz

Mobile Format


On top of all this, there's a considerable amount of work involving the prerogatives of Google and Apple. They regularly request certain technical changes, which sometimes require several days of full-time work done by one or more developers. We naturally must follow these instructions, or else DOFUS Touch could be removed from the app stores!

Google and Apple constantly release new operating systems (or software development kits (SDKs)), and it's essential that we keep up with them. Whenever some version of their system stops working, we're required to migrate to the new version, which can present a new set of issues. For example, we used to use a certain webview on Android that allowed us to force WebGL on all mobile devices. Following a required update, this webview became incompatible and forced us to use the Android webview, which now prevents us from forcing the use of WebGL.

For longtime readers, the Android webview updates constantly and our HTML5/CSS may no longer be compatible. For example, Apple recently required us to switch to their WK webview; we had to work on this compatibility, or DOFUS Touch would no longer be kept up-to-date.
 

All of this is just the tip of the iceberg. But now you know more about the technical operation of DOFUS Touch, along with certain differences relative to the PC version of DOFUS. Feel free to share your thoughts in the comments section!
Reply
Reactions 10
Score : 1

Will touch have a proffessions rework like in Dofus PC? (All proffs on the same character, 1-200)

0 0
Reply
Score : 27

fico feliz em ler este post , muito bem trabalhado e bem feito , muito obrigado pelo carinho que sempre vem trazendo novidades , espero que continuem fazendo esse ótimo trabalho S2

0 -1
Reply
Score : 119

Muito bom o artigo, PARABÉNS...
Mesmo sendo muito trabalhoso tais adaptações creio que algumas seriam de grande interesse da maioria dos players de Touch, senão de todos.

Vou citar por exemplo duas adaptações que julgo muito necessárias, em suas respectivas ordem de importância.

1: Ter todas Profissões em ÚNICO PERSONAGEM.

2: Possibilidade de Redistribuir livremente a qualquer momentos seus pontos de Habilidade e ou Características, sei que isso poderia impctar NEGATIVAMENTE na Economia do jogo, pois as Orbes Mágicas e Dungeons de Reset ficariam INÚTEIS.

Finalizo solicitando apoio dos Players e da equipe técnica quanto a possibilidade listada "1" ter as várias profissões.

0 0
Reply
Score : 119

A outra coisa esquecida são as lutas PVP utilizando os pergaminhos de Busca 'Localizacao' sinto muita falta dessa possibilidade.

0 0
Reply
Score : 1

Hola!! excelente trabajo, Dofus Touch es una excelente adaptación muy bien llevada acabo.
Me preguntaba si en un futuro se consideraba agregar las clases Selotrop o Uginak al juego (se extrañan mucho)
Saludos!

0 0
Reply
Score : 247

Thanks for the explanation. Maybe this will quiet some people who whine about Grandapan needing to merge with Dodge and know nothing about networking. Bringing over the Spanish crowd was a great move. I do, however, wish there was a way to translate Spanish to English and visa versa straight from the game. Would definitely help with AvA coordination and pretty much anything-coordination.

0 0
Reply
Score : 125

uffff, les doy las gracias ankama por seguir dándome estas alegrías con este juego, el cual lo llevo jugando desde el 1.29 jeje, ha pasado tiempo, con el lanzamiento de dofus touch me han llevado a la nostalgia del pasado, sin dejar con el pasar de los años que pierda el cariño a este juego, a pesar de todas las criticas que siempre están presentes yo les doy las gracias por seguir dandome la sensacion de amor por el juego,! saludos y que tengan un buen sabado!

0 0
Reply
Score : 1

Interesting article, is understandable all the constraints that goes into both versions of the game. I personally enjoy more PC but I understand the nostalgic and feel of old/new Dofus Touch to some players. Anyhow as a veteran game developer, the solution you guys done for Dofus Touch is pretty much standard to porting Flash games to iOS and Android, now for me comes a question if you ever consider migrating the in-house engine to something more robust and cross-platform. Haxe Heapz comes into my mind for easy porting but also Unity C# as the king of porting. I understand this is a major undertaking but I also see the benefits of having a cross-platform that could help take Dofus into consoles/mobile/PC even a Switch Version, why not? Developing for single engine and deploying to multiple platforms, the dream right? Yes I understand it's not purely 100% straight for instance stupid iOS porting, but anyways it's just an interesting topic to discuss, and I hope with future projects like Waven things are seeing in a broader scope. Cheers!

0 0
Reply
Score : 308

Thanks for explaining the technical difficulties. I also want to give props for the Devs by bringing a massive game like Dofus to our mobile devices. I do however still not agree on how things are being handled within the company. Decisionmaking in terms of class balancing, lack of involvement in the community (e.g. international audience) and unclear vision as to how Dofus Touch plans to keep their players in the game in terms of content. Personally, I do see more new content added (sets, etc.) which lacked back in 2017, but it doesn’t neccessarily make me want to play the game again as so many players already left because of slow development. This article would have been more appropriate when people (including me) initially began talking about a server merge. It’s a nice article explaining the difficulties, but there’s nothing that assures us by providing possible alternatives or what the team is thinking about for the future.

Edit: One of the things that I consider content is 1vs1/3vs3 tournament exclusive titles/rewards, or other in-game events like search for a NPC in the entire World of Twelve, the first X players get a reward, etc. These are (I would hope) simple things to implement that keeps your audience interested in the game. There has been a few contests iirc (like outfit contest, or drawing contest), I however would advise to go for in-game contests instead to keep the game populated. I also want to point out that a new server has ALWAYS proven to get old players back in the game. You can then merge the server later on like they do on Dofus PC. But reading this article, it is probably also not possible in Dofus Touch...

0 0
Reply
Score : 11

Muy buen juego... algún día pondrán la misiones de los dofus ? .... y si lo hacen por favor POR FAVOR que sean misiones individuales que no necesiten ayuda de nadie y que estén equilibradas con el lvl

0 0
Reply
Respond to this thread