Un développement à suivre: le MMORPG Dwell "the drifting world"

Je suis tombé ce matin sur ce projet de MMORPG – je l’ai trouvé sympa, j’ai eu envie de vous le présenter. Non, il n’est pas révolutionnaire – il est assez sympa graphiquement et il y a pas mal de bonnes idées reprises ici, comme le crafting. Mais ce qui différencie ce projet d’un autre, c’est qu’il a été réalisé à partir de zéro par une toute petite équipe depuis 2011, et qu’un des membres traîne ses guettes régulièrement sur Twicth: on peut donc assister à ses séances de codage et de débogage. Le projet a reçu également l’aval de la communauté Steam Greenlight et sera donc publié par valve dès sa sortie. C’est donc un projet sérieux qui a de grandes chances de voir le jour prochainement, même si aucune date n’est précisée.

Mais avant d’aller plus loin, regardez cette petite présentation du jeu:

 On peut créer ses propres maisons, commerces et même des chateaux… en gros, un peu tout ce qu’on veut. Il ya même la possibilité d’avoir des animaux de compagnie. Le monde est un open world créé de façon procédurale (on fera bientôt un article sur la question), c’est à dire presque illimité. On peut terraformer le terrain, couper des arbres, extraire des roches. On peut collaborer avec ses voisins ou leur faire la guerre pour piquer ses terres et ses constructions.  Pour cela, on peut bâtir des armes de siège comme des catapultes et des bombes pour détruire les fortifications ennemies. Il y a 40 types différents de terrains, et de très nombreux biomes (pour la génération procédurale). Il y également un monde souterrain qui propose des challenges différents, avec des montres qui peuplent les ténèbres des profondeurs. “ça dévore en dessous” !

Bon, si vous êtes sur ce blog et que vous me suivez, vous aimez les jeux, mais vous aimez principalement les faire ou savoir comment ils sont construits.

Tout d’abord, on peut suivre le développement du jeu sur la chaîne dédiée sur Twitch. Développer ce style de jeu est assez simple… sauf quand on arrive à la partie réseau où de nombreux problèmes surviennent. Il vaut mieux être calé dans ce domaine pour s’attaquer à un MMO. En effet, l’objectif d’un MMO n’est pas de supporter une quinzaine de joueurs, mais plusieurs centaines, voire plusieurs milliers. Déboguer des engorgements, des problèmes de synchro ou d’autres bogues liés au réseau peut alors devenir infernal. Mais passons sur ce point car je ne sais pas si les auteurs galvaudent ou non le terme Massivement Multijoueur en ligne (Online).

Un des développeurs, Jungletoe, travaille sous visual Studio.Je ne sais pas s’ils travaillent tous sur le même code ou s’ils se sont répartis les rôles, mais on dispose de quelques infos sur ce qu’ils ont utilisé pour créer le jeu.

Le jeu a été développé en C++. Il utilise la librairie SFML (concurrente de SDL) qui facilite le développement de jeux en offrant une interface unique vers les différents composants de l’ordinateur. SFML possède des bindings officiels pour les langages C et .Net. Et grâce à sa communauté très active, elle est également disponible dans beaucoup d’autres langages tels que Java, Ruby, Python, Go et plus encore. Cela gère les fenêtres et les différents widgets (le jeu utilise en complément TGUI), mais aussi l’accès aux sprites, au son, ainsi que la couche réseau (mais ce n’est pas ça qui est utilisé dans le jeu). L’avantage de SFML, c’est qu’il est multiplate-forme. Il permet de développer pour Windows, Linux, Mac OS X et prochainement Android & iOS. Ce qui ne gâche rien, c’est que la librairie est libre pour toute utilisation (commerciale ou personnelle, propriétaire ou open-source). La librairie utilise entre autres GLEW (pour la partie OpenGL/3D), freetype (pour les fontes), libjpeg et stb_image (pour les images), OpenAL (pour la couche sonore, 3D) et libsndfile (pour les formats audio). Elle a été développée par un français, Laurent Gomila, qui a réalisé d’excellents tutoriaux sur developpez.com, avec notamment une série de tutos sur la création d’un moteur 3D en C++. Si cela vous intéresse, il y a un bon bouquin sur la question. je pense qu’on y reviendra dans un prochain article si vous le souhaitez.

Sfml-logo

Le jeu utilise également la librairie libnoise pour la génération procédurale des mondes. Plus précisément, c’est une librairie multiplateforme également permettant de créer du bruit de façon cohérente, comme le bruit de type Perlin ou multifractal. Générer du hasard n’est pas chose évidente. Rappelez vous que dans Minecraft, les mondes sont générés à partir d’une phrase. A chaque fois qu’on utilise cette phrase, la même séquence de hasard permet de créer un même monde. Ce type de bruit est utilisé entre autres pour créer des textures ou des terrains.

Le jeu utilise également la librairie Enet permet de gérer l’aspect réseau du jeu. Elle permet de créer une application client/serveur basée sur UDP (pas de contrôle des paquets, mais bien plus rapide que TCP). Cela n’empêche qu’il y a un gros travail pour faire un MMO à partir de cette librairie.

Voilà pour la partie technique. Ce qu’il faut retenir aussi, c’est que pour intéresser les futurs joueurs d’un jeu, il est nécessaire de les impliquer très tôt dans la réalisation de ce dernier. Il faut leur donner moult détails sur la conception du jeu, les intéresser au développement (comme ces séances sur Twitch), mais également en les faisant tester le produit. Même les gros AAA le font, pourtant ils ont très peur de l’espionnage industriel… Rappelez vous également Notch qui présenta un version très légère de Minecraft et qui a fait un buzz sensationnel.

Site officiel: www.playdwell.com  ou Page steam.

steamworkshop_collection_1414200860_collection_branding

Ces articles pourraient aussi vous intéresser …