Le projet : Un jeu d'aventure


zuul-bad

zuul-with-images : .jar applet
   

Vous pouvez en savoir plus sur ce type de jeux et même jouer à certains d'entre-eux en allant explorer les 2 sites cités dans la bibliographie. Par rapport aux exemples et aux instructions que vous pourrez y trouver, nous ne nous limitons pas à des versions non graphiques.

Le jeu

1) Introduction

Ce projet est décrit dans les 8 versions du livre "Objects First with Java" cité dans la bibliographie.
Mais vous devrez le réaliser en suivant scrupuleusement la liste officielle des exercices (voir le lien sur la page iCampus de l'unité).

Une version minimale du jeu, mal programmée, permettant d'aller dans les 4 directions sera construite au début.
Au fur et à mesure de votre avancement, plusieurs versions de ce projet vous seront fournies pour vous montrer la mise en oeuvre de certaines techniques.
Vous ne pourrez pas simplement copier/coller le code car ces versions n'illustrent généralement qu'un seul point et ne reprennent pas toutes les améliorations déjà apportées à votre jeu.

L'image de gauche ci-dessus montre une version non graphique du jeu sur laquelle nous travaillerons jusqu'à l'exercice 18.5.
La qualité de programmation sera progressivement améliorée pour être mieux en mesure d'ajouter des fonctionnalités intéressantes dans la partie suivante. On commencera par permettre l'ajout de nouvelles directions et deux commandes simples.

L'image de droite ci-dessus montre une version graphique du jeu sur laquelle nous travaillerons à partir de l'exercice 18.6. Il sera bien sûr possible de développer optionnellement une IHM (Interface Homme-Machine) plus sophistiquée.

Le cahier des charges sera progressivement développé pour intégrer :
- de nouvelles directions (up, down, et pourquoi pas NE, SE, SO, NO),
- de nouvelles commandes (eat, look, back, test, take/drop, inventory, charge/fire, open/close, talk, ...),
- un puis des objets dans chaque pièce,
- des objets spéciaux (magic cookie, beamer, ...)
- des pièces spéciales (avec une trap door, transporter room, ...),
- au moins un bouton à cliquer (et pourquoi pas des menus, des onglets, des dialogues, des icônes, ...),
- des fonctionnalités (revenir une fois puis plusieurs fois sur ses pas, se téléporter, tester automatiquement le bon fonctionnement, porter des objets ramassés dans les pièces, ...),
- une limite de déplacements (ou de commandes ou de temps),
- des personnages (PNJ) dont certains se déplacent (avec dialogues et/ou énigmes et/ou combats et/ou ...), etc.

La programmation java nécessaire pour implémenter tous ces ajouts est OBLIGATOIRE, mais elle peut être "habillée" différemment pour mieux coller à votre scénario. Certaines possibilités ci-dessus peuvent d'ailleurs ne servir à rien dans votre scénario, mais elles doivent être testables.

Tous ces ajouts seront entrecoupés d'améliorations de la programmation (qui consistent souvent à reprogrammer "en mieux" une partie qui fonctionne déjà) vous permettant d'apprendre de nouveaux concepts et de nouvelles techniques en Java.

Ne vous laissez pas décourager par l'ampleur apparente de ce projet.
Pour le mener à bien, étape par étape, il suffit de lire les objectifs détaillés (voir la page web de l'unité) et de suivre les instructions pas à pas.
Si vous êtes bloqué après une demi-heure de réflexion et d'essais, vous devez demander à un enseignant (dans son bureau ou par mail ou sur le forum) car il ne faut surtout pas perdre de temps dès le début du projet.

Vous n'avez pas aujourd'hui toutes les connaissances nécessaires pour terminer ce projet, mais vous allez les acquérir d'ici à la fin du projet grâce aux unités d'enseignement en cours ou à venir, à la lecture du chapitre 7, à des exemples qui seront fournis sur cette page web, et à vos recherches personnelles.

2) Bibliographie

  • Objects First with Java, A Practical Introduction using BlueJ de David J.Barnes et Michael Kölling.
    Prentice Hall / PearsonEducation, 2006
    • toutes les versions de cet ouvrage sont référencées sur cette page, dont des versions plus récentes.
    • les chapitres 1 et 2 sont en ligne sur l'extranet

 


--> Dernière mise à jour le par DB