Jour 164- l’aventure se termine…ou presque

Bonjour à tous

Nous avons la semaine dernière présenté le fruit de 6 mois de travail devant notre jury de fin d’année. Caravan a fait l’objet de retours globalement positifs. Les professionnels présents ont témoigné un certain intérêt pour le projet, et nous ont encouragés à développer plus certains aspects du jeu.

L’aventure n’aura pas été de tout repos, mais nous sommes contents d’avoir travaillé ensemble. Nos études à l’ENJMIN étant terminées, nous allons chacun prendre des routes différentes, mais nous essaierons autant que possible de faire vivre le projet et le site.

Nous vous laissons apprécier le trailer du jeu, et espérons pouvoir vous présenter bientôt une vidéo de gameplay commentée.

Publicités

Jours 121 – L’interface graphique, ou de pourquoi les programmeurs n’aiment pas le GUI

Aujourd’hui, nous allons vous parler de l’interface graphique, aussi connu sous le doux nom de GUI, mais ne vous faites pas avoir par ce joli sigle, c’est un piège.
trappe Mais comme cela risquerait de vous intéresser, on va en parler du point de vue du programmeur.

Faire une interface graphique, ça peut sembler simple.

Oh, un bouton, ça marche, j'ai fini.

Oh, un bouton, ça marche, j’ai fini.

Le problème, c’est que ça ne se passe jamais comme ça. L’interface graphique doit à la fois être :

  • fonctionnelle
  • lisible
  • jolie

La lisibilité et la beauté, déjà, c’est compliqué de rendre ça compatible (déjà que pour un programmeur, l’un des deux c’est dur…). Le premier problème avec l’interface, c’est que ton équipe discute, puis ton graphiste te dit « Tiens, les assets de l’interface, je t’ai fait ça en 1920×1080. » Mais le joueur, lui, il n’est pas forcément en 1920×1080. Il peut être en 1920×1200, ce n’est pas le même ratio d’écran, du coup mon élément qui était à 1000 pixels du haut de l’écran, il faut toujours qu’il soit à 1000 ou plutôt à 1120 ? Et doit-il toujours faire la même hauteur ? Il peut être en 1600×900, c’est plus petit. Je garde la même taille ou je rapetisse ? Il peut même jouer en 800×600, et dans ce cas tout le monde pleure. Selon les décisions prises, on obtiendra certains ou tous les problèmes suivants selon la résolution d’écran du joueur :

Hey, pourquoi l'interface prend la moitié de l'écran quand on jour en petit ? - Les game designers qui hurlent

Hey, pourquoi l’interface prend la moitié de l’écran quand on joue en petit ?Les game designers qui hurlent

Hey, pourquoi on peut rien lire quand on joue en grand ? - L'ergonome qui hurle

Hey, pourquoi on peut rien lire quand on joue en grand ?L’ergonome qui hurle

Hey, pourquoi mes assets sont tout pixelisés quand on joue en grand ? - Les graphistes qui hurlent

Hey, pourquoi mes assets sont tout pixelisés quand on joue en grand ?Les graphistes qui hurlent

Au final, sur Caravan nous avons choisi de toujours garder le même ratio, et de redimensionner pour que les images utilisent le même pourcentage d’écran quelle que soit la résolution. Les graphistes ayant travaillé en 1920×1080, les effets de pixelisation très visibles ne devraient se produire que si quelqu’un joue dans une résolution supérieure à 1920×1080, ce qui reste de nos jours assez rare. Le redimensionnement à l’inférieur peut aussi causer quelques problèmes graphiques, mais nous estimons qu’il vaut mieux ces quelques désagréments plutôt que les autres problèmes présentés.

Une fois le code permettant de gérer toutes ces résolutions terminé, il reste à coder l’interface graphique proprement dite. On commence simplement, on fait des boutons. On clique, ça fait une action. Ah, il faut aussi que quand on clique sur un bouton, ça ne fasse pas l’action dans la vue 3D, par exemple sélectionner le personnage situé en dessous du bouton. Logique, me direz-vous. Mais il faut relier le code de l’interface graphique à celui de la vue 3D, et à ce stade du projet, si on n’avait pas pensé avant à le préparer, c’est soit compliqué, soit pas joli quand on regarde le code.

Ce code est moche.

Ce code est moche.

Ok, étape suivante. Quand on clique sur un bouton, ça doit ouvrir un sous-menu. Ah, et ça doit fermer les autres sous-menus. Ce serait bien aussi s’il y avait une transition de 2 secondes à la fermeture du menu, sauf, bien sûr, si on ouvre un autre menu en même temps. D’ailleurs, quand on est sur telle transition, il faudrait bloquer tel bouton, mais pas tel autre (Note : je ne suis pas certain d’être tout à fait honnête sur la véracité de ces demandes, mais l’intégration de l’interface a laissé des séquelles). Argh.

Au final, ce sont des dizaines de petites choses à ajouter ou modifier en permanence, pas très dures, pas très intéressantes, mais qui ne cessent d’arriver, comme les poules dans Zelda une fois qu’on en a frappé une. C’est pour ça que, comme le joueur de Zelda ne frappe plus de poules après avoir fait cette erreur une fois, le programmeur ne fera pas de GUI une seconde fois, ou alors la première fois a définitivement altéré sa santé mentale, ce qui est malheureusement trop fréquent (il existerait même des Senior Programmeur GUI, c’est dire).
Car tout cela peut presque sembler marrant, jusqu’au jour où votre équipe arrive avec L’IDÉE DU SIÈCLE !

Si tu faisais du GUI, tu aurais envie de pleurer.

Si tu devais implémenter ce menu, tu aurais envie de pleurer.

Bon, encore, quand on clique sur des boutons carrés, il y a des trucs tout faits, c’est facile. Mais là, il faut placer des morceaux de cercle au bon endroit, détecter manuellement si la souris est dessus. Sachant que ce cercle a en plus des trous. Bon, allez, on regarde la distance par rapport au cercle, on calcule l’angle, c’est compliqué parce qu’on se trompe toujours dans les formules, mais ça marche. En théorie. Parce qu’en réalité, on oublie un élément : le graphiste. Le graphiste ne sait pas faire de maths (Si si, essayez chez vous, prenez un graphiste, donnez-lui une calculatrice, il essayera de faire des dessins avec). Vos arcs de cercle pourraient donc ne pas faire la même taille, voire ne pas avoir le même angle au début et à la fin. Parfois ils le feront même exprès, parce que ça fait « plus joli ». Et là vous n’avez plus qu’à compter manuellement les pixels sur l’image pour tenter d’avoir une zone de détection de la souris à peu près cohérente.

Avec ce menu radial, on ajoute aussi plein de détails amusants : quand on clique sur le cercle, il n’y a pas d’effet dans la vue 3D. Quand on clique à l’intérieur du cercle, il ne se passe rien. Sauf si on clique sur le personnage, auquel cas si on zoom dessus. Ou si on clique sur un autre personnage ou une caravane à l’intérieur du cercle, dans ce cas ça la sélectionne. Oh, et à l’extérieur du cercle par contre, il faut agir normalement. Ça tombe bien, ça fait plein de cas particuliers, et on adore mettre des if partout.

Les if, c'est ma passion.

Les if, c’est ma passion.

Bon, tout est intégré, c’est validé, c’est bon. Oui. Sauf que non. Il vous reste un dernier problème. Les graphistes. Les graphistes sont des éternels insatisfaits (la preuve, ils n’ont pas voulu garder votre magnifique placeholder).

Franchement, je vois pas pourquoi on s'embête avec des graphistes, c'était très bien comme ça

Franchement, je vois pas pourquoi on s’embête avec des graphistes, c’était très bien comme ça

Vous allez donc voir les graphistes arriver, avec juste une toute petite demande. Ce serait quand même beaucoup plus joli si on mettait 7% d’alpha en plus sur ce bouton, et qu’on décalait celui-ci de 3,12 pixels vers le haut. Et il y aura énormément d’aller-retour. Toute votre vie. Après votre mort. Ne faites pas de GUI, ou vous serez damné pour l’éternité.

Et le pire, c’est que c’est l’une des choses les plus visibles pour le joueur, et dont il se servira pour dire s’il trouve le jeu joli et bien. C’est UTILE. L’horreur.

interface

Jour 103- Dur Voyage…

Après un mois sans nouvelles, nous redonnons signe de vie : Caravan se porte bien.

L’aventure se finissant dans moins de 30 jours, nous travaillons dur pour finaliser notre prototype du jeu, ce qui explique notre manque de nouvelles. Rassurez vous tout avance bien. Mais il nous reste encore beaucoup de points à améliorer pour être à la hauteur de nos ambitions.

Nous vous laissons apprécier ces quelques images tirées du jeu, et nous vous en dirons plus très bientôt.

L’équipe Caravan

0& zer

Jour 87- Un peu de 3D

Nous vous avons beaucoup parlé dans les précédents articles du travail de concept que nous avons fait pour Caravan. Mais les premiers prototypes 3D étant déjà en test, nous allons vous présenter plus précisément la production in-game, c’est à dire destinée au jeu.

Les personnages

Nous sommes parti de 5 gabarits, que nous avons décliné jusqu’à obtenir 10 hommes, 3 femmes, 2 vieillards et 3 enfants. Nous faisons surtout varier les costumes et les accessoires pour que le joueur soit capable de les reconnaître : savoir rapidement qui est qui et qui fait quoi est très important dans Caravan.

AO 3D-population03

Les caravanes

Il en va de même pour les caravanes constituant le convoi. Les game designers ayant défini les fonctions de chaque bâtiment, nous devions les rendre clairement identifiables.Le joueur pourra faire évoluer ses caravanes lors du jeu. Il fallait donc modéliser 2 états pour chacun d’entre eux. Nous avons : 2 habitations, 1 citerne d’eau, une tour de guet, une caravane de stockage, un poste de défense en cas d’attaques.

groupes_caravan caravan_texture1

Chaque élément est un module flottant, inspiré par quelques designs d’habitations insolites que nous avons découvert durant nos recherches.

10310

Nous travaillons actuellement sur la texture du terrain, la modélisation des décors et l’ambiance générale du jeu.

Jour 71 – Point GameDesign

Bonjour,

Quelques jours avant les vacances pour Caravan. Bientôt la fin d’année 2012 et notre dernière semaine a été plutôt mouvementée. Le groupe a dû passer une de ses premières épreuves importantes : La soutenance devant jury. Le but était de présenter le jeu et de profiter des 3 promotions d’étudiants présentes, ainsi que des professionnels venus parfois de loin pour avoir des retours et des conseils sur le projet. Cela a été très utile pour le jeu et nous utilisons cette dernière semaine de travail pour préparer les sprints du début de l’année 2013.

Aujourd’hui, je profite du dernier article avant la fin du monde pour vous présenter ce que sera Caravan. Accrochez-vous, on ne laisse personne derrière, ou presque….

Cara…quoi?

Comme vous l’aurez peut être compris, Caravan est un jeu de gestion centré sur l’humain où le joueur dirige un convoi de survivants à travers un milieu hostile. Le manque de ressources et les attaques récurrentes des pillards de la région forceront le joueur à mener son équipage à travers le monde afin d’atteindre un lieu sûr.

Sans titre

Intention

L’intention que nous avons souhaité développer dans Caravan est de penser un gameplay centré sur l’humain. Au cours de l’aventure le joueur sera amené à faire des choix difficiles, parfois éthiquement contestables. Aucun de ces choix n’est manichéens. Il n’y a pas de bonnes ou de mauvaises décisions, tout dépend des situations auxquelles le joueur sera confronté. A lui ensuite de choisir et de mesurer les risques afin de résoudre une crise.

Le deuxième élément sur lequel nous avons voulu travailler est l’intelligence artificielle de l’équipage. Lorsque le joueur prend une décision, les membres du convoi seront à même de réagir en fonction.

Avec ce procédé, nous cherchons à jouer sur l’empathie du joueur à l’égard des personnages. Certains membres du convoi seront énervants mais indispensables, d’autres moins utiles mais beaucoup plus sympathiques. Il faudra, autant que faire se peut, gérer ces personnalités.

CaraWD

Rogue-Like

Mon premier article présentait le genre du jeu.J’ y évoquais déjà les inspirations venant du modèle Rogue-Like (Binding of isaac, Faster Than Light, Spelunky). Des codes bien spécifiques à ces jeux, dont nous reprenons quelques aspects.

Dans Caravan, lorsque le joueur commence ou recommence une partie il y a une génération aléatoire des terrains, ressources, évènements, mais aussi de son propre équipage. Pour ce qui est de l’exploration, le joueur pourra choisir entre plusieurs chemins proposant chacun un parcours plus ou moins dangereux et/ou abondant en ressources. Il faut savoir également que la mort dans Caravan est définitive. Lorsque le joueur perd son équipage ou quitte le jeu, il devra recommencer depuis le début une nouvelle partie.

Balance Gameplay

Dans Caravan, le joueur sera amené à jongler avec deux grandes valeurs. L’état de son convoi et la satisfaction de son équipage.

D’un côté il devra faire attention à ce que son convoi soit physiquement capable d’avancer. Pour cela il devra faire entretenir l’état physique de sa caravane mais aussi la santé et la fatigue des membres de son équipage.

D’un autre côté il devra faire attention à ce que son équipe soit suffisamment satisfaite pour avancer. Chaque personnage a des besoins, des envies, des motivations. Ils peuvent avoir des liens entre eux (comme par exemple un père et son fils) ou en créer au fur et à mesure, que cela soit de façon positive ou négative. Bien connaître son équipage est important car négliger les besoins de chacun et c’est une partie du convoi qui pourra se rebeller et se mettre à refuser des ordres du joueurs, voir même faire des actions imprévues et spontanées. Un père de famille pourrait par exemple être amené à voler de la nourriture pour ses enfants.

Crises

Caravan mettra le joueur devant différentes crises qui sont classées en deux catégories, les crises externes et internes.

Du côté externe la menace se fera sentir avec des attaques de pillards, prédateurs, des évènements météorologiques comme des fortes pluies ou des tornades.

D’un point de vue interne les crises peuvent se déclencher, et son propre équipage peut créer des difficultés au joueur. Du vol à la bagarre, les personnages peuvent aller jusqu’à s’entretuer si les tensions sont trop fortes. Ils peuvent se rebeller contre les ordres du joueur et même en cas de famine se tourner vers le mode de consommation le moins cher… le cannibalisme. Après ce sera au joueur de décider s’il accepte ou pas ce mode de survie quelque peu contestable.

Action

Afin de résoudre ces crises le joueur devra choisir quelles actions sont adéquates à la situation. Il pourra gérer les déplacements de son convoi en choisissant les routes et donc les risques qu’il souhaite faire prendre à son équipage ; gérer les différentes ressources, à savoir l’eau, la nourriture et le matériel qui servira à réparer les différentes caravanes ; Choisir à qui affecter quelles tâches est important selon les capacités des individus. Et en cas de grande crise savoir faire des choix difficiles comme le fait d’abandonner ou non un passager.

La route est difficile, le voyage encore long

Il nous reste beaucoup de travail pour mener la caravane au bout du parcours. Nous allons maintenant travailler sur les retours que l’on a eu et tenter de rendre l’expérience de jeu la plus agréable possible. N’hésitez pas à nous faire part de vos remarques sur le jeu.
Bonne fin du monde à tous et n’oubliez pas qu’après cette dernière, l’idéal sera de se déplacer en caravane!

CaraNoel