archive

Programmation

Les brouillons ne sont pas forcément sur papier.

Il y a aussi des « brouillons de code » : des animations qu’on laisse tourner dans un coin pour les réutiliser ailleurs, un bug qui apparait mais qu’on laisse tourner car il sera comblé par un élément graphique en cours de réalisation…etc…

Si bien que les jeux en développement sont des brouillons (des versions alpha comme ils disent) où la plupart des défaillances sont en fait contrôlées et voulues.

Il est possible, je le constaterai peut-être à la fin de ce projet, que la plupart des bugs ne surgissent pas du néant comme on a tendance à vouloir le croire (où du moins de l’entrechoc des configurations possibles et non testées) mais du travail non fini et « oublié ».

Mais le jeu sera beau et amusant, faites nous confiance !

Bon, on avait des portes fermées.
On cliquait dessus et hop le personnage se retrouvait ailleurs.

Maintenant il faut proprement cliquer sur « actionner porte », et on a une magnifique animation d’Hugo qui tend sa main vers la poignée !

Hugo ferme le rideau

ici avec un rideau de fenêtre

Il ne manque plus que le sprite d’ouverture de porte proprement dit, et on est bons !

Nous n’avons pas de station de travail dédiée. Le projet est sauvé en ligne et téléchargé pour intervention, c’est pratique et sûr.

Mais combien « pèse » un point’n’click ?

Pour la première partie, qui comporte une dizaine de tableaux et sans musique :

– 80 Mo pour l’environnement de travail (le jeu non compilé)
– 4 Mo pour le jeu compilé

Étonnant non ? On peut se demander combien de Go doit prendre LA NOIRE qui nécessitait 3 DVD…

 

On distingue dans les décors d’un point’n’click deux types d’éléments interactifs :
les objets et les hotspots.

Les objets sont des éléments interactifs représentés par des calques additionnels sur le décor.
Dans cet exemple, vous avez un décor qui représente un bureau, et on « colle » par dessus l’image
d’une pomme pour l’objet pomme.
L’avantage, c’est qu’on peut dans le jeu se saisir de la pomme, et le symboliser visuellement en retirant cette image.

Les hotspots sont simplement des portions du décor rendues interactives.
Dans cet exemple, étant donné qu’on ne va pas supprimer ou prendre le bureau, il n’y aura pas besoin d’altérer ses propriétés.

Les objets et les hotspots requièrent des ressources différentes, et leur exploitation respective nécessite une gestion particulière, notamment pour les tableaux riches en éléments interactifs.

À noter que le terme hotspot découle directement d’une dénomination arbitraire du créateur du logiciel Adventure Game Studio. Mais ce dernier étant le plus populaire et nous donnant un oeil sur le fonctionnement interne d’un point’n’click, son usage dépasse le cadre de la création sous AGS.

Le code informatique, c’est toujours l’exploration de l’inconnu. À tout moment des bêtes sauvages peuvent vous sauter à la gorge et bien sûr il n’y pas de FAQ sur le sujet.

Hier je me suis échiné à faire disparaître le curseur de la souris pendant les cutscènes. Et j’ai réussi !

Maintenant, petit problème : il ne revient plus…

Etude de perspective

Comme vous pouvez le voir sur cette photo, Quentin et Adrien ont déterminé des zones de perspective pour le décor.

Pour chaque décor on définit une zone « de déambulation » où le personnage peut aller. Celle-ci est ensuite découpée en sous-zones avec différents niveaux d’échelle du sprite : 60% de taille, 70% de taille, etc.

Il n’y a pas vraiment de transition de taille entre les zones, alors l’équilibrage est délicat.

Afin d’éviter une pixellisation en cas de zoom trop grand (voir l’article détaillé de Quentin sur le sujet), le sprite d’Hugo est de base très grand : cela implique plus de ressources systèmes, mais pour l’instant, cela reste fluide même sur des machines anciennes.

Pas mal d’énigmes peuvent se résoudre par le dialogue. Exemple : vous discutez avec un personnage, et celui-ci est amené par vos arguments à vous confier une clé pour avancer.

Croisière pour un Cadavre – Delphine Software – 1991

C’est la mécanique dominante dans le jeu Croisière pour un Cadavre de Delphine Software :
une majorité de dialogues aboutissaient à des indices qui faisaient avancer « l’heure » et donc l’enquête.

Ce qui est intéressant c’est que d’un point de vue du code, l’écriture d’un dialogue se représente exactement comme un labyrinthe disposant d’issues ou de « retours au point de départ ».
Les issues sont des lignes de dialogues finales qui permettent de faire avancer l’histoire, c’est-à-dire en terme de code, qui altèrent des variables.

Les logiciels de création de point’n’click ne veulent pas simplement recréer des jeux qui étaient à la mode dans les années 90, ils veulent également en émuler l’environnement : ainsi, il est encouragé d’utiliser du 640 x 400 pixels de résolution, du VGA, des interfaces qui prennent le tiers de l’écran… pour économiser les ressources.

Nous avons choisi au contraire de les pousser à leur maximum : résolution maximum en 32 millions de couleurs, des sprites animés de base très grands, etc. La bonne nouvelle, c’est que le jeu tient la route en terme de fluidité, même sur une machine très ancienne (la mienne). En revanche, un simple jeu avec 5 pièces pèse déjà 30 Mb…

Passer une porte ou aller d’un écran à un autre est une chose, dans les point’n’click, plus compliquée qu’ailleurs.

Effectivement il faut définir une zone ou une action qui justifie la « téléportation » dans une autre pièce. S’il s’agit d’une porte, c’est l’action ouvrir la porte, mais sinon ce sera le fait de marcher sur une zone.

Ensuite, il faut se téléporter dans un autre écran mais à des coordonnées précises.
En plus, si le lieu de l’écran est étendu, il faut régler la perspective (par exemple le personnage sera plus petit).

Enfin, pour donner plus de dynamisme, il faut donner une animation à l’action :
le personnage se « téléporte » depuis l’endroit de départ jusqu’au nouvel endroit mais on le voit marcher de loin quelques secondes.

Le problème est qu’à ce moment il va piétiner la zone sensible de « retour » — il faudra donc qu’elle soit temporairement désactivée.

Les jeux qui fonctionnent ainsi par « room » (c’est le cas dans les IF mais pas dans les jeux de scrollings comme Mario ou les jeux 3D) ont des systèmes de gestion de « portes » très sophistiquées.
La porte parfois est une pièce en elle même ; c’est un objet aux propriétés très étranges que nous développerons par la suite.