R.O.P.E

Projet professionnel, Unity3D

N'ayant pas d'emploi au moment des projets de fin d'année de la promotion de Gamagora 2012-2013, et connaissant plusieurs des étudiants de cette promo, j'ai décidé de me joindre à un des groupes pour les aider à développer un jeu vidéo sur une durée d'environ 3 mois.


C'est ainsi que j'ai contribué pendant ces 3 mois au développement de ROPE, platformer en 2.5D qui fait évoluer notre micro-héros, une araignée robotique du nom de S-27, dans un environnement naturel grâce à son grappin laser. Mais une vidéo vaut mieux qu'un long discours, c'est pourquoi je vous laisse donc découvrir tout cela plus en détails avec le trailer

Note : ce trailer devrait être reshooté un peu plus tard, car celui-ci n'est pas en résolution optimale et ne représente pas tout à fait le produit obtenu au niveau des fonctionnalités / graphismes finaux.

Si vous désirez en savoir plus sur ce projet et en télécharger la démo, vous pourrez trouver de plus amples informations sur le site officiel de ROPE (http://rope-thegame.com) ainsi que sur les pages qui lui ont été dédiées sur jeuxvideo.com.

Heartcraft (Global Game Jam 2013)

Projet personnel, Nao robot, Choregraphe, Python

Projet conçu dans le cadre de la Global Game Jam 2013 (thème : un battement de coeur) au sein d'une équipe de 4 personnes sur une plateforme originale : un robot Nao ! 2 des personnes de l'équipe étaient des employés d'Aldebaran robotics ayant amené un robot Nao dans le but de participer à cette Game Jam. Le défi que représentait la conception et la réalisation d'un jeu sur cette plateforme originale en plus des contraintes habituelles (thème imposé et en 48h) m'a immédiatement attiré.

Team PiNAOcchio

Notre produit final est une histoire interactive mignonne et rigolote avec un robot Nao autour du thème de Pinocchio, ponctuée de mini-jeux.


Un magicien démoniaque a lancé un puissant sort sur Nao et désactivé toutes ses capacités (voix, vue, ouïe, toucher, mouvement des membres, LEDs, la capacité à marcher et celle de distinguer la droite et la gauche). Toutes ? Ha, il semble qu'il en a oublié une cachée : Nao peut toujours envoyer des emails ! A partir de cette minuscule fissure dans la malédiction qui l'affecte, Nao va requérir l'aide du joueur pour débloquer et recouvrer chacune de ses capacité les unes après les autres (avec des mini-jeux en relation). Et il apparaît qu'il peut aussi apprendre plus que ce qu'il connaissait avant..!

Ci-dessous, une vidéo (en anglais) qui présente le dernier mini-jeu de notre histoire (qui intervient une fois que toutes ses anciennes capacités sont retrouvées), dans lequel Nao découvre et apprends les émotions(!), suivi de la séquence finale de cette chaleureuse histoire.

iMotsFléchés

Projet professionnel, Unity3D

Jeu de mots fléchés sur plateforme mobile développé avec Unity3D pour DigDog Studio. Comprend plusieurs tailles de grille, 3 niveaux de difficulté des grilles, 3 niveaux d'aide au jeu, 2 façons de jouer très distinctes (au clavier pour les "old schoolers" ou avec un système de jetons à déplacer pour les néophytes), une boutique in-app pour les acharnés, des animations sympas, des classements et défis avec le GameCenter (iOS)... un excellent passe-temps !

iMotsFléchés

Disponible sur iPhone, iPad et Android, aussi bien en application payante (iMotsFléchés, plus de grilles disponibles) qu'en application gratuite (FreeFléchés). Je vous invite donc à la télécharger !

L'utilisation de Unity3D avait pour but de faciliter le portage iOS/Android, ainsi que l'intégration plus aisée de quelques éléments propres aux moteurs de jeux (typiquement, la physique). La difficulté principale a donc consisté à faire du "reverse engineering" afin de reproduire sous Unity le plus fidèlement possible le comportement des interfaces native iOS (système de pages pour les menus, inertie lors des déplacements de la caméras, effet "ressort" lorsqu'on arrive en bordure...).

Triad Chess

Projet professionnel, Unity3D

Jeu d'échecs à 3 joueurs développé avec Unity3D pour DigDog Studio. Bataillez pour votre roi dans ce jeu d'échecs à l'aspect incroyable. Jouable jusqu'à 3 personnes sur la même machine, ou contre des IAs. Comprend 3 niveaux de difficulté pour les IAs et 2 modes de jeu (dernier roi sur l'échiquier gagne ou alors premier échec et mat gagne).

Triad Chess

Disponible sur iPhone, iPad, Android, Mac, PC et navigateur web. Il existe des versions gratuites sur iPhone, iPad, Android et web, donc n'hésitez pas à essayer !

Disclaimer : le portage des versions PC, Mac et web ont été effectuées par une autre personne que moi-même, donc je ne suis en rien responsable si ces versions viennent à présenter des soucis graphiques (résolution par exemple.)

Triad-Chess © Richard Wittig, http://www.triad-chess.com

Warlocks Brawl

Projet personnel, UDK, Unreal Script

Projet personnel de développement d’un jeu vidéo en utilisant l’UDK, pour lequel j'étais designer et développeur. Je me faisais aider pour tout ce qui concerne l'aspect artistique par des connaissances.

Warlocks Brawl consiste en un combat de mages (un par joueur) dans une arène interactive (sa taille réduit sur la durée, entourée de lave, objets destructibles), dont le gagnant sera déterminé par sa stratégie (certains sorts peuvent être utilisés en conjonction pour de plus grand effets), ses réflexes et sa précision au maniement de sorts dévastateurs dont chacun a des effets/comportements bien spécifiques. Caméra à la 3ème personne, selon un angle plongeant. Une partie est constituée de plusieurs combats, entrecoupés de séquences intermédiaires permettant d’acquérir de nouveaux sorts ou d'améliorer ceux déjà connus en fonction de sa performance globale. Uniquement multijoueurs.




Pour en savoir plus, je vous invite à visiter mon journal du développeur (en anglais) qui couvre une partie de la durée du projet. Ce projet a duré plusieurs mois à plein temps, puis a malheureusement été abandonné faute de moyens. Idée originale tirée d'un mod de Warcraft 3.

The Uncrackable Twins Saga: Twins Of The End

Projet scolaire, XNA, C#

Jeu vidéo développé en C# au sein d’une équipe de 9 personnes (2 programmeurs, 2 artistes, 3 designers, 1 ingénieur du son et 1 chef de projet) pour un module universitaire.

C'est un shoot'em up coopératif en 2D vu de dessus, dont le principe de jeu est basé sur un système de couleurs inspiré d'Ikaruga : le bleu affecte uniquement le orange et vice-versa, ce qui rend la coopération entre les 2 joueurs obligatoire. De plus, afin d'intensifier cette symbiose entre les joueurs, nous avons ajouté d'autres actions collaboratives telles que la possibilité de soigner l'autre joueur ou la necessité de "répondre à un appel" de son cooéquipier pour pouvoir lancer une attaque dévastatrice.


D'un point de vue plus technique, ce jeu est totalement "data-driven", toutes les données sont chargées depuis différents fichiers XML. Du coup, nous avions aussi développé un éditeur de niveaux en parallèle afin de rendre la tâche des Level Designers plus aisée.

A Hell of a Show

Projet personnel, Hammer

Projet personnel d’une campagne de 5 niveaux pour le jeu Left 4 Dead, comprenant un scénario original dans le style de celui de Portal (Valve) mais basé sur la TV realité. Design, écriture du scénario et mapping en solitaire.

Nos 4 survivants se reveillent sur un chemin côtier, ne se connaissant pas et n'ayant aucun souvenir sur la façon dont ils sont arrivés là. Ils se rendent rapidement compte que la place est infestée de zombies, et vont donc rapidement prendre les armes qui gisent près d'eux (tiens donc, encore quelque chose d'étrange...) pour se tailler un chemin au travers de ceux-ci. plus tard, un tremblement de terre va bloquer leur avancée, mais ouvrir une brèche dans une paroi : quelle n'est pas leur surprise quand, en s'y engouffrant, ils découvrent tout un réseau de couloirs; au fur et à meusre de leur progression, les joueurs prennent conscience qu'ils faisaient en fait partie d'une émission de télé-réalité poussée à l'extrême, fait complètement avéré lorsqu'ils aboutissent sur un plateau de prime time télévisé. Cependant, leur calvaire est loind d'être terminé : apparement, tout ne s'est pas déroulé comme prévu, étant donné que le carnage et l'infestation s'est étendu aux coulisses, spectateurs et équipes de tournages ! Poursuivant leur fuite éperdue jusqu'à la nuit, la campagne se termine sur un cliffhanger : la dernière scène montre nos survivants arrivant, au détour d'un buisson, exactement à l'endroit où ils se sont réveillés le matin même... Malheureuse coïncidence, ou tout ceci était-il prévu à l'avance ?!

L'idée principale était de pousser l'immersion du joueur au maximum, ce qui manquait gravement aux campagne originales de Left4Dead (elles n'ont pas de scénario à proprement dit, juste un "arrière plan" qui justifie la course des survivants); d'ailleurs, à l'instar de Portal, beaucoup d'indices étaient cachés dans le décor, ce qui pouvait pousser le joueur observateur à se douter de quelque chose/comprendre avant que cela soit révélé : petite cameras cachées dans le décor, des inscriptions sur les parois telles que "Ils nous mentent" ou "Il existe un autre coté".

Projet abandonné à un état peu avancé, dû au peu de temps disponible en dehors des études, après la période estivale.

Tornado

Projet scolaire, C++

Travail effectué pour un module universitaire, Animation and Simulation Programming. L'objectif était d'animer (pas de physique) ou de simuler (avec de la physique) de manière procédurale une tornade en utilisant un système de particules. En ce qui concerne ma tornade, elle est animée, et l'application est conçue de façon à tourner en continu, à la manière de ce que vous pouvez voir dans la vidéo. Fait en OpenGL, en utilisant un scenegraph (librairie de l'enseignant).


Patchwork vidéo avec Réalité Augmentée

Projet scolaire, OSG, ARToolkit, C++

Application ludique, particulièrement appropriée dans une exposition. Elle est composée de 2 parties: le mode Patchwork et le mode Enregistrement. Fait en utilisant OpenSceneGraph, ARToolkit et OSGART.

En mode Patchwork, une mosaïque de vidéos est affichée (à l'initialisation, toutes les vidéos sont identiques, utilisant un fichier par défaut). L'utilisateur peut maintenant cliquer sur n'importe quelle vidéo affichée afin de la remplacer par une vidéo qu'il va enregistrer lui-même. L'application passe donc en mode Enregistrement.


En mode Enregistrement, la mosaïque laisse place au flux vidéo de la caméra (l'utilisateur se voit en direct). A partir de ce moment là, la Réalité Augmentée est activée et l'utilisateur peut donc "jouer" avec les 2 marqueurs à sa disposition: le premier est suivi d'une trainée de particules alors que le 2ème constitue le référentiel de gravité pour ces particules (comprendre : les particules vont "tomber" dans la direction générale de ce second marqueur). Il y a aussi un panneau sur la gauche permettant de personnaliser ces particules en changeant la couleur, la durée de vie, la taille... Une fois cette personnalisation terminée, l'uilisateur lance l'enregistrement vidéo en appuyant sur 'R' (les panneaux de personnalisation disparaissent) : le flux vidéo + les particules ajoutées virtuellement sont enregistrés pendant les quelques secondes suivantes. L'application retourne ensuite en mode Patchwork, et la vidéo qui vient d'être enregistrée est jouée en boucle à l'emplacement choisi précédemment.

Online Bombing

Projet scolaire, Java

Démo de jeu multijoueurs de type "bomberman" réalisé pour un module universitaire, Multiplayer Games Programming. Développé en Java.

Le but du module était d'apprendre à étudier les besoins, les contraintes et concevoir les solutions concernant un jeu multijoueurs. Le produit fini n'est pas un jeu en soi (très peu de mécaniques implémentées), mais un "proof of concept" comprenant entre autres:

  • Un relation client/serveur.

  • Une architecture multi-threadée, articulée autour d'une game loop.

  • Association de 2 protocoles de transport: UDP et TCP.

  • La mise en place de solutions d'optimisation du coût de la bande passante telles que le multiplexage de messages en TCP pour éviter la surcharge d'entêtes, ...

3D Graphics Shading

Projet scolaire, C++

Le but de ce module était d'apprendre les techniques de base du shading sur des images pré-rendues (donc pas de temps réel). Développé en C++, avec une librairie de l'enseignant.

Je vais donc vous montrer les images générées par mon moteur de rendu. Nous avions pour mission d'analyser et de créer 3 scènes, dont chacune devait respecter des contraintes énoncées par l'enseignant, et de les rendre depuis plusieurs points de vue.

  • Scène 1: Spots

Cette scène a pour contrainte de devoir être éclairée par exactement 9 spotlights, ni plus, ni moins, ni d'autres types de lumières. J'ai donc décidé de jouer sur les couleurs (une par spotlight) et les reliefs (normal mapping, soft shadows).



  • Scène 2: Stained Glass

Cette scène a pour contrainte de devoir contenir un vitrail éclairé par une spotlight dont une partie de la lumière est cachée par un objet. Vous pouvez observer ceci sur la premiere image (il manque un peu de transparence sur le vitrail cependant...). De plus, je me suis servi de cette scène pour "caser" d'autres shaders, que je n'avais pas réussi a mettre ailleurs: Filtrage de textures (Bilinéaire) visible avec les images 2 et 3 (la 2 n'est pas filtrée, la 3 l'est), et une réflexion par cubemap sur la dernière image.



  • Scène 3: Freestyle

Cette scène a pour contrainte de n'avoir pour géometrie uniquement une sphère située dans un cube (la salle). C'était à nous par la suite de faire preuve d'imagination pour rendre cette scène la plus intéressante possible. J'ai pour ma part décidé de développer un shader personnel, afin de faire ressembler ma sphère à un sorte de boule de feu. En ce qui concerne la salle, c'est aussi un shader personnel, un damier procédural dont les cases qui ne sont pas blanches sont des miroirs.