dimanche 20 février 2022

Deus Ex Mankind Divided

Yay, j'ai fini Deus Ex Mankind Divided ! Bon, vous allez me dire que j'arrive un peu après la bataille, c'est quand même un jeu qui est sorti en 2016, ce qui fait 8 ans, et ce qui ne nous rajeunit pas. Cela reste un jeu très cool, et tout à fait honorable au niveau graphique. Fidèle à mes préceptes, j'ai complété le jeu en mode "pacifiste", en m'abstenant de trucider qui que ce soit.

Quand bien même ce jeu met l'accent sur la rejouabilité, je ne peux pas dire que je sois très tenté de m'y recoller : j'ai exploré la plupart des lieux, et tenté de compléter toutes les quêtes secondaires que j'ai pu trouver. On se contentera donc d'attendre une éventuelle suite !

Bravo à l'équipe pour l'excellente qualité de la version Linux, qui ne m'a posé aucun souci. Du triple A en Linux natif, j'applaudis des deux mains !

dimanche 23 janvier 2022

C++20 - std::jthread

Coucou ! Cela faisait un petit moment que nous n'avions pas parlé de C++. Ça tombe bien, il y a plein de choses à dire. En particulier, causons aujourd'hui de std::jthread.

Ce n'est certes pas une révolution : il s'agit juste d'une version un petit peu plus évoluée que std::thread, qui embarque un indicateur qui permet de demander l'arrêt du thread, et qui a la propriété de demander cet arrêt, et de joindre le thread, dans le destructeur. Rien qui ne soit aisé à écrire soi-même, mais c'est du sucre syntaxique tout ce qu'il y a de plus agréable, et je trouve que cela s'approche plus de la philosophie RAII : là où l'ancien std::thread était vraiment un contrôle sur un thread, mais pouvait être détruit bien avant le thread, le nouveau std::jthread a plus une sémantique de possession, en s'assurant que le thread ne survivra pas à l'objet.

Subtilité supplémentaire: le foncteur passé à std::jthread peut prendre un paramètre supplémentaire de type std::stop_token qui permet de savoir si son propre thread doit s'arrêter.

Mais assez de parlotte, voyons le code:

#include <thread>
#include <iostream>

int main()
{
  std::jthread t
    ([](std::stop_token stoken)
     {
       while (!stoken.stop_requested())
       {
         std::cout << "Coucou !" << std::endl;
       }
     });

  using namespace std::literals::chrono_literals;
  std::this_thread::sleep_for(2s);

  return 0;
}

Grace à notre ami le std::jthread, pas besoin d'avoir un atomic qui traine, de bien penser à joindre à la fin du programme, et tout le toutim habituel. Le std::jthread nous prend par la main et s'assure que tout est bien nettoyé derrière. Sympa !

mercredi 29 décembre 2021

MFS 2020: Occasion manquée

J'étais prêt, j'étais lancé : en manque de X-Plane pour cause d'indisponibilité de mon PC le soir (l'ordinateur dort avec le bébé, ce qui n'est malheureusement pas optimal), je m'étais décidé à rattraper ce retard en m'offrant Microsoft Flight Simulator 2020 sur XBox. Je vois que c'est disponible pour XBox X et S, et ma XBox est une S, tout va bien, j'achète sur l'horrible site Microsoft (entre microsoft.com, xbox, com et live.com, démultipliés par le pays et la mauvaise ergonomie, c'est vraiment pas terrible !), je tente de lancer la chose sur la XBox, et là, on me dit que c'est incompatible !

Une petite recherche désespérée plus tard, et je comprends ma méprise : il ne faut surtout pas confondre la XBox One S, nouveau modèle de XBox One sorti en 2016, dont je suis l'heureux possesseur, et la XBox Series S, la version moins pêchue de la XBox Series X, sortie en 2020, que je n'ai pas. MFS 2020 (eh mes fesses 2020?) ne fonctionne bien évidemment que sur la deuxième.

Z'auraient pas pu changer de lettre ???

Annulé, remboursé, je retourne sur KSP (et ça rime).

mardi 28 décembre 2021

Réparation d'un Warthog Hotas

Voici un petit retour d'expérience sur la réparation d'une manette des gaz Warthog Hotas de chez Thrustmaster. Cet été, ma manette des gaz a soudainement commencé à refuser de fonctionner. Au branchement, j'avais les LED qui s'allumaient brièvement avant de s'éteindre, et le système d'exploitation me remontait des erreurs. Après avoir tenté plusieurs resets, j'ai contacté le support Thrustmaster.

J'ai été agréablement surpris de leur réactivité. Leur système de support est bien fichu, avec un système qui permet de leur envoyer des vidéos et des photos pour leur montrer le problème. Seul souci : leur système anti-spam est extrêmement agressif, et il m'a fallu envoyer mes e-mails plusieurs fois à chaque fois afin que cela finisse par passer.

Après avoir une nouvelle fois tenté un reset et une mise à jour du firmware, ils ont conclu que le circuit imprimé devait avoir grillé, et m'ont proposé soit de leur envoyer la manette, soit que eux m'envoient un nouveau circuit imprimé avec des instructions, en précisant bien que cela n'affectait pas ma garantie et que je pouvais toujours leur renvoyer la manette si la réparation ne fonctionnait pas. L'idée d'une part de trouver une boite et suffisamment de plastique à bulle pour envoyer un colis fort lourd sans rien casser, et d'autre part de voir ma manette disparaître pour une durée indéterminée (et puis un peu la curiosité de le réparer moi même) m'ont poussé vers la seconde option.

Et en effet, j'ai reçu une semaine plus tard dans une belle enveloppe renforcée avec une grosse étiquette "ne pas plier" (tu m'étonnes !) le nouveau circuit imprimé. Il m'a fallu redemander les instructions, qui avaient été mises sur un PDF un peu à la rache, mais au final ce n'était pas très compliqué: débrancher en repérant bien les fils, en rebrancher pareil. Je me suis fait un peu peur en rebranchant lorsque j'ai bien plié le connecteur, mais, "plié pas cassé", j'ai remis en place sans dommage: ne pas hésiter à utiliser un tournevis ou une pince pour pousser proprement les connecteurs dans leurs logements.

Redémarrage, miracle, ça fonctionne ! Je suis très content, et ils avaient l'air contents aussi !

mercredi 8 décembre 2021

Kerbal sur XBox

Une des raisons de mon silence ces derniers mois est en fait une nouvelle configuration de mes activités de geek, puisqu'à la suite d'un changement de configuration familiale, je n'ai plus accès à ma machine principale le soir. C'est plus compliqué pour poster, pour faire du Blender ou même pour coder, mais cela n'empêche pas de gamer, grâce à la petite XBox que je regardais de haut auparavant et qui finalement fait plutôt bien le boulot.

En particulier, je dois saluer la version de Kerbal Space Program sur XBox, qui est tout à fait remarquable ! Les contrôles sont vraiment bien faits, et même si on se bat un petit peu pour déplacer le curseur en mode construction, ils ont tout fait pour rendre le jeu aussi ergonomique que possible, avec une utilisation extensive des boutons au niveau des index pour comme modificateurs, et de menus de type roues quand il y a juste trop d'options disponibles.

En vol, tout se passe de manière très intuitive, avec un stick pour la vue, et l'autre stick plus les gâchettes pour les axes de lacet, tangage et roulis.

En mode manœuvre, il faut un peu jongler avec les boutons pour passer d'un mode à un autre et d'un axe à un autre, mais ça finit par venir, et j'ai réussi à gérer un rendez-vous orbital presque du premier coup.

Maintenant, il ne me reste plus qu'à saisir les arcanes des captures d'écran pour pouvoir partager un peu !

Ouh là là, que fais-je ?

Ça va faire 6 mois que je n'ai pas posté ! Honte à moi.

mercredi 16 juin 2021

Expérience en simulateur A320 full motion

Mes collègues m'ayant gentiment offert lors de mon pot de départ une "expérience" en simulateur A320 full-motion, j'ai enfin réservé. Ils avaient eu le budget pour 1 heure, mais j'ai rajouté une autre heure, ce qui au final a clairement valu le coup.

J'avais déjà eu l'occasion de faire 1 heure de simulateur statique Boeing 737, expérience sympathique, mais finalement pas si transcendante : on avait juste aligné les atterrissages dans des endroits rigolos, mais j'avais à peine touché autre chose que le yoke et la manette des gaz. Ici, je m'étais préparé. Déjà, avec une 50aine d'heures de Toliss sur X-Plane dans la ceinture, j'étais prêt. Ensuite, avec 2 heures réservées, j'avais amplement le temps de faire un vol complet en incluant la mise en route.

C'est ce que j'ai expliqué à l'instructeur: je voulais faire un vol complet, avec une météo un peu sympa histoire de profiter du mouvement. Je lui ai montré ma check-list, il m'a dit, super, je te laisse te débrouiller. Il m'a expliqué qu'il était d'abord un pilote B737, et avait juste fini une petite formation A320, je me suis rapidement senti plus calé que lui sur les détails de la machine. Comme ça, il m'a laissé faire tout ce que je voulais !

Direction le simulateur. Impressionnante bestiole! Grosse cabine, montée sur des vérins monstrueux, on y accède via un escalier et un petit pont-levis. À l'intérieur, plusieurs sièges réglables (les spectateurs ?), la console de contrôle de la simu, et enfin, le siège du commandant de bord. Je m'installe, et je commence à dérouler la check-list.

C'était vraiment un plaisir que de tripoter et d'appuyer enfin pour de vrai sur chaque bouton, sur chaque manette. L'instructeur me sort un plan de vol de Gatwick vers Orly, je rentre ça dans le MCDU, j'ai une discontinuité qui nous plonge lui et moi dans les affres de la confusion, mais on y va quand même (j'ai découvert pendant le vol que j'avais simplement oublié de renseigner la VIA dans ma STAR).

Et puis c'est parti ! Petit mal de coeur pendant le roulage lors des grands virages, mais dès que l'on décole, ça va beaucoup mieux. Les turbulences nous secouent comme des pruniers, mais qu'est-ce que c'est fun. Les graphismes ne sont pas terribles, mais c'est amplement rattrapé par le mouvement et l'ambiance sonore.

On continue à dérouler les procédures, et l'on s'approche d'Orly, de nuit dans le brouillard. J'approche des minimas, et je ne vois toujours pas la piste... Là, erreur grave, je continue malgré l'absence de visuel. Finalement, les phares éclairent enfin le sol, et quand je ne vois que des champs, c'est le gros coup de panique, j'annonce "Go around!", manette à TOGA, et on remonte. Après vérifications, il s'avère qu'Orly n'est pas un aéroport assez important, et que le simulateur ne propose donc qu'une seule piste ! On refait un tour, on vient s'aligner sur la piste disponible, et je me pose à la mano, un peu brutalement cependant, ayant tardé pour l'arrondi.

Puis comme il restait du temps nous avons fait des choses plus classiques, décollages suivi d'atterrissages dans divers endroits intéressants et avec des météos de plus en plus pourries, à Innsbrück, à Zurick, et enfin un atterrissage dantesque à Heathrow par un orage épouvantable, j'avais le manche pratiquement tout le temps en butée à droite et à gauche pour tenter de rester à peu près aligné, et les PAPIs étant absents, c'était vraiment du sport.

Voilà, en conclusion, une expérience inoubliable, même si, étant donné les tarifs (à peu près €1000 les 2 heures), je ne suis pas près de recommencer. Voilà ce que j'en retire:

  • 2 heures, c'est la bonne durée. Ça permet de faire un vol complet, sans stress, et d'avoir un peu de temps après pour continuer à s'amuser.
  • J'ai bien fait d'inverser la position de la manette et du joystick sur mon bureau la veille pour m'entraîner, j'avais peur d'une grosse perte de précision en tenant le stick de la main gauche à la place du commandant de bord, et puis finalement ça s'est bien passé.
  • Indispensable de débarquer avec sa propre check-list. Ils avaient peut-être quelque chose, mais au moins je savais exactement ce que j'avais à faire et j'avais pu m'entraîner
  • J'aurais du préparer un plan de vol à l'avance, et m'entraîner à l'ajouter au MCDU, ce qui m'aurait évité l'erreur du VIA
  • J'aurais du mieux penser à l'avance à ce que je voulais faire après le vol. Finalement, je me suis tiré de mon vol principal assez rapidement, et j'aurais du mieux optimiser le temps qu'il me restait. En y repensant, j'aurais du probablement demander à simuler une panne, comme un problème moteur au démarrage. Les atterrissages étaient sympa, mais ça aurait fait quelque chose d'autre à essayer.