Un job comme les autres

Posted by Etienne Gurrera on vendredi fév 5, 2010 Under Design

Une histoire de TURN partie 2

« Un job comme les autres », c’est justement ce à quoi rêvait Camila à ce moment précis.

Dissimulée derrière un container, elle épiait une conversation entre deux dockers. Son tailleur strict aurait presque pu la faire passer pour une employée de bureau classique, si ce n’était la vieille gabardine délavée passée par-dessus.
Read More

ADD COMMENTS »

L’histoire commence…

Posted by Etienne Gurrera on mardi fév 2, 2010 Under Design

Une histoire de TURN partie 1

Sequence02

Camila m’avait pourtant dit que cette fois-ci c’était une mission peinard. J’aurais du écouter ce que me disait ma mère à l’époque, ne jamais faire confiance à ce que prononce une bouche avec du rouge à lèvres… Et cette pluie qui ne cesse de tomber, je dois ressembler à un vieux dogue détrempé.

Kurt jeta un regard alentour en maugréant. Sa grande silhouette dégingandée recroquevillée sous le porche d’un vieux restaurant thaï laissait échapper comme un voile de vapeur. Dans la lumière diffuse et crasseuse du vieux réverbère on aurait dit un fantôme attendant impatiemment que passe l’orage pour revenir hanter les rues de la vieille ville.
Read More

1 COMMENT »

Entretien avec un chaman

Posted by Etienne Gurrera on vendredi jan 29, 2010 Under Design

Baigné de sueur et sursautant au moindre cri d’animal sauvage, je m’avançais craintivement au milieu de cette jungle humide à la recherche des autochtones étranges qui vivaient ici. On m’avait conseillé la prudence, mais je devais absolument trouver quelque chose d’intéressant à étudier si je voulais garder mon job.

Manuel_Characters_03

Read More

1 COMMENT »

Lumière sur David Lichtle

Posted by Etienne Gurrera on mercredi jan 27, 2010 Under Visual

Air sournois et démarche narquoise, David Lichtle est le diable incarné. J’en veux pour preuve ses cheveux rouges, qu’il cache parfois sous une casquette pour éviter le bûcher. Il est le compère inséparable de Maxime Praud, mais on ne sait toujours pas lequel mène l’autre, ou s’ils sont complices dans leur malfaisance.

DavidJ’ai une hypothèse à ce sujet, David contrôlerait Maxime par l’intermédiaire de poils roux qu’il aurait implanté dans sa barbe. Mais d’autres soutiennent que Maxime est le cerveau du duo… cela me parait peu probable, au vu de leurs actes… je veux dire le fait qu’ils disposent d’un cerveau… hum…

Et pourtant ils ont réussi à faire preuve d’une ingéniosité sans bornes quand il s’est agit de concocter à Kurt et Camila des épreuves toujours plus difficiles. J’ai pu jeter un coup d’œil à leurs plans machiavéliques, et je peux vous dire que ça fait vraiment froid dans le dos.

Il va falloir une sacrée dose d’esprit à nos deux héros pour arriver à déjouer les pièges tortueux qu’ils ont mis en place. Beaucoup de malheureux s’y sont essayés et n’en sont pas sortis en un seul morceau, et ceux qui sont sortis entiers ne s’en sont pas remis…

3 COMMENTS »

Interview d’un yéti

Posted by Isabelle Menegatti on vendredi jan 22, 2010 Under Design

MiniYeti- Vous yéti ? Vous content ?

- Ouais, moi content. Je tiens à profiter de ce temps de parole pour pousser un coup de gueule !

- Euh…

- Ce n’est pas parce que l’on a des poils, que l’on est forcément idiot.

- Vous pas idiot… Read More

1 COMMENT »

Lumière sur Isabelle Menegatti

Posted by Etienne Gurrera on mardi jan 19, 2010 Under Design

Isabelle

Rapport d’investigation n°23666 :

J’écris ces quelques lignes avec ce qu’il me reste de sang… Je ne sais même pas vraiment ce qui me pousse à le faire, sûrement un zeste d’espoir pour les générations futures. Je reviens de ma mission chez le sujet IM23. Et la première chose que je dois dire est qu’on avait raison depuis le début…

L’individu, de son vrai nom Isabelle Menegatti, n’a pourtant pas l’aspect louche. Ce n’est qu’une fois le torse labouré par ses chats de combat dressés que je me suis rendu compte de mon erreur. Elle est derrière tout ça. Elle est le chef. Elle est le mal…

J’aurais du m’en douter, son air de petite vieille et les cadavres d’animaux qu’elle s’enroule en trophée autour du coup. Peut-être que d’ici peu elle aura le mien en écharpe. Comment peut-on être aussi cruel ?

Elle a tout commandité, je le sais à présent. La vieille dame aux chats n’était pas celle que l’on croyait. En fait il s’agit du cerveau de la bande, parce qu’effectivement il y en a un, même si on en doutait au début en les voyant agir. Elle est responsable des tourments de Kurt et Camila, elle nous a induit en erreur, elle nous fait tourner en bourrique, elle se joue de nous.

Pardonnez-moi, je n’ai pas été assez fort pour elle… Mais je doute que quelqu’un le soit un jour. Bonne chance…

2 COMMENTS »

Affiche de TURN, façon « Avatar »

Posted by Jean-Michel Stenger on vendredi jan 15, 2010 Under Visual

Affiche-Avatar-FR

Notre héros a passé ses vacances de Noël sur Pandora, la planète des Na’vi et voilà un petit souvenir de son séjour dans le monde d’Avatar.

2 COMMENTS »

Réécriture du moteur de gameplay de TURN (3)

Posted by Elisée Maurer on mardi jan 12, 2010 Under Code

Le moteur de gameplay d’un jeu est un morceau de code qui s’occupe de reproduire les mécaniques du jeu telles que définies par le game design. La mise à jour 1.1 de TURN Episode 1 introduit un nouveau moteur de gameplay, réécrit depuis zéro.

Dans ce troisième billet (vous pouvez lire ici le premier et le second), vous découvrirez pyTurn, notre outil de test de niveau, et je vous parlerai de l’intégration finale du moteur sur iPhone et Nintendo DSi.

Réécriture du moteur en 2 semaines

Une fois les règles bien définies, il restait à réécrire le moteur de gameplay du jeu. J’ai décidé de développer une version PC du moteur en utilisant le langage de programmation Python et la librairie PySFML, qui permettent de construire des prototypes en peu de temps.  J’espérai mettre sur pied les nouvelles règles rapidement et fournir ainsi aux level designers un outil pour qu’ils puissent tester et adapter leurs niveaux.

Cela c’est révélé être une bonne idée. Une fois que j’en avais fini avec les mécaniques essentielles de gameplay, grâce à la rapidité de développement de Python / PySFML, j’ai pu implémenté un ensemble de fonctionnalités d’aide au test comme l’historique des mouvements effectués, le changement de thème à la volée, et la sauvegarde de replays d’un niveau. Cette dernière fonctionnalité nous a permis d’établir une preuve que chaque niveau du jeu est réellement finissable. Chaque fois qu’une correction fût nécessaire sur le moteur, il nous a suffit de vérifier que les différents replays pré-enregistrés pour chaque niveau donnaient toujours le résultat escompté.

Portage sur iPhone et DSi

Il n’est pas possible (principalement pour des raisons de performance) d’utiliser directement le moteur de gameplay écrit en Python sur la console. Il a donc fallu réécrire le moteur en C++, un langage qui ne permet pas un développement aussi rapide que Python mais permet de mieux contrôler les performances.

libturn-separation-fr

Afin de ne pas dupliquer les efforts, j’ai profité de cette réécriture pour séparer complètement la logique de jeu (les règles) de tout ce qui est spécifique à un type de console particulier (affichage, son, intéraction utilisateur…). La réécriture du moteur en a été un peu plus longue, mais partager le même code sur les deux consoles permet de limiter le nombre de bugs à corriger, et de capitaliser sur le travail déjà accompli.

2 COMMENTS »

La parole aux joueurs – Duduffe

Posted by Jessica Tartaglia on vendredi jan 8, 2010 Under Communication

DuduffeLa deuxième personne à avoir eu la chance de gagner TURN Episode 1 est Duduffe. En tant qu’accro aux jeux vidéo (passion qu’elle partage sur le blog qu’elle tient avec son compagnon), Duduffe nous donne son avis sur les aventures de Kurt et Camila.

« TURN épisode 1 est un jeu original. Les graphismes en général sont plutôt beaux et ceux des personnages sont marrants. »

Entre les artworks, les design, les couleurs et les animations, ce sont pas moins de six personnes qui ont travaillé sur TURN.

« La bande son va bien avec le jeu. Les bruitages sont un peu répétitifs mais c’est sûrement parce que je passe mon temps à me faire écraser par les caisses ! :)  »

Nous avons choisi de ne pas surcharger la bande son afin qu’elle soit discrète et laisse le joueur se concentrer sur le gameplay tout en illustrant le jeu. Pour le fait de se faire écraser, nous sommes tous passés par là. ;-)

« La difficulté des casse-têtes est grandissante, ça permet de prendre en main doucement le jeu. Il faut retourner la salle dans tous les sens pour éviter les objets/ennemis et pouvoir récupérer la clé pour changer de salle. C’est original et ça donne un petit plus au jeu. Les touches sont bien placées mais j’aurais préféré pouvoir changer l’orientation de l’iPhone pour tourner la salle plutôt que d’utiliser des boutons. »
Utiliser l’écran tactile de l’iPhone pour diriger Kurt ou Camila était un choix. TURN étant un jeu très réactif, il était difficile d’utiliser la rotation que permet l’iPhone. En effet, l’accéléromètre de la plateforme entraine un effet de latence et jouer à TURN en tournant l’iPhone se serait révéler rapidement fatiguant.
Nous laissons tout de même le choix au joueur en lui permettant d’utiliser soit les touches, soit de glisser les personnages et de faire tourner les salles grâce à un mouvement du doigt.
« J’ai trouvé le trouvé le jeu très addictif, dû moins si on aime les casse-têtes. Sinon, on a sûrement tendance à démissionner rapidement si on ne trouve pas rapidement la solution. »
La difficulté de TURN réside dans la patience qu’il faut effectivement avoir pour résoudre certaines salles. Si la solution apparait parfois comme évidente, à d’autres moments il va vous falloir persévérer et plusieurs tentatives vous seront nécessaires. L’important est de ne pas baisser les bras.
« J’ai joué une bonne heure et je ne l’ai pas encore fini. Il semble y avoir beaucoup de salles à débloquer et donc y avoir une bonne durée de vie. »
La durée de vie moyenne de TURN est de 20 heures, ce qui est en effet supérieur à la plupart des jeux iPhone.

Merci à Duduffe pour cette critique !
ADD COMMENTS »

Réécriture du moteur de gameplay de TURN (2)

Posted by Elisée Maurer on mardi jan 5, 2010 Under Code

Le moteur de gameplay d’un jeu est un morceau de code qui s’occupe de reproduire les mécaniques du jeu telles que définies par le game design. La mise à jour 1.1 de TURN Episode 1 introduit un nouveau moteur de gameplay, réécrit depuis zéro.

Dans ce deuxième billet (lire le premier), je vais raconter comment nous avons déterminé le nouveau fonctionnement du jeu.

Se mettre d’accord sur le comportement du jeu

Après avoir passé trop de temps à tenter de faire fonctionner correctement l’ancien moteur, ayant réalisé tous les problèmes qui restaient à résoudre, cinq d’entre nous nous sommes enfermés dans une salle pour déterminer une bonne fois pour toute chaque cas problématique et y apporter une réponse.

Quelques cas pas évidents

Quelques cas pas évidents

Nous avons commencé par énumérer sur un tableau blanc quelques cas que nous avions rencontrés en jouant et dont le comportement semblait étrange voire faux. Et devinez quoi : c’est à ce moment qu’on a réalisé qu’on n’était pas d’accord sur quel comportement était le bon. TURN est un jeu de type casse-tête, pas une simulation physique, un niveau est une grille dans laquelle se trouve des objets et on ne peut pas se retrouver avec un objet arrêté entre deux cases. Parfois, comme je le disais dans le précédent billet, il faut simplement prendre une décision sur le comportement du jeu, il n’y a pas toujours une solution supérieure.

Au fur et à mesure que nous avancions, nous éditions une page de wiki projetée sur le mur avec les décisions prises.

Les nouvelles règles

Nous sommes arrivés à la conclusion que le jeu devait être découpé en tours successifs au cours desquels chaque objet pouvait se déplacer au maximum d’une case (dans le jeu final, chacun de ces tours dure 1/6ème de seconde). Voici un extrait du déroulement d’un tour de jeu :

  • Gravité : En partant du bas de la salle (en fonction de la gravité), chaque objet qui n’est pas supporté par un élément solide à l’arrêt descend d’une case
  • Artefact : Si Kurt (ou Camila) se trouve sur l’artefact de fin de niveau, le niveau est gagné immédiatement
  • Écrasement : Si un objet non solide vivant (Kurt / Camila, ennemi) se trouve à présent sur une même case qu’un élément solide, il meurt et est retiré de la salle
  • Atterrissage : géré du bas vers le haut
    • Caisse : Si une caisse vient de chuter d’une case et se trouve à présent sur un objet solide à l’arrêt, elle lui inflige un choc et passe en état arrêt si l’objet sur lequel elle repose existe encore.
    • Caisse cassable : Si une caisse cassable vient de chuter d’une case et se trouve à présent sur un objet solide à l’arrêt, elle s’inflige un choc et en inflige un à l’autre. Elle passe en état arrêt si l’objet sur lequel elle repose existe encore.
    • Rocher : Si un rocher vient de chuter d’une case et se trouve à présent sur un objet solide à l’arrêt, il lui inflige un choc, et si l’objet survit, le rocher commence à rouler

Il y a quelques autres étapes mais ce serait trop long de tout détailler ici.

L'équipe travaillant d'arrache-pied sur un cas problématique

L'équipe travaillant d'arrache-pied sur un cas problématique

Une fois que nous avions couvert un échantillon suffisamment large de situations et que nous avions mis en place des règles simples (mais précises), nous nous sommes mis autour d’une table, avons coupé plusieurs petites cartes pour chaque type d’objet du jeu, et nous avons commencé à tester nos règles.

Quand nous avons commencé la réunion, je me demandais vraiment si nous arriverions à détailler un comportement cohérent pour les rochers qui roulent. Et nous avons réussi.  La prochaine fois, on fera attention à faire ce genre de réunions avant de commencer à programmer le jeu. On aurait pu économiser pas mal de temps et de sueur !

3 COMMENTS »