L3info:Projet - DptInfo

L3info:Projet

Sommaire

Liste des projets 2012-2013 pour L3 informatique

Les projets sont pour un binôme à chaque fois sauf mention contraire dans le sujet.


Développement d'un jeu multi-plateforme (GTK, Facebook, Google+ et Android) - Eric Ramat - LISIC/ULCO

Un ou deux binômes de L3 (HTML/JS pour Facebook/Google+), un ou deux binômes de M1 (IA et serveur Web) et un ou deux binômes de M2 (version Android et version en réseau)

Etudiants : ???

Objectifs

Le but de ce projet est de développer un environnement de gestion de jeux deux à deux via trois plateformes (GTK, Facebook, Android et iphone/ipad) sous licence GPL. L'idée est de gérer :

  • l'inscription des joueurs via les différentes plateformes ou directement sur le site web du projet ;
  • les parties à deux en mode connecté sachant que les deux joueurs peuvent ne pas être sur la même plateforme ;
  • l'interface graphique du jeu ;
  • des tournois multi-joueurs ;
  • un classement mondial sur le modèle du jeu d'échec (ELO)
  • un mode Point à point en wifi avec Android et iphone

Afin de construire cet environnement multi-plateforme, nous allons nous intéresser à l'un des jeux de Kris Burm. Kris Burm a inventé une multitude de jeux abstraits de stratégie (Bi-litaire, Dvonn, GIPF, Invers, Pünct, Quads, Tamsk, Tzaar, Yinsh et Zertz). Vous pouvez retrouver la description de la plupart des jeux sur le projet GIPF

Dans ce cadre de ce projet, nous allons intéresser à l'ensemble des jeux de K. Burm. Il existe une version Java d'une partie de ces jeux sur boardspace On pourrait s'inspirer de la présentation et des idées du site web.

Aujourd'hui, il existe une version GTK/C++ sous Linux de Yinsh, Zertz et Invers (Tzaar est en cours de finalisation), une version Android de Yinsh et une version JS non finalisée de Yinsh. Le début d'un site web en PHP existe pour l'inscription des jeux et des joueurs. Plusieurs scripts de gestion des interactions en mode connecté sont aussi écrits.

Travail

Il reste encore pleins de choses à faire :

  • Facebook / Google+ :
    • finalisation du jeu Yinsh en HTML/JS pour Facebook
    • étude de la portabilité sous Google+
    • développement des autres jeux (Invers, Zertz, Tzaar, ...)
  • Android :
    • finalisation du protocole en mode connecté
    • ajout du mode "point à point"
    • développement des autres jeux (Invers, Zertz, Tzaar, ...)
  • serveur Web :
    • finalisation des fonctions de gestion des jeux, des joueurs et des parties
    • réalisation des fiches "jeu" (présentation du jeu, règles du jeu, ...)
    • intégration du classement des joueurs
    • développement du mode Tournoi
  • travaux transversaux :
    • développement d'IA pour Yinsh, Invers, Zertz et Tzaar
    • étude de la fiabilité en mode connecté
    • mise en production et mis à disposition des jeux sous Facebook, Google+ et Google Play
    • négociation avec l'auteur des jeux

Langages et technologies


Développement d'un générateur d'albums photo

Description  Un générateur d'albums transforme un ensemble d'images en une page web qui permet de regarder ces images à distance et de façon intuitive. Deux types de pages sont construites : une page donnant un aperçu de toutes les images et une page permettant de faire défiler les images. Il existe déjà de nombreux générateurs mais ceux-ci sont propriétaires, infestés de publicités ou nécessitent une base de données. Le but du projet est de pouvoir générer des pages html classiques et sans pub. Une interface graphique ou différents paramétrages pourront également être implémentés.

Compétences à mettre en œuvre 

  • developpement web (html)
  • developpement C, C++ ou bash

Contact Julien Dehos, bureau A212


Logiciel de discrétisation d'objets 3D surfaciques

Description  En informatique graphique, les objets 3D sont généralement représentés par un ensemble de triangles décrivant la surface des objets. Le but de ce projet est de pouvoir discrétiser en voxels un objet 3D composé de triangles. En d'autres termes, il s'agit de découper l'espace 3D selon une grille 3D régulière et de trouver les cubes de cette grille qui sont à l'intérieur de l'objet. Le travail demandé est d'écrire un script Python qui exporte les triangles de l'objet initial puis d'écrire un programme en C qui discrétise un tel ensemble de triangles.

Compétences à mettre en œuvre 

  • script Python
  • développement de logiciel en C
  • notions de géométrie

Contact Julien Dehos, bureau A212


Logiciel de visualisation d'objets volumiques

Description  En informatique graphique, les objets 3D sont généralement représentés par un ensemble de triangles décrivant la surface des objets. Un objet volumique utilise une représentation différente : l'espace 3D est découpé selon une grille 3D régulière et en chaque cube de cette grille, on indique si on est dans l'objet ou pas. Le but de ce projet est de pouvoir visualiser un objet volumique, ce qui nécessite essentiellement de déterminer les triangles à la surfaces des cubes en bordure de l'objet. Le travail demandé est d'écrire un programme en C qui calcul un tel ensemble de triangles, à partir des données de l'objet volumique, et d'afficher ces triangles via OpenGL.

Compétences à mettre en œuvre 

  • développement de logiciel en C
  • OpenGL
  • notions de géométrie

Contact Julien Dehos, bureau A212


Intelligence artificielle pour le jeu par ordinateur

Description  Depuis la victoire de Deep Blue sur le champion du monde des échecs Gary Kasparov, l'intérêt pour développer des intelligences artificielles pour les jeux par ordinateur s'est développé. Récemment de nouvelles techniques ont été découvertes pour créer des programmes de jeux pour lesquels les humains sont données favoris. Le but de ce projet sera d'étudier ces dernières techniques afin de les comparer sur un jeu. Le jeu peut être choisi par l'étudiant (en accord avec les encadrants).

Compétences à mettre en œuvre 

  • algorithmique et programmation
  • curiosité pour l'IA et les jeux

Encadrants Fabien Teytaud et Denis Robilliard

Contact Fabien Teytaud, bureau B009

Programmer votre lapin - Eric Ramat - LISIC/ULCO

Etudiants : ???

Objectifs

Karotz est un objet représentant un lapin et intégrant un ordinateur pouvant se connecter à Internet grâce à un réseau Wi-Fi ou un adaptateur USB / Ethernet. Le Karotz est un système embarqué à part entière avec son processeur, sa mémoire, les entrée-sorties et son système d'exploitation. Pour être plus précis, il se compose :

  • Microprocesseur ARM 9 (Samsung S3C2440)
  • Système d'exploitation Linux
  • Mémoire interne de 256Mo de mémoire flash, 64Mo de Ram
  • Carte Wifi multi protocole (WEP, WPA, WPA2)
  • Carte RFID passive et en accessoires des éléments RFID
  • Enceinte et reconnaissance vocale
  • Webcam orientable (résolution 640*480)
  • Une led multicolore de grande puissance
  • 1 port USB auquel on peut connecter un adapteur USB/Ethernet

Le Karotz est programmable en JavaScript. On "utilise" le lecteur RFID, la webcam, la LED (qui est placé sur le ventre du lapin), les enceintes, la reconnaissance vocale, le réseau (pour télécharger des éléments sur le Web) et les oreilles (les bougent à l'aide de petits moteurs).

Le projet va consiste à développer une ou plusieurs petites applications avec ce lapin. Par exemple, on peut le faire jouer à des jeux simples (dame ou autre) contre son utilisateur. Attention, il faut pouvoir jouer à ses jeux via les interactions possibles avec le lapin.

Travail

  • découvrir l'environnement de développement JavaScript
  • développer une application
  • publier l'application sur le Karotz Store

Langages et technologies

  • JavaScript
  • Système embarqué

Références

Archives