créer jeux-video

créer jeux-video - C - Programmation

Marsh Posté le 28-03-2009 à 00:55:50    

Je suis en première année d'école d'ingénieur et l'on me demande déjà de créer un jeu-vidéo mais je ne sais pas par où commencer. Je n'ai appris que le langage C et Allegro et je dois être capable de créer ce jeu en moins de 8 semaine.
Je vous laisse lire et dites-moi vos impressions et vos premières remarques pour faire évoluer le sujet, et m'expliquer par où vous commencerez et pourquoi...
 
Merci
 
 
GOBLIINS
 
 
 
Ce projet est librement inspiré d’un jeu que j’ai adoré.
Les illustrations ci-dessous ont été récupérées sur Internet et sont données à titre indicatif.  
Elles ne vous obligent en aucun cas à faire preuve d’un talent de graphistes pour les refaire à l’identique.  
Vous ferez en fonction des compétences de votre groupe et je suis sûr que nous serons agréablement surpris.
 
En quoi consiste le jeu ?
 
Ce jeu est composé d’une succession de tableaux présentant une scène avec des personnages et/ou des objets et un certain nombre de choses à faire, parfois dans un ordre précis, parfois en simultané et en temps limité. Ces différentes tâches seront réalisées par des gobelins.
 
Qu’est-ce qu’un gobelin ? Un gobelin est un petit personnage mystérieux aux pouvoirs étranges. Et dans ce jeu vous en manipulerez 2 ! Et leurs aptitudes ne sont pas les mêmes !
Du fait de leur caractère (l’un est gentil et rusé, l’autre est directif et grognon), leur réaction dans une situation donnée est différente. Par exemple, s’il faut prendre une bouteille pour une raison quelconque, l’un prendra la bouteille et ira à la fontaine la remplir, l’autre la prendra et la brisera en la jetant contre un arbre. A vous de décider qui aura fait ce qu’il faut : avez-vous besoin d’eau pour la suite ou avez-vous besoin d’un morceau de verre brisé pour couper une corde… ?
 
Les tâches réussies vous apporteront parfois des informations, parfois des objets nécessaires pour poursuivre le jeu : mot de passe, clef, nourriture a donner à un personnage affamé trois tableaux plus loin qui vous confiera en échange la clef du coffre que vous n’avez pas réussi à ouvrir dans le premier tableau…etc.
 
Le ton est donné, votre imagination fera le reste.
 
Boite de dialogue et boite à objets
 
Tout autour de l’écran, vous ferez apparaître des zones de manipulation.
En bas de l’écran, une boite de dialogue affiche le texte correspondant à ce que vous diront certains des personnages (pas toujours très utile, ils racontent souvent n’importe quoi).
A proximité de l’objet concerné, un cadre vous indique les différentes actions possibles sur un personnage, un objet ou une zone que vous survolez avec la souris (pas plus de 4 possibilités par objet).
En haut, un bandeau d’icones vous donne accès à votre boite à objets pour stocker ce que vous ramassez ou les informations que vous récupérez. Elle vous donne également accès au menu de sauvegarde et de chargement et vous permet de quitter le jeu.
Agir avec un gobelin
 
En survolant les différentes zones du tableau vous faites apparaître les différentes possibilités sur cette zone (prendre, parler, jeter…), cela dépend si c’est un personnage, un objet ou autre.  
 
En cliquant sur un des 2 gobelins, vous le mettez sous influence. A partir de ce moment, le prochain clic est un ordre pour ce gobelin.  
 
Si vous cliquez sur une zone neutre du terrain, le gobelin sous influence s’y rend puis attend. Il reste sous influence.
 
Si vous cliquez sur l’action « prendre » qui est apparue en survolant une bouteille qui se trouve à un autre endroit du tableau, le gobelin sous influence va se déplacer en marchant tranquillement vers la bouteille puis la prendre. Elle apparaitra alors dans sa main. Si vous ne souhaitez pas l’utiliser dans ce même tableau, vous pourrez alors la ranger dans votre boîte à objets. Elle disparait alors de sa main.
Le trajet que le gobelin emprunte pour se rendre à la bouteille est automatique (et « devrait » contourner les obstacles… pour les meilleurs d’entre vous). Le gobelin « actif » se stabilise à un endroit prédéfini proche de l’objet ou du lieu du clic et se met en attente.
 
Pour libérer un gobelin de son influence, cliquez à nouveau dessus.  
 
Si le gobelin ne s’est pas comporté comme vous le souhaitiez lorsqu’il a pris la bouteille (par exemple, il l’a immédiatement jeté par terre et l’a brisé, sans la garder en main), vérifiez tout de même que l’action inattendue n’ai pas un intérêt pour la suite (en survolant les débris pour voir si un menu d’action n’apparait pas par exemple, vous pourriez être surpris). Pour faire réapparaitre un objet qui aurait été malencontreusement détruit, quittez le tableau par une de ses portes ou voie d’accès et revenez-y. Tous les objets y réapparaitront.
 
Les 2 gobelins sont indépendants dans leur comportement et leur déplacement, bien que parfois une action conjuguée des 2 soit nécessaire.
 
Ils sont par contre solidaires lorsqu’ils quittent un tableau et réapparaissent tous les 2 par la porte d’entrée (ou zone d’entrée) du tableau suivant ou précédant. Il suffit donc d’en mettre un des deux sous influence puis de cliquer sur une zone de sortie pour que les 2 gobelins quittent le tableau en cours.
 
 
Quelques exemples d’écrans issus du jeu originel
 
 
 
Tableau 1
Tableau 2
 
 
Tableau 3
Tableau 4
 
 
Tableau 5
Tableau 6
 
Un exemple de scénario s’impose
 
Vos 2 gobelins sont arrivés dans le tableau 2  en provenance du tableau 1 par l’escalier en haut au milieu de l’écran. La première chose à faire c’est d’envoyer alternativement chaque gobelin discuter avec les personnages présents et survoler le tableau avec la souris pour y visualiser les objets ou les zones utiles (chaque objet ou chaque zone  utile survolé fait apparaitre un petit encart qui indique au plus 4 fonctionnalités le/la concernant).  
 
Vous envoyez donc le gentil gobelin discuter avec le personnage assis seul à gauche et il se fait gentiment envoyer sur les roses. Vous tentez alors de communiquer avec le même personnage à l’aide de l’autre gobelin, le grincheux. Même résultat, il se fait joliment éconduire par un « laissez-moi tranquille ». Et pire encore, si vous essayez de « décrocher » le saucisson qui pend à côté de lui vous prenez des coups de bâton.
 
Il faut donc trouver autre chose…
 
Quand les gobelins s’adressent aux deux gentils petits vieux assis en haut à droite, leur réponse n’est pas plus aimable « Ah la jeunesse, aucun respect pour les vieux ! ». Par contre, si vous survolez les fleurs en bas à droite, vous vous rendrez compte que le menu vous propose, entre autres, de les cueillir. Si vous envoyez le grincheux les cueillir, il s’exécute… puis les mange ! Raté. Si vous envoyez le gentil, il les cueille et attend. Si vous envoyez ensuite le gentil gobelin avec ses fleurs vers les petits vieux, le menu d’action a changé et propose maintenant de les offrir. Chouette ! On y est presque… Ah non, les petits vieux ne sont pas contents car les fleurs que leur offre le gentil gobelin sont fanées, ce qu’ils ne manquent pas de lui dire. En effet, les pauvres fleurs manquent d’eau.
 
Bon, ce n’est pas encore ca, mais on progresse.
 
Si vous regardez attentivement le tableau 3, accessible depuis le tableau 2 en sortant en bas à droite, vous y verrez une fontaine à droite. Si vous envoyez le gentil gobelin dessus et que vous cliquez l’option « appuyer » qui vous est proposée, celui-ci appuie sur la tête de la statue en forme de « dragon » mais il ne se passe rien. Si par contre vous envoyez l’autre gobelin, le grincheux courageux, ce dernier appuie sur l’épaule de la même statue qui se met à cracher de l’eau pendant 3 secondes. Miracle ! Il en faut pour les fleurs.  
 
Si vous avez pensé, dans le tableau 1, à prendre la bouteille qui se trouve sur le bureau, à la gauche de Merlin et à la ranger dans votre boite à objets, attribuez-la au gentil gobelin. Et avec dextérité (c'est-à-dire rapidement), cliquez sur le grincheux puis sur « appuyer » des options associées à la fontaine puis très rapidement (avant que l’eau ne s’arrête de couler) cliquez sur le gentil gobelin et sur l’option « remplir » que vous visualisez en survolant l’eau avec la souris. Ca y est ! La fontaine coule et rempli la bouteille que tient le gentil gobelin.
 
Vous pouvez maintenant retourner dans le tableau 2 et cliquer sur l’option « arroser » qui apparaissait au survol des fleurs avec la souris. Vous remarquerez alors que les fleurs se redressent et sont plus jolies.
 
Il est temps que le gentil gobelin les offre aux petits vieux.
 
Mais ce n’est pas fini. Ces derniers, reconnaissants pour ce gentil geste, lui propose de lui chanter une chanson (le texte de ce dialogue apparait bien entendu dans la zone de dialogue en bas de l’écran). Cette jolie chanson (les petits vieux chantent très bien) est tout de même un peu soporifique et a pour effet d’endormir le mystérieux personnage mal aimable du début. Ca tombe bien, une fois endormi, ce personnage laissera le grincheux gobelin décrocher le saucisson (N’essayez pas de décrocher le saucisson alors que le Monsieur est éveillé, je vous rappelle qu’il devient violent).
 
Qu’est ce que vous ferez de ce saucisson ? Essayez donc de le donner au chien qui vous barre la route dans le tableau 5…
 
Voilà, je pense que cet exemple de scénario illustre bien la philosophie du jeu que nous vous proposons de réaliser, ainsi que les interactions entre les différents tableaux.
 
Plus vous ferez preuve d’imagination, plus le jeu que vous soumettrez le jour de la soutenance à de chances de captiver le jury et de vous apporter une bonne note.  
Soignez également la jouabilité car le meilleur scénario reste mauvais s’il n’est pas jouable.
 
 
Travail à faire
 
Développer ce merveilleux jeu et montrer vos talents d’ingénieur et de créateur.
 
L’évaluation de votre travail sera répartie sur un rapport écrit et une soutenance orale.
 
Le rapport doit traduire la partie décisionnelle du travail d’ingénieur, c'est-à-dire toute la phase initiale de réflexion et de choix de programmation. Il doit préciser l’organisation adoptée par l’équipe de réalisation ainsi que le planning prévisionnel pour chaque étape et le modus-operandi des phases de test.
 
Il devra se présenter en une dizaine de pages (5 à 6 feuilles recto-verso) contenant :
Les membres de votre équipe
Les choix de programmation que vous avez été amenés à faire
La répartition des taches et la durée de chacune
Les dates et le contenu des tests intermédiaires et finaux de validation que vous avez mis et allez encore mettre en œuvre tout au long du projet, partie par partie
Une critique objective des points positifs et négatifs de votre conduite de projet (afin de ne pas refaire les mêmes erreurs la prochaine fois)
Une conclusion rapide sur votre travail, ce qu’il vous a apporté, quels ont été les écueils, les points plaisants…
 
Il est à remettre à Frédéric Ravaut à la fin de votre amphi de C, imprimé en recto-verso si possible.  
Les retards seront pénalisés au tarif du règlement.
 
Ce rapport, qui ne sera pas noté à proprement parlé, pourra venir rehausser ou diminuer la note obtenue lors de la soutenance en fonction de sa qualité. Il est à remettre au format papier à la fin des amphis de langage C. Les retards seront pénalisés au coût habituel de 2 points par jour de retard pris en compte dans la note de soutenance.
 
La soutenance, qui ne dure que 15 minutes, permet au client (le prof ;-) de tester votre programme et de vérifier l’adéquation de la solution que vous proposez avec le cahier des charges qui vous a été remis. Elle devra permettre (en très peu de temps pour le jury, faites attention) de juger l’esthétique (est-ce beau ?), la jouabilité (intéressant à jouer ? ni trop dur ni trop facile ?...), l’ergonomie (facile de se déplacer, d’exécuter une action ?), les astuces… de votre jeu.  
Parfois il sera préférable de laisser jouer le client, parfois il sera nécessaire que vous preniez la main pour mettre en évidence certaines particularités de votre solution. A vous de nous guider.
Elle est notée sur 20, éventuellement minorée par un mauvais rapport écrit et pourquoi pas majorée par un bon rapport.
 
Lors de la démonstration nous attendons un minimum de 3 écrans (terrains) mettant en pratique les principes de jeu décrits ci-dessus dans ce cahier des charges, c'est-à-dire, entre autres la manipulation de personnages et l’interaction entre tableaux. Ce « jeu de base » sera évalué sur 15 points. Les 5 points restants récompenseront un soin particulier apportés à certains aspects du jeu, une originalité particulière, une multitude de terrain, ou toute autre amélioration contribuant à l’intérêt de votre jeu.
 
Le jour de la soutenance, qui aura lieu dans la semaine du 04 mai 2009, vous remettrez à votre jury un support numérique (un CD ou DVD quoi …) contenant :
 
1.le rapport de programmation version numérique (et déjà remis version papier une semaine avant si vous avez tout suivi ;-),  
2.l’intégralité des sources de votre code,  
3.un .exe d’installation automatique du jeu et de toutes les librairies qui vont bien pour l’utilisation du jeu. Attention à installer le fichier alleg42.dll dans le même répertoire que l’exécutable.

Reply

Marsh Posté le 28-03-2009 à 00:55:50   

Reply

Marsh Posté le 28-03-2009 à 09:16:57    

jackborogar a écrit :

Je suis en première année d'école d'ingénieur et l'on me demande déjà de créer un jeu-vidéo mais je ne sais pas par où commencer. Je n'ai appris que le langage C et Allegro et je dois être capable de créer ce jeu en moins de 8 semaine.
Je vous laisse lire et dites-moi vos impressions et vos premières remarques pour faire évoluer le sujet, et m'expliquer par où vous commencerez et pourquoi...


Quelle est la question sur le langage C ?
 
La première chose à comprendre en programmation, est la différence entre définition, conception et codage. Ici, tu es sur un site de codage en C. Ta question porte sur la conception. Tu es donc hors-sujet. Il existe des forums spécialisés sur les jeux vidéos .


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 28-03-2009 à 11:37:56    

Topic doublon en plus. Je ferme.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed