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

Je suis tombé ce matin sur ce pro­jet de MMORPG — je l’ai trou­vé sym­pa, j’ai eu envie de vous le présen­ter. Non, il n’est pas révo­lu­tion­naire — il est assez sym­pa graphique­ment et il y a pas mal de bonnes idées repris­es ici, comme le craft­ing. Mais ce qui dif­féren­cie ce pro­jet d’un autre, c’est qu’il a été réal­isé à par­tir de zéro par une toute petite équipe depuis 2011, et qu’un des mem­bres traîne ses guettes régulière­ment sur Twicth: on peut donc assis­ter à ses séances de codage et de débo­gage. Le pro­jet a reçu égale­ment l’aval de la com­mu­nauté Steam Green­light et sera donc pub­lié par valve dès sa sor­tie. C’est donc un pro­jet sérieux qui a de grandes chances de voir le jour prochaine­ment, même si aucune date n’est pré­cisée.

Mais avant d’aller plus loin, regardez cette petite présen­ta­tion du jeu:

 On peut créer ses pro­pres maisons, com­merces et même des chateaux… en gros, un peu tout ce qu’on veut. Il ya même la pos­si­bil­ité d’avoir des ani­maux de com­pag­nie. Le monde est un open world créé de façon procé­du­rale (on fera bien­tôt un arti­cle sur la ques­tion), c’est à dire presque illim­ité. On peut ter­raformer le ter­rain, couper des arbres, extraire des roches. On peut col­la­bor­er avec ses voisins ou leur faire la guerre pour piquer ses ter­res et ses con­struc­tions.  Pour cela, on peut bâtir des armes de siège comme des cat­a­pultes et des bombes pour détru­ire les for­ti­fi­ca­tions enne­mies. Il y a 40 types dif­férents de ter­rains, et de très nom­breux bio­mes (pour la généra­tion procé­du­rale). Il y égale­ment un monde souter­rain qui pro­pose des chal­lenges dif­férents, avec des mon­tres qui peu­plent les ténèbres des pro­fondeurs. “ça dévore en dessous” !

Bon, si vous êtes sur ce blog et que vous me suiv­ez, vous aimez les jeux, mais vous aimez prin­ci­pale­ment les faire ou savoir com­ment ils sont con­stru­its.

Tout d’abord, on peut suiv­re le développe­ment du jeu sur la chaîne dédiée sur Twitch. Dévelop­per ce style de jeu est assez sim­ple… sauf quand on arrive à la par­tie réseau où de nom­breux prob­lèmes survi­en­nent. Il vaut mieux être calé dans ce domaine pour s’at­ta­quer à un MMO. En effet, l’ob­jec­tif d’un MMO n’est pas de sup­port­er une quin­zaine de joueurs, mais plusieurs cen­taines, voire plusieurs mil­liers. Déboguer des engorge­ments, des prob­lèmes de syn­chro ou d’autres bogues liés au réseau peut alors devenir infer­nal. Mais pas­sons sur ce point car je ne sais pas si les auteurs gal­vau­dent ou non le terme Mas­sive­ment Mul­ti­joueur en ligne (Online).

Un des développeurs, Jun­gle­toe, tra­vaille sous visu­al Studio.Je ne sais pas s’ils tra­vail­lent tous sur le même code ou s’ils se sont répar­tis les rôles, mais on dis­pose de quelques infos sur ce qu’ils ont util­isé pour créer le jeu.

Le jeu a été dévelop­pé en C++. Il utilise la librairie SFML (con­cur­rente de SDL) qui facilite le développe­ment de jeux en offrant une inter­face unique vers les dif­férents com­posants de l’or­di­na­teur. SFML pos­sède des bind­ings offi­ciels pour les lan­gages C et .Net. Et grâce à sa com­mu­nauté très active, elle est égale­ment disponible dans beau­coup d’autres lan­gages tels que Java, Ruby, Python, Go et plus encore. Cela gère les fenêtres et les dif­férents wid­gets (le jeu utilise en com­plé­ment TGUI), mais aus­si l’ac­cès aux sprites, au son, ain­si que la couche réseau (mais ce n’est pas ça qui est util­isé dans le jeu). L’a­van­tage de SFML, c’est qu’il est mul­ti­plate-forme. Il per­met de dévelop­per pour Win­dows, Lin­ux, Mac OS X et prochaine­ment Android & iOS. Ce qui ne gâche rien, c’est que la librairie est libre pour toute util­i­sa­tion (com­mer­ciale ou per­son­nelle, pro­prié­taire ou open-source). La librairie utilise entre autres GLEW (pour la par­tie OpenGL/3D), freetype (pour les fontes), lib­jpeg et stb_image (pour les images), Ope­nAL (pour la couche sonore, 3D) et lib­snd­file (pour les for­mats audio). Elle a été dévelop­pée par un français, Lau­rent Gomi­la, qui a réal­isé d’excel­lents tuto­ri­aux sur developpez.com, avec notam­ment une série de tutos sur la créa­tion d’un moteur 3D en C++. Si cela vous intéresse, il y a un bon bouquin sur la ques­tion. je pense qu’on y revien­dra dans un prochain arti­cle si vous le souhaitez.

Sfml-logo

Le jeu utilise égale­ment la librairie lib­noise pour la généra­tion procé­du­rale des mon­des. Plus pré­cisé­ment, c’est une librairie mul­ti­plate­forme égale­ment per­me­t­tant de créer du bruit de façon cohérente, comme le bruit de type Per­lin ou mul­ti­frac­tal. Génér­er du hasard n’est pas chose évi­dente. Rap­pelez vous que dans Minecraft, les mon­des sont générés à par­tir d’une phrase. A chaque fois qu’on utilise cette phrase, la même séquence de hasard per­met de créer un même monde. Ce type de bruit est util­isé entre autres pour créer des tex­tures ou des ter­rains.

Le jeu utilise égale­ment la librairie Enet per­met de gér­er l’aspect réseau du jeu. Elle per­met de créer une appli­ca­tion client/serveur basée sur UDP (pas de con­trôle des paque­ts, mais bien plus rapi­de que TCP). Cela n’empêche qu’il y a un gros tra­vail pour faire un MMO à par­tir de cette librairie.

Voilà pour la par­tie tech­nique. Ce qu’il faut retenir aus­si, c’est que pour intéress­er les futurs joueurs d’un jeu, il est néces­saire de les impli­quer très tôt dans la réal­i­sa­tion de ce dernier. Il faut leur don­ner moult détails sur la con­cep­tion du jeu, les intéress­er au développe­ment (comme ces séances sur Twitch), mais égale­ment en les faisant tester le pro­duit. Même les gros AAA le font, pour­tant ils ont très peur de l’es­pi­onnage indus­triel… Rap­pelez vous égale­ment Notch qui présen­ta un ver­sion très légère de Minecraft et qui a fait un buzz sen­sa­tion­nel.

Site offi­ciel: www.playdwell.com  ou Page steam.

steamworkshop_collection_1414200860_collection_branding

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.