Translations of this page:

1. Qu'est ce que Wintermute ?

Vous avez téléchargé Wintermute, et vous vous demandez peut-être, ce que le moteur Wintermute, est en fin de compte. Wintermute est un kit de développement professionnel, destiné à créer des jeux d'aventure. Il est constitué de deux parties. La première, est un ensemble d' outils permettant le développement d'un jeu, et la seconde est un interpréteur, c'est en fait lui qui va donner vie à vos créations.

Maintenant, avant d'aller plus loin, et pour que vous puissiez être à même de décider si le moteur Wintermute peut vous convenir, voyons ce que l'on entend par jeux d'aventure. En effet, le terme "jeux d'aventure" est un peu vague, et peut porter à confusion. Certains joueurs, voient ce type de jeu comme étant des "films interactifs", dans lesquels vous avancez en tapant des commandes ("ouvrir la porte", "appuyez sur le bouton", "tuez le troll", …), et le jeu répond en affichant du texte, ou en affichant une nouvelle image. Il y a également d'autres jeux d'action/aventure, où le gameplay se résume, à enclencher des mécanismes ci et là, afin d'avancer comme "Resident Evil". Bien, qu'il soit possible de créer un tel jeu avec Wintermute, celui-ci n'a pas été développé dans cette optique.

Comme il a été dit, le moteur Wintermute n'est pas limité à ce type de jeu, mais a été conçu, avant tout, dans le but de concevoir des jeux de type "pointez-cliquez" ( point'n'click ). Dans ces jeux, le joueur peut, par exemple, avoir un inventaire. Le joueur peut être représenté sous la forme d'un personnage, et/ou rencontrer d'autres personnages, avec lesquelles il pourra interagir. En général, ce type de jeu consiste en la résolution d'énigmes, et en l'interaction avec d'autres personnages( via les dialogues ). Des centaines de jeu de la sorte, ont été créés, on peut entres autres citer les jeux "Lucas Arts", comme "Maniac Mansion" ou "Full Throttle" ou encore "Grim Fandango". Il y a également eu plus récemment des jeux comme "Syberia", ou "The longest journey". L'histoire tient en général une place importante dans ce type de jeux. Vous devez en quelques sortes, conter une histoire au joueur, et le jeu n'est rien de plus qu'un moyen de le faire. Il y a aussi d'autres types de jeux d'aventure, qui misent moins sur l'histoire, mais se focalisent plus sur la résolution d'énigmes, on peut penser à la série des "Myst par exemple. Si vous avez pour projet de créer un jeu de ce type, alors Wintermute peut vous intéresser.

Maintenant, voyons plus en détail les outils qui vous sont proposés :

  • Project Manager : cet outil vous propose une vue générale de votre projet. C'est là que vous pourrez régler les paramètres globaux. Vous pourrez, par exemple y lancer votre jeu, réglez la résolution, etc. C'est un peu comme la page d'accueil de votre projet.
  • Scene Edit : c'est un éditeur de scéne. Comme Wintermute n'est pas encore complétement un moteur 3D, vous devrait créez différentes images ( avec un programme de dessin ou un programme de modélisation 3D ). Lorsque le joueur arrive à la limite de l'image, vous changez de scéne, donc d'image. Wintermute supporte le "scrolling", c'est à dire que si l'image est plus grande que votre résolution d'écran, le moteur recadrera l'image en fonction de la position du joueur ( par exemple ).
  • Sprite Edit : outil aidant à la création de "sprites" animés.
  • String Table Manager : outil, qui va vous permettre de localiser votre jeu, plus clairement, à le traduire dans d'autres langues comme le Japonais, l'Arabe ou le Russe, pour ne citer que les moins communs. Cet outil est vraiment très bien, car il est capable d'extraire les dialogues que vous aurez écrit dans les scripts, afin que vous puissiez les traduire plus aisément.
  • Debugging Console : c'est un débogueur, c'est lui qui va vous aider à trouver les erreurs que vous pourriez avoir faites dans vos scripts.
  • Templates for new game items and demo projects : ce sont des modéles de jeux, qui permettent entres autres d'illustrer les capacités du moteur.

Bien que ces outils soient primordiaux, le "scripting" l'est tout autant. C'est là que toute la logique de votre jeu réside. Le moteur Wintermute, n'est pas un outil, vous permettant de créer un jeu de A à Z en cliquant sur des boutons, et c'est ce qui le rend flexible. L'avantage, est que vous n'êtes pas, de ce fait, limité à un concept, vous pouvez créer votre concept.

Avant de nous plonger dans les entrailles du moteur, j'aimerai parler un peu plus de la façon de développer un jeu en général. En effet, il y a beaucoup de façons d'appréhender ce processus, et tous se valent plus ou moins, je vous donne juste quelques éléments de réflexion, c'est à prendre ou à laisser. Ces conseils s'adressent surtout aux personnes, ne savant pas trop par où commencer, ou tout simplement à celles qui voudraient savoir comment d'autres font.

Voici quelques questions que vous devriez vous posez avant de commencer :

  • A quelle résolution mon jeu va t-il tourner ?
  • Est-ce que mon jeu affichera des acteurs ?
    • Dans ce cas, vont-ils être en 3D, ou en 2D ?
    • Est-ce que le joueur pourra changer de protagonistes durant le jeu ?
      • Si tel est le cas, auront-ils chacun un inventaire ou un inventaire en commun ?
  • Est-ce que mon jeu utilisera une interface classique, de type "point&click" ( souris ) ?
    • Si non, utilisera t-il des contrôles directs ( clavier, manette ) ?
  • Quelle sera la durée de vie de mon jeu ( en terme de difficultés, de taille du monde ) ?
  • Ai-je tout le matériel nécessaires pour commencer mon jeu ?

Ces questions semblent sommaires, mais il est important de pouvoir y répondre avant de commencer. La clé du succés se situe, en partie, dans cette approche. C'est très facile d'avoir une idée, ça peut même être une super, ultra, giga cool idée ( avec une cerise dessus ), mais le chemin à parcourir entre une simple idée, et un jeu complet, peut être semé d'embûches et de désillusions.

La morale, dans tout cela, c'est que bien avant de commencer à développer, il y a un énorme travail à faire.
Et ce travail, est indispensable, pour mener à bien un projet sérieux. Avant le développement, l'histoire devrait être écrite(pendant, vous n'aurez plus le temps), les énigmes devraient être préalablement conçues(ce serait embêtant, en effet, d'arriver à la fin du développement, et de se rendre compte qu'elles ne comportent aucun challenge), vous devriez aussi écrire ou tout au moins ébaucher les dialogues, définir les personnages (leurs caractères , leurs allures, etc…), réfléchir sur les sons, la musique, les décors, etc…
Tout cela, devrait être archivé dans ce que l'on appelle un "cahier des charges", c'est dans ce document que vous regrouperez toutes les idées à propos du jeu. Ça ne veut pas dire que tout ce qui est dans ce cahier devra être dans le jeu, il faudra certainement trier, mais c'est un outil essentiel pour tout développeur de jeu qui se respecte.

Trêve de bavardage, vous avez certainement envie de commencer. Donc, allons-y ;-).

Commençons par regarder l'architecture générale d'un jeu fait avec le moteur Wintermute. Je vais vous donner un bref aperçu, pour que vous puissiez mieux comprendre le concept.

Diagram

Comme vous pouvez le voir, on peut diviser les fonctions en deux parties : les fonctions globales (le coeur du moteur) et les fonctions plus spécifiques (la logique de votre jeu).

Dans les prochains chapitres, nous allons approfondir chaque partie de ce diagramme. Avant, d'expliquer chaque outil, j'aimerai expliquer quelques termes utilisés dans ce diagramme.

  • Script : c'est un fichier texte contenant les lignes de programme. Ce sera expliqué plus tard, dans le chapitre sur le "scripting".
  • Actor : c'est un personnage en 2D ou en 3D, qui représente soit le personnage principal, ou les personnages secondaires. Il pourront ou pas, marcher, parler, posséder des objets. A moins que vous décidiez de ne pas en utiliser dans votre jeu(Myst, Darkfall, Barrow Hill, Shivers etc…), les acteurs vont vous tenir occupés un bon petit moment.
  • Inventory : c'est un espace de rangement, pour entreposer les éléments que le joueur aura acquis durant le jeu.
  • Attributes, methods, objects, variables : ce sera expliqué en détail, dans le chapitre dédié au "scripting".
  • Daemon : dans Wintermute, ce n'est pas un monstre tapit dans les profondeurs de la terre, mais plutôt un morceau de code, disons plutôt une fonction, qui tourne en arrière-plan et qui éxécute des tâches importantes. Par exemple, lorsque votre pointeur de souris, se situe sur un objet particulier dans une scéne, la fonction affichera une fenêtre décrivant l'objet. C'est une fonction globale, car elle est active dans toutes les scénes, donc durant tout le jeu. D'autres fonctions du même type, pourraient être locales, et n'être actives que dans une scéne en particulier. Par exemple, vous rentrez dans une scéne sous l'eau, votre personnage ne peut pas rester éternellement sous l'eau, un minuteur est alors lancé, si vous ne sortez pas de l'eau avant que le minuteur soit à zéro vous vous noyez. C'est une fonction locale.
  • String table : C'est un fichier texte, contenant des clés et des valeurs, les clés sont par exemple des chiffres, et les valeurs sont des phrases (dialogue), ainsi chaque clé contient sa phrase, et on peut facilement identifier une phrase par sa clé. En modifiant ce fichier, vous pouvez traduire votre jeu dans une autre langue.
  • Entities and Regions : Ce sera expliqué dans le chapitre consacré aux scénes.

Avant de commencer, avec les outils, nous allons préparer un nouveau projet.

⇒ Allez dans le répertoire où se trouve Wintermute, et recherchez le fichier "projects". Dans ce fichier, copiez le fichier "wme_demo", et changez son nom comme par exemple : "tutoriel". Ce sera, notre répertoire de travail. Si vous rentrez dans le fichier que vous venez de créer, vous verrez un fichier appelé wme_demo.wpr.
C'est un fichier de projet Wintermute et si Wintermute est bien installé en double-cliquant sur ce fichier, Wintermute devrait se lancer et afficher le Project Manager, que nous allons décrire dans le prochain chapitre.

Up

 
fr/wmebook/ch1.txt · Last modified: 2010/02/22 15:36 by rens
Recent changes RSS feed Creative Commons License Driven by DokuWiki