Mes projets

Ici vous pouvez retrouver une compilation de la globalité de mes projets, toujours dans l’esprit de partage que je souhaite pour mon blog, l’intégralité de mes projets sont libre (License Creative Commons CC-BY-NC-SA 3.0)

 

Tux Adventure

J’ai développé ce jeu durant l’été 2010, sur deux semaines me semble-t-il. Le jeu est basé sur une concept que j’avais depuis le collège (oui c’est vieux, mais il fallait le temps que je me lance). Il s’agit ici de mon premier jeux complet dont l’objectif était simple : faire un jeu avec un éditeur de niveaux simple, permettant d’avoir des mécanismes cachés et ainsi de créer une sorte de labyrinthe. La version finale comporte relativement peu de niveaux, la partie intéressante étant surtout pour moi le développement du moteur et de l’éditeur. Ce seras donc à vous de compléter le jeu. Je vais peut-être dans un futur plus ou moins proche faire une refonte du jeu pour l’optimiser et y ajouter de la 3D.

Ce que l’on peut faire :

  • Éditer des niveaux (c’était un peu le principe de base quand même).
  • Jouer les niveaux (c’est plutôt pratique).

Niveau gameplay :

  • Le joueur peut se déplacer et sauter
  • Dans l’eau le joueur nage
  • Dans la lave le joueur cuit
  • Le joueur peut grimper aux échelles
  • Le joueur peut tomber dans des trous
  • Le joueur doit (théoriquement…) éviter les ennemies
  • Le joueur n’a que 3 vie et a tout intérêt à les conserver s’il ne veut pas tout recommencer…
  • De manière générale il est déconseillé au joueur d’éviter la lave/les ennemis/les cases électrifiées/les piques…
  • Le joueur peut actionner des interrupteurs, volontairement ou non
  • Les interrupteur sont soit visible soit…. invisible !
  • Les interrupteurs ont différent modes de fonctionnement
  • Les case lié à un interrupteur change selon un cycle prédéfinit
  • Les ennemis étant lié à des cases, ils peuvent être activés/désactivés de la même manière

Tux Adventure (tar.gz) // Tux Adventure (zip)

Catpure d'écran de Tux Adventure

 

Pathfinding A*

Ce petit programme est une démonstration d’un algorithme d’intelligence artificiel : le pathfinding A* (je sais, c’est le titre). L’objectif de cet algorithme est de permettre à la machine de trouver un chemin allant d’un point A vers un point B dans un monde composé de case. Il est adaptable à tous les types de monde « casé ». J’avais développé une première version après avoir découvert le principe du A* sur un site de tutoriels et lorsqu’en classe de 1er lors des TPE (Travaux personnels encadré) j’ai vu que je pouvais choisir  de travailler sur l’intelligence artificiel, je n’ai pas hésité : j’ai ainsi choisi de travailler sur l’évolution de l’IA dans les jeux vidéos. Et quoi de mieux que de présenter un cas concret d’intelligence artificiel ? C’est ainsi que je suis venus à adapter mon premier algo d’IA pour le rendre plus présentable. Avec cette toute nouvelle version, plus besoin d’entrer un fichier texte à la main pour créer la carte, un éditeur graphique est disponible et les résultats ne sont plus dans un terminal, mais dans une horrible jolie fenêtre.

Path Finding A* (tar.gz) // Path Finding A* (zip)

Capture d'écran du Path Finding A*

Wave VS Coast

Lors du second semestre à l’ENIB, il est demandé aux étudiants dans le cadre du cours de MDD (Méthode De Développement) de réaliser un projet informatique, en l’occurrence un jeu ludo-éducatif. Le projet devais normalement être mené en binôme, mais suite à un heureux concours de circonstances, deux trinômes ont été formés. Le thème du jeu a été choisi en mon absence (j’étais malade le jour du choix, ça tombe bien je n’avais pas d’idée…). Nous avons donc avec mes deux collègues développé un jeu sur le thème des énergies marémotrice.

Le jeu se construit comme un tower-defence, le joueur est face à une carte représentant la côte et composé de case : à gauche la côte et des habitations que le joueur devrat protéger, à droite l’océan d’où proviennent les vagues. Le principe est simple : les vagues ont des intensités et vitesses pré fixé, elles apparaissent à une position aléatoire au bord droit de l’écran, le joueur place des technologies marémotrices qui seront débloquées au fur et à mesure de l’aventure. Chaque technologie a des caractéristiques propres dont le prix (en kW, oui moi j’achète des trucs avec des kW), lorsqu’une vague traverse le bâtiment son intensité est réduite tandis que le bâtiment subit des dommages en fonction de sa résistance et produit de l’énergie qui permettra d’acheter de nouvelles technologies. Vous l’aurez compris, le but sera pour le joueur de stopper les vagues grâce aux différentes technologies afin d’éviter qu’elles ne détruisent les maisons sachant que les bâtiments marémoteurs finissent par être détruit par les trop grosses vagues. À chaque début de niveau de nouvelles technologies sont débloquées accompagnées d’une description éducative.

Je pense que ce projet de groupe a été plutôt instructif de par le fait qu’il ait mis en évidence les difficultés du travail d’équipe :

  • Les habituelles difficultés de gestion d’un groupe
  • Mes collègues n’avaient jamais codé hors des cours, j’avais donc un certain nombre de connaissance qu’ils n’avaient pas (notamment la programmation orientée objet) et qui ont créé une difficulté supplémentaire : pour pouvoir profiter pleinement des possibilités offertes par mes connaissances, il fallait que je leur apprenne et d’après leurs retours je ne suis pas un très bon prof (parait que je suis pas pédagogue…)
  • Les rush de dernières minutes à minuit parce que tout n’est pas prêt ou que les dernières modifications font tout foirer (sur trois ou quatre versions à rendre, seul la dernière a été rendue en avance : quinze minutes avant minuit)

Finalement nous avons réussi à tenir les délais et avoir un jeu fonctionnel plutôt correcte. Initialement il était prévu d’intégrer un éditeur de niveaux, mais par manque de temps cette partie du projet a été abandonnée. De même le nombre de technologie intégrée au jeu est faible car bon nombre ne sont que des prototype et il était difficile de trouver des textures pour les intégrer (ouai c’est con mais c’est comme ça…)

En ce qui concerne l’organisation du groupe nous avons géré en fonction des capacités et désirs de chacun :

  • CH a fait les recherches sur les différentes technologies, leurs textures et de manière plus générale tout l’aspect « éducatif » du jeu (des trucs chiants)
  • Tomeros a principalement géré l’aspect design du jeu ainsi que la lourde charge des dossiers de conception et d’analyse qu’il fallait rendre au fur et à mesure du développement du jeu (aussi des trucs chiants…)
  • J’ai fait le code du jeu, étant celui qui avait le plus d’expérience ça nous a permis de ne pas être trop à la bourre (enfin, tout est relatif…)

En somme ce fut un projet très intéressant et très plaisant malgré les difficultés. Ce fut un plaisir de travailler avec CH et Tomeros.

 Waves VS Coast (tar.gz) // Waves VS Coast (zip)

 Capture d'écran


3 Commentaires

  1. " C - H " dit :

     » je ne suis pas un très bon prof (parait que je suis pas pédagogue…)  »

    … Hmm, disons que tu nous a fait là un magnifique euphémisme !

    Mais je reste à ta disposition si tu souhaites implémenter de nouveaux modules houlomoteurs, oh grand maîîîître ! 😉

    • wolf dit :

      Le projet étant fini je ne prévois pas de le compléter, mais libre à toi si tu veux ajouter des technologies ou des niveaux de la faire, tu sais comment t’y prendre.

Poster un commentaire

Votre email n'est jamais publiée ou partagée, cependant il est utilisé pour vérifier que vous ne soyez pas un robot.
Les champs obligatoires sont marqué *

*
*

*