Life Is Strange – Le temps n’a jamais été aussi précieux

Si vous avez aimé le jeu The Walking Dead de Telltale, il y a de grandes chances pour que vous aimiez aussi Life Is Strange.

2015-02-01_00005

Le dernier né de DONTNOD Entertainment et Square Enix s’en inspire en effet beaucoup. Les mécaniques sont similaires, voire franchement pompées sur le modèle de Telltale. Le gameplay est simple : vous découvrez le monde dans lequel vous allez évoluer. Au fil des discussions et des découvertes, vous devrez faire des choix, qui auront une influence plus ou moins importante sur votre avenir et vos relations. Le jeu est découpé en plusieurs épisodes, là aussi à l’instar de The Walking Dead et autres. Rien de très nouveau de ce côté-là, donc; il ne manque à Life Is Strange guère que les QTE, et ils ne manqueront à personne.

Pourtant, il y a quelque-chose de différent. Légèrement différent.

Vous pouvez remonter le temps à volonté.

Une décision de gameplay qui pourrait à première vue sembler discutable : à quoi bon construire un jeu dans lequel je dois faire des choix si de toute façon il me suffit d’appuyer sur un bouton pour remonter dans le temps et changer d’avis ? Et bien, c’est simple : il n’y a pas de « bonne » réponse, de « bonne » décision. Et s’il y en a une, il est trop tard pour remonter dans le temps quand vous vous en rendez compte. Non, plus qu’une mécanique bancale, on a bien là affaire à quelque chose de nouveau – chose qu’il est toujours agréable de rencontrer dans le monde du jeu vidéo. Ce pouvoir vous fait vous sentir puissant, alors que vous ne l’êtes finalement pas tant que ça.

Voilà pour ce qui est du gameplay. Maintenant que les joueurs familiers aux jeux de Telltale savent de quoi je parle (et les autres aussi, je l’espère), on peut rentrer dans le vif du sujet. L’histoire. Je me limiterai à vous résumer le tout début du premier épisode, pour ne rien gâcher.

Vous êtes Max Caulfield, une jeune étudiante en photographie qui est entrée il y a quelques mois à Blackwell Academy, école très réputée de Arcadia Bay. Tout n’est malheureusement pas si rose : comme dans toute école réputée qui se respecte, il a des cons, et puisqu’on est aux USA, il y a même des clubs de cons qui s’unissent dans le seul but de montrer qu’ils sont fiers d’être cons (et riches). Vous avez tout de même des gens sur qui vous pouvez compter, qui deviendront vos amis si vous êtes gentille avec eux.

2015-03-28_00012

L’immersion est totale. Vous pouvez vous déplacer plus ou moins librement quand vous y êtes invité, aller parler aux autres étudiants, et surtout lire. Le monde est rempli d’affiches, d’objets qui ont leur histoire, de photos. Max aime beaucoup la photographie, et vous pourrez vous balader dans Arcadia Bay en cherchant des sujets qui feront de belles photos, des écureuils aux autobus délabrés. Plus vous passez de temps à explorer l’univers, plus vous en apprendrez sur le monde qui vous entoure. Life Is Strange n’est pas un jeu qui se speedrun; il se déguste.

2015-03-28_00001

Bien évidemment, le jeu ne se limite pas à l’exploration. Des événements viennent perturber votre tranquillité, et celle de toute la ville. Vous ne savez pas pourquoi vous avez le pouvoir de remonter le temps, mais une chose est sûre : si vous l’avez, c’est qu’il y a une bonne raison. Vous ferez d’innombrables rencontres, des découvertes choquantes, des amis proches, et aurez probablement envie de rire, de pleurer ou de claquer quelqu’un. Life Is Strange joue avec vos émotions, sans utiliser des techniques faciles et revues, mais subtilement, et vous en redemanderez.

Life Is Strange n’est clairement pas un jeu pour tout le monde. Si votre truc, c’est de jouer à Counter Strike 24/24, vous n’allez pas forcément être attiré par ce genre de jeu. Mais clairement, si vous aimez les jeux d’exploration, et si l’idée de vous balader dans un univers riche et profond dans le corps d’une étudiante en photographie un peu geek et timide vous donne envie de l’essayer, foncez. Vous n’êtes pas obligé d’acheter la saison complète, qui comptera 5 épisodes une fois tous sortis, disponible pour 20€; le premier épisode est disponible pour moins de 5€.

Au fait, rapide disclaimer : cet article n’est pas une critique, ni même une review complète de Life Is Strange. C’est juste l’avis d’un internaute qui a trouvé un de ses jeux préférés, et de loin. Vous êtes donc libre de chercher l’avis de gens plus critiques sur le sujet; mais si vous êtes comme moi, vous adorerez ce jeu.

Life Is Strange sur Steam

API Keolis Open Data : Récupérez les horaires des bus du réseau Keolis en temps réel

J’ai fait une découverte quelque-peut intriguante, il y a quelques temps, en passant au crible l’app officielle du réseau Twisto. Une URL était hard-coded, et pointait vers un sous-domaine de Keolis : timeo3.keolis.com.

 

Logo_Keolis_Groupe_0

La boîte qui vous permet d’aller au boulot quand le tram n’est pas en panne.

 

Cette découverte m’a mis la puce à l’oreille; étant développeur de Twistoast, une application qui jusqu’ici analysait directement les données présentes sur le site officiel de Twisto afin de présenter une liste d’horaires dans une application native, j’étais plutôt bien placé pour savoir que Timeo est le petit nom donné au système d’horaires en temps réel du réseau de bus de Caen. Et pas seulement, apparemment.

En effet, en fouillant un peu plus sur les Internets à propos de cette URL, je suis tombé sur un document fort intéressant sur Pastebin, documentant quelques fonctions de ce qui semble être une API permettant de récupérer les horaires en temps réel de tous les bus du réseau Keolis, en gros.

J’ai donc commencé à l’étudier et à la documenter de la manière la plus exhaustive possible, afin de la rendre accessible au public, et l’ai publiée sur un Gist. Cet article vient en complément du Gist, pour donner un peu de background à l’histoire et peut-être quelques précisions techniques, si jamais vous souhaitez vous servir des données.

Twistoast, avant

Twistoast est née il y a environ un an, comme un simple projet pour m’initier à Android. Je venais de commander une montre Pebble, et je voulais pouvoir accéder aux horaires des bus Twisto en temps réel depuis celle-ci, étant un utilisateur régulier de leur service pour aller étudier. J’ai eu beau chercher, et chercher, et chercher, je ne trouvais pourtant aucun moyen de récupérer ces horaires en temps réel autre que leur site web; leurs applications officielles utilisent des WebViews, et aucune API ne semble disponible.

J’ai ainsi commencé à étudier le fonctionnement de Timéo, le système utilisé par Twisto pour fournir ces données et les rendre disponibles à l’utilisateur final, dont l’interface a été développée par Actigraph, un contracteur vraisemblablement expérimenté dans le domaine, qui gère également un bon nombre des sites web de Keolis, et probablement une bonne partie de leur backend.

Après de longues heures passées sur le sujet, je termine plus ou moins le développement d’une API en PHP me permettant de récupérer simplement tout ce dont j’ai besoin pour récupérer les horaires des bus Twisto en temps réel. Elle me donne alors grande satisfaction, et même si elle souffre encore de nombreux bugs (que je résoudrai au fil du temps), je commence à bosser sur la partie client de l’app Android qui deviendra Twistoast.

Pas grand-chose à raconter ici. J’ai beaucoup appris sur le développement Android grâce à cette app, et j’ai enfin eu accès aux horaires des bus Twisto sur ma montre. HUGE SUCCESS!

Keolis et l’Open Data

Retour au présent. Vers la fin de l’été dernier, je suis donc tombé sur cette API magique, directement disponible sur un sous-domaine de Keolis, et qui retourne les données en XML. Elle n’est pas trop mal conçue, et assez complète, mais j’aurais quelques remarques à faire si jamais vous souhaitez l’utiliser dans un de vos projets.

Vous pouvez retrouver la documentation de l’API ici, sur Github.

Remarques techniques

Premièrement, l’API devrait fonctionner pour les réseaux de bus des villes suivantes : Le Mans, Pau, Soissons, Aix-en-Provence, Caen, Dijon, Brest, Pau-Agen, Blois, St-Étienne, Nantes, Montargis, Angers, Macon-Villefranche, Épinay-sur-Orge, et Rennes (sauf erreur). Cependant, les données fournies pour certaines villes sont franchement limitées. Vérifiez donc cela avant de vous lancer dans le développement du service du siècle.

Ensuite, aucune idée de ce à quoi peut servir le paramètre xml=2. Tout est clair pour xml=1 et xml=3, mais xml=2 reste un mystère. Si vous trouvez quelque-chose, faites moi signe.

Ensuite, gros problème. Vous comprendrez vite que le paramètre refs est ce qui identifie un arrêt dans ce système; or, il change au cours du temps. Eh oui, c’est bizarre, mais c’est comme ça. J’ai cru remarquer qu’il ne change que pour certaines périodes; changement d’horaires, peut-être ? Toujours est-il qu’il faudra le mettre à jour régulièrement, faute de mieux. Vous pourrez toutefois récupérer les infos d’un seul arrêt dont vous connaissez le code (qui est du coup un identifiant qui ne change pas dans le temps… déconcertant), avec un appel du type ?xml=1&code=2523.

Remarques pratiques

L’API fournit des infos supplémentaires assez sympathiques, comme la couleur de la ligne, ou la direction d’un bus précis (en complément de la direction de la ligne). Pas de géolocalisation des arrêts cependant, contrairement à cette autre API de Navitia que je n’ai malheureusement pas eu l’occasion d’utiliser, vu qu’elle ne propose justement pas d’horaires en temps réel.

Remarque bête, mais néanmoins à noter, la capitalisation des noms est dégueulasse et sans aucun accent. Une fonction de capitalisation custom ne sera donc probablement pas de trop.

Conclusion

Un bien gros article pour un sujet qui va probablement toucher deux personnes dans l’Univers, mais j’avais besoin de transmettre ma connaissance. Donc si vous êtes cette autre personne, bonne chance !

Par ailleurs, je ne sais pas qui a posté le Pastebin originel, mais je sens que je lui dois une bière. Merci à lui ou elle !

Je sens que cette API a vraiment énormément de potentiel, et qu’une tonne d’autres données est disponible sur le site de Keolis. Je n’étais pas du tout intéressé par le domaine avant de me mettre à développer Twistoast, mais il y a encore énormément de progrès, de découvertes et d’inventions à développer dans le domaine du transport, et j’ai hâte de voir (ou même de participer) à ça.