Chaoslion.com

Création d’un jeu vidéo indépendant

L’objectif est de créer un jeu d’action fun et défoulant.

Ce développement sert aussi à présenter les compétences et quelques unes des solutions qu’offre l’entreprise chaoslion.

C++, Opengl, moteur physique et Intelligence artificielle

Ce jeu est basé sur le torque, un moteur développé, par garage games, en C++ et utilisant l’api Opengl.

screenshot indie game

Une partie de ce moteur à été réécrite pour supporter GLSL le langage de shaders d’Opengl et de nouveaux effets de rendu.
Néanmoins la possibilité de porté le jeu vers TGEA avec le support de directX9 et des shaders écrit en HLSL reste à l’étude.
L’intégration d’un nouveau moteur physique pour enrichir l’expérience de jeu est actuellement en cours. Le moteur physique devra répondre aux contraintes du jeu en réseau.
Une intelligence artificielle, représentant un défi raisonnable pour le joueur fait aussi parti des développements.

Jeu Indie : Distribution indépendante

Ce jeu sera distribué sur les réseaux de vente en ligne, il sera disponible dans un premier temps sur Windows puis ensuite porté sur Linux et MacOs.

independant game

Cette étude de cas présente la mise en place d’une solution Peer to Peer pour une société de jeux vidéo.

Contexte du développement

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.

Problèmes de Bande passante et besoins du client

Après discussion et avec l’aide de l’équipe cliente nous avons identifié ensemble leurs principaux besoins:

  • éviter la saturation des réseaux lors d’un grand nombre de téléchargements de leur jeu ou lors des mises à jour de celui-ci.
  • Avoir un système, simple d’accès pour ses joueurs, ergonomique et qui ne nécessiterait pas de compétences en informatiques pointues.
  • Permettre l’exploitation du jeu et du système partout dans le monde, avec gestion de traductions et support des caractères et système de fichier (le jeu est destiné à être exploiter sur le marché chinois).

Solution Peer to Peer basé sur Bittorent

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.

downloader peer to peer

Pour que le joueur soit informé du comportement du programme dès son lancement. Le programme à été décomposé en threads pour séparer l’affichage du programme de la partie client peer to peer de celui-ci.

video game p2p

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.

Conclusion

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.

Liens utiles

Libtorrent, librairie Bittorent écrite en C++

unitest++, tests unitaires en C++