Cette étude de cas présente la mise en place d'une solution Peer to Peer pour une societé de jeux vidéo.
Cette réalisation survient après des conseils et des travaux pour remplacer le système de patch, mise en œuvre par NpCube sur le MMORPG DarkandLight, par un système plus simple d'utilisation pour le joueur et plus simple de création pour l'équipe de développement.
Le système de mise à jour était basé sur Rsync ce qui posait des problèmes de saturation de réseaux lorsque les fichiers des utilisateurs devaient être mis à jour. Le téléchargement du jeu lui se faisait par ftp.
Apres discussion et avec l'aide de l'équipe cliente nous avons identifié ensemble leurs principaux besoins:
Deux versions du programme ont été développées une version autonome qui stocke en interne les informations du fichier à télécharger, et une version dynamique destinée à être utilisé dans leur système de mise à jour pour télécharger les patchs volumineux.
Le programme à été développé en C++ en se basant sur la version 0.9.1 de la libtorrent, divers tests et quelques modifications ont été apportées à cette dernière pour garantir quelle satisfasse totalement nos besoins.
Pour que le joueur soit informé du comportement du programme dès son lancement. Le programme à été décomposé en thread pour séparer l'affichage du programme de la partie client peer to peer de celui-ci.
Le jeu DnL fonctionnant sous Windows et pour capitaliser les compétences de l'équipe interne du client: l'interface graphique à été réalisé en MFC.
L'internationalisation du programme pour le système de fichier et l'affichage de caractères s'est basé sur l'api Windows, la traduction est gérée par des tables de caractères.
Des nombreux tests unitaires ont été écrits pour valider le support total des caractères asiatiques.
Le programme à été utilisé avec succès pour permettre le téléchargement de dizaines de milliers d'exemplaires du jeu, chaque exemplaire faisant une taille approximative de 1.3 Giga Octets.
Tout au long de l'année d'exploitation, et au fur et à mesure du développement de la libtorrent, des modifications ont été apportées au projet livré pour incorporer diverses fonctionnalités stable de la libtorrent.
La demande en termes de téléchargement de ce jeu en ligne ayant fortement baissé, le programme ne semble désormais plus être utilisé par l'entreprise.
Libtorrent, librairie Bittorent écrite en C++
unitest++, tests unitaires en C++