<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
	<title>The Wind through the Wheels</title>
	<link>https://the-wind-through-the-wheels.com/fr/rss/</link>
	<atom:link href="https://the-wind-through-the-wheels.com/fr/rss/" rel="self" type="application/rss+xml" />
	<description>The most recent posts on The Wind through the Wheels&#x00027; blog.</description>
	<pubDate>Mon, 20 Apr 2026 07:54:49 +0000</pubDate>
	<ttl>60</ttl>
	<item>
		<title>We&#x00027;ve delivered our game design document</title>
		<description><![CDATA[]]></description>
		<pubDate>Mon, 31 Mar 2025 00:00:00 +0000</pubDate>
		<content:encoded><![CDATA[<p>A year ago, we've been extremely lucky to receive a grant from the CNC (French National Centre for Cinema and the Moving Image) to work on a game design document for The Wind through the Wheels. We finalized it last month and we are quite happy with the progress we've made on defining the game, both in story, design and game mechanics.</p>

<p>If you wish to consult it, it is available <a href="https://adelfaure.net/docs/the_wind_through_the_wheels/gdd.pdf">here</a> but only in french (and as this is the first game design document we've written, we are uncertain of its quality, so let's hope it's correct).</p>

<p>At first the game was intended to be entirely done in ASCII art but during the GDD writing, we switched to a misc-text mode style close to PETSCII using the Textor engine I'm working on. ASCII surely was very cool but I think colored text mode will allow more expressiveness and cool animation style (like the previous cycling animation I posted). Here a a mock-up for the riding screen, including landscape parallax scrolling and dialogue between characters between road events and getting to destination.</p>

<figure>
      <img src="https://the-wind-through-the-wheels.com/site/assets/files/1053/2025-02-27_new-graphic-style-travel-screen.png">
      <figcaption></figcaption>
  </figure>

<p>Without yet having reworked the prototype we have for this type of view with these new graphics, here the animated sprite of a cyclist to give an idea of what it will all look like in motion :</p>

<figure>
    <video preload="metadata" controls="">
        <source src="https://the-wind-through-the-wheels.com/site/assets/files/1053/2025-02-16_textmode-cycling.mp4" type="video/mp4">
    </video>
    </figure>

<p>There will be turn-based RPG mechanics adapted to cycling. The team will battle against random elements and road events determined by topographical properties based on the player's travel choices. For example, the forest will prevent wind, while the mountains will increase the chances of ascents and descents. These elements will be encountered as some sort of enemies sending malus to the characters stats, and skills will be available to eliminate them or convert them into bonuses.</p>

<figure>
      <img src="https://the-wind-through-the-wheels.com/site/assets/files/1053/roguelite.png">
      <figcaption></figcaption>
  </figure>

<p>At each stage, between travel phases, visual-novel-style gameplay will be used to explore the towns and various locations in which the embodied cycling team stops. In addition to encounters with NPCS, dialogue trees will sometimes propose an area exploration system and generally will modify the statistics of roleplay elements according to decisions made, as can be done in <a href="https://moralanxietystudio.com/">Roadwarden</a> or <a href="https://discoelysium.com/">Disco Elysium</a>.</p>

<figure>
      <img src="https://the-wind-through-the-wheels.com/site/assets/files/1053/rpg.png">
      <figcaption></figcaption>
  </figure>

<p>We've also been working a lot on a sci-fi story set in a world finally decarbonized after a bitter struggle against a globalized thermo-fascist regime. A sort of “sweat-punk” utopia (like a variation on solar punk about Human-powered propulsion and energy, including lots of pneumatics and an obsession with bicycles) set after a dystopia inspired by our contemporary situation.</p>

<figure><img alt="" src="https://the-wind-through-the-wheels.com/site/assets/files/1053/low_tech.png" width="800" />
<figcaption>Lowtech Magazine, Human powered air compressor and energy storage system. Photo by Andy Lagzdins.</figcaption>
</figure>

<p>We've been working on this theme with references like Low-tech magazine and our reading of A Psalm for the Wild-Built in mind. We've also recently started reading specialized science fiction on feminism and cycling from Microcosm Publishing's “Bikes in space” catalog (thanks a lot Fisk for this discovery), which will surely inspire us for the rest of our narrative work.</p>

<figure>
      <img src="https://the-wind-through-the-wheels.com/site/assets/files/1053/microcosm_publishing.png">
      <figcaption></figcaption>
  </figure>

<p>We are excited about the next step. Adel is planning to reduce his professional time to do what he can on the project, keeping his fingers crossed that it will be a fun game. The idea is to make a demo, share things online while making it and see if there's a chance for some crowd based funding or why not find a publisher to finance the rest of the production (hoping we are not daydreaming).</p>]]></content:encoded>
		<link>https://the-wind-through-the-wheels.com/fr/blog/a-game-design-document-for-the-wind-through-the-wheels/</link>
		<guid>https://the-wind-through-the-wheels.com/fr/blog/a-game-design-document-for-the-wind-through-the-wheels/</guid>
	</item>
	<item>
		<title>Développement d&#x00027;un circuit en pseudo 3D</title>
		<description><![CDATA[]]></description>
		<pubDate>Tue, 07 Jan 2025 00:00:00 +0000</pubDate>
		<content:encoded><![CDATA[<p>Dans l'idée d'un scénario où on serait directement dans une course, nous imaginons la ponctuer d'évènements qui prendraient la forme de mini-jeux. Les membres de l'équipe pourraient alors proposer des solutions, chercher dans leurs souvenirs afin de réussir les mini-jeux et ainsi avancer progressivement dans le jeu.</p>

<p>Ces mini-jeux pourraient ouvrir à des possibilités graphiques et interactives autres que la vue de profil. Une idée de mini-jeu serait d'évoquer le jeu <a href="https://en.wikipedia.org/wiki/Out_Run">Out Run</a> en reprenant le principe d'une caméra derrière le personnage et la route en pseudo 3D. Le principe pourrait être d'éviter des obstacles, de ramasser des objets, de prendre l'aspiration.</p>

<p>Nous avons trouvé quelques références qui détaillent la manière de s'y prendre pour calculer la projection d'éléments 2D selon les positions d'une caméra et de l'écran afin de produire un effet de 3D :</p>

<ul>
	<li><a href="http://www.extentofthejam.com/pseudo/">http://www.extentofthejam.com/pseudo/</a></li>
	<li><a href="https://github.com/jakesgordon/javascript-racer/" rel="noreferrer noopener" target="_blank">https://github.com/jakesgordon/javascript-racer/</a></li>
	<li><a href="https://github.com/ssusnic/Pseudo-3d-Racer" rel="noreferrer noopener" target="_blank">https://github.com/ssusnic/Pseudo-3d-Racer</a></li>
	<li><a href="https://www.youtube.com/watch?v=N60lBZDEwJ8" rel="noreferrer noopener" target="_blank">https://www.youtube.com/watch?v=N60lBZDEwJ8</a></li>
</ul>

<p>Nous avons donc développer une version demo en JS dont voici une archive vidéo :</p>

<figure>
    <video preload="metadata" controls="">
        <source src="https://the-wind-through-the-wheels.com/site/assets/files/1052/2025_01_07_pseudo_3d_circuit.mp4" type="video/mp4">
    </video>
    </figure>

<p>Pour améliorer tout ça, on pourrait :</p>

<ul>
	<li>gérer le déplacement via le concept de vecteur</li>
	<li>intégrer un calcul de forces à vaincre pour avancer à la manière dont on l'a fait dans <a href="https://the-wind-through-the-wheels.com/fr/blog/mise-au-point-dun-moteur-physique/">Development of a physics engine</a></li>
	<li>intégrer un fond et de la parallaxe</li>
	<li>intégrer des décors autour de la route et sur la route</li>
</ul>]]></content:encoded>
		<link>https://the-wind-through-the-wheels.com/fr/blog/developpement-dun-circuit-en-pseudo-3d/</link>
		<guid>https://the-wind-through-the-wheels.com/fr/blog/developpement-dun-circuit-en-pseudo-3d/</guid>
	</item>
	<item>
		<title>Mise au point d&#x00027;un moteur physique</title>
		<description><![CDATA[]]></description>
		<pubDate>Mon, 25 Nov 2024 00:00:00 +0000</pubDate>
		<content:encoded><![CDATA[<p>Dans un article précédent, nous avons vu que pour déplacer le cycliste, trois forces nous intéressaient : la force de la pente, la force du vent et la force de frottement. Nous avons alors fait des calculs pour estimer les puissances à vaincre afin d'avancer.</p>

<p>Cependant, nous avions des difficultés à intégrer aisément ces calculs au sein d'une technique de rendu graphique pour un jeu vidéo (l'élément HTML Canvas par exemple) afin de faire bouger un cycliste dans un environnement. C'est pourquoi nous avons regardé plutôt la manière dont on peut convervoir un moteur physique avec des langages de programmation. Le livre et le site <a href="https://natureofcode.com/">Nature of code</a> de Daniel Shiffman a été d'une grande aide. Nous avons surtout regardé les parties sur les vecteurs et les forces.</p>

<p>La vidéo ci-dessous montre une version de démonstration d'un moteur physique. On peut changer l'inclinaison de la pente, la vitesse du vent et la qualité de la route. Ces changements sont pris en compte dans les calculs des forces de la pente, du vent et du frottement. La logique des vecteurs permet d'ajouter une série de forces que la force du pédalage doit vaincre pour avancer.</p>

<figure>
    <video preload="metadata" controls="">
        <source src="https://the-wind-through-the-wheels.com/site/assets/files/1051/2024_11_25_physics_engine.mp4" type="video/mp4">
    </video>
    </figure>

<p>Les variables sont modifiées via des touches du clavier. Voici le détail de la signification du changement de l'objet qui bouge :</p>

<ul>
	<li>Forme carrée : le cycliste est en roue libre</li>
	<li>Forme ronde : le cycliste pédale</li>
	<li>Forme triangulaire : le cycliste freine</li>
</ul>

<p>Ces débuts sont plutôt prometteurs. Pour améliorer tout ça, on pourrait :</p>

<ul>
	<li>intégrer plus de variables dans le calcul des forces</li>
	<li>définir un équivalent de vitesse à laquelle se déplace le cycliste</li>
	<li>intégrer une force ou une variable liée à la santé du cycliste</li>
	<li>intégrer la possibilité de pédaler plus fort ou bien de freiner plus fort</li>
	<li>intégrer un calcul de puissance à partir des données de force et de vitesse</li>
	<li>utiliser l'intégration de Verlet plutôt que la méthode d'Euler pour calculer le changement de position du cycliste</li>
</ul>]]></content:encoded>
		<link>https://the-wind-through-the-wheels.com/fr/blog/mise-au-point-dun-moteur-physique/</link>
		<guid>https://the-wind-through-the-wheels.com/fr/blog/mise-au-point-dun-moteur-physique/</guid>
	</item>
	<item>
		<title>Modéliser l&#x00027;entraînement</title>
		<description><![CDATA[]]></description>
		<pubDate>Tue, 12 Nov 2024 00:00:00 +0000</pubDate>
		<content:encoded><![CDATA[<p>Nous avons consulté ces deux articles afin de comprendre comment pouvait être modéliser un entraînement en endurance :</p>

<ul>
	<li>Banister EW, Calvert TW, Savage MV, et al. A systems model of training for athletic performance, <em>Aust J Sports Med</em> 1975;7:57–61.</li>
	<li>Murray NB, Gabbett TJ, Townshend AD, et al, Calculating acute:chronic workload ratios using exponentially weighted moving averages provides a more sensitive indicator of injury likelihood than rolling averages, <em>British Journal of Sports Medicine</em> 2017;51:749-754.</li>
</ul>

<p>Nous avons également regardé comment était calculée la charge Coggan.</p>

<p>Nous nous sommes ainsi concentrés sur le modèle condition physique/fatigue. Il consiste à calculer la condition physique et la fatigue par rapport à des cycles d'entraînement. La condition physique est calculée sur un cycle à moyen terme et la fatigue sur un cycle à court terme. La soustraction de la conditition physique et de la fatigue donne une indication de la forme.</p>

<p>Ci-dessous, des détails pour :</p>

<ul>
	<li>calculer de la charge d'un entraînement</li>
	<li>calculer fatigue, la condition physique et la forme</li>
</ul>

<h2><strong>Calcul de la charge d'un entraînement</strong></h2>

<p>La charge d'entraînement est un indicateur chiffré de l'effort qui a dû être réalisé pour un entraînement. Pour ces calculs, il faut avoir une valeur limitante propre à un individu. C'est un seuil à partir duquel un effort ne peut plus être maintenue dans la durée. Cela peut être la vitesse ou bien la puissance (par exemple) qui peuvent être maintenues pendant une heure d'effort. La durée choisie aura pour conséquence de valoriser des entraînements au-delà de cette durée.</p>

<pre>
var treshold_value;    // km/h, W, etc
var training_duration; // h
var training_value;    // km/h, W, etc
var training_intensity = training_value / treshold_value;
var training_score = ((training_duration * training_value  * training_intensity) / treshold_value) * 100;</pre>

<p>La valeur de seuil est appelée "treshold_value". La valeur "training_value" doit être dans la même unité.</p>

<h2><strong>Calcul de la fatigue</strong></h2>

<p>La fatigue correspond à une charge d'entraînement de cours terme. Ici on la calcule sur un cycle de 7 jours. On prend l'unité de temps "un jour" pour calculer la fatigue, la condition et la forme. Du coup, quand on parle de la fatigue précédente, on parle de la fatigue du jour précédent.</p>

<pre>
var fatigue = previous_fatigue + ((training_score - previous_fatigue) / 7)</pre>

<p>On calcule la fatigue tous les jours. Si "previous_fatigue" n'existe pas encore, on commence à 0, sinon on prend la valeur du jour précédent. La fatigue est généralement comprise en 0 et 50. Elle ne peut pas être négative. Proche de 0, la valeur n'est pas très haute, au-delà de 50 elle est importante.</p>

<h2><strong>Calcul de la condition physique</strong></h2>

<p>La condition physique correspond à une charge d'entraînement de moyen terme. Ici on la calcule sur un cycle de 42 jours.</p>

<pre>
var fitness = previous_fitness + ((training_score - previous_fitness) / 42);</pre>

<p>On calcule la condition physique tous les jours même si elle est plutôt pertinente à 42 jours. Si "previous_fitness" n'existe pas encore, on commence à 0, sinon on prend la valeur du jour précédent. Elle ne peut pas être négative. Proche de 0, la valeur n'est pas très haute, au-delà de 50 elle est importante.</p>

<h2><strong>Calcul de la forme</strong></h2>

<p>La forme est calculée par la différence entre la condition physique et la fatigue.</p>

<pre>
var form = fitness - fatigue;</pre>

<p>La valeur de la forme peut être entre -30 et 20. Pour s’entraîner de façon optimale, il est intéressant d'être entre -10 et -30. La fatigue est donc au-dessus de la condition physique. Mais pas trop, sinon au-delà de -30, des risques de blessures peuvent arriver. Pour arriver en forme à un évènement, il faut cependant réduire la fatigue. Alors si la valeur de la forme passe au-dessus de 5, elle manifeste un certain niveau de fraîcheur. C'est-à-dire qu'on a une fatigue inférieure à la condition physique : on a troqué de la fatigue contre de la fraîcheur.</p>

<p>Il s'agit donc d'équilibrer la fatigue par rapport à la condition physique (les cycles cours par rapport aux cycles moyens) pour progresser et ensuite créer de la fraîcheur.</p>]]></content:encoded>
		<link>https://the-wind-through-the-wheels.com/fr/blog/modeliser-lentrainement/</link>
		<guid>https://the-wind-through-the-wheels.com/fr/blog/modeliser-lentrainement/</guid>
	</item>
	<item>
		<title>Une bonne nouvelle et une feuille de route</title>
		<description><![CDATA[]]></description>
		<pubDate>Wed, 03 Apr 2024 00:00:00 +0000</pubDate>
		<content:encoded><![CDATA[<figure>
      <img src="https://the-wind-through-the-wheels.com/site/assets/files/1049/cover.png">
      <figcaption></figcaption>
  </figure>

<p>L'été dernier nous (Adel et Vincent) avions formulé une demande de subvention auprès du CNC (Le Centre national du ninéma et de l'image animée français) pour une aide à l'écriture concernant The Wind Through the Wheels et celle-ci à été acceptée !</p>

<p>Cette nouvelle nous a été annoncée en décembre 2023, en février nous signions le contrat d'aide à l'écriture et nous avons reçu 75% des fonds le mois dernier.</p>

<p>Il s'agit d'une somme de 10000€ que nous partageons moitié-moitié. Cela ne sera pas suffisant pour couvrir l'ensemble des fonds de production du jeu mais cela nous permet de travailler dans une sorte de mi-temps à deux jusqu'en 2025. C'est un super départ pour le projet.</p>

<p>Je (Adel) me sens très chanceux de pouvoir être rémunéré pour travailler avec un ami sur un jeu et je pense que tout le soutien que j'ai reçu depuis que je partage mon travail à grandement contribué à cette situation. Je remercie toutes les personnes qui suivent mon travail et m'encouragent par leurs compliments, commentaires, messages et questions. Cela à vraiment transformé ma manière de travailler et m'a permis de me sentir légitime dans ma pratique. Il y a deux ans je n'aurais jamais osé demander un financement pour travailler sur un jeu à une institution.</p>

<p>Le CNC nous a fait part d'un résumé de la délibération du comité de sélection, en voici quelques points. Aux yeux des commissaires, notre projet présente une grande originalité du point de vue de sa direction artistique. L'amorce du scénario et la technique d'afficher de l'ASCII soutiennent des questions relatives à l'écologie, ce qui les a intéressés. Ils ont tout de même émis des réserves quant au gameplay, au tout ASCII et au besoin d'un apport scénaristique pour gagner en profondeur.</p>

<p>Concrètement, nous avons un an pour faire des recherches, définir le jeu et rassembler ce travail dans un Game Design Document. Ce sera un document d'une quarantaine/cinquantaine de pages qui décrit le plus précisément possible le scénario, les mécaniques du jeu, la direction artistique et graphique. Nous devons également tenir un compte rendu chronologique des tâches que nous allons faire et la liste des dépenses que nous allons avoir.</p>

<p>Pour vous donner une idée de ce qu'on a envoyé au CNC, voici le PDF de notre dossier : <a href="https://the-wind-through-the-wheels.com/site/assets/files/1049/the_wind_through_the_wheels_fr.pdf" rel="noreferrer noopener" target="_blank">the_wind_through_the_wheels_fr.pdf</a></p>

<h3>Notre feuille de route</h3>

<p>En parrallèle de ce travail d'écriture nous avons l'objectif de produire une démo qui servira d'appui à une campagne de financement participatif pour pouvoir poursuivre le dévelopement du jeu. Nous espérons pouvoir arriver à ce stade d'ici 2025 même si il nous reste beaucoup de travail pour y arriver.</p>

<p>Malgré ces objectifs nous souhations rester dans une phase d'expérimentation complète, qu'il s'agisse de scénario, de gameplay ou même de direction visuelle. Ce qui ne changera pas c'est le traitement en mode texte des graphismes, la thématique du cyclisme et un gameplay d'exploration et d'entraînement sportif en vue de côté.</p>

<p>À titre d'exemple nous allons bientôt tenter en rendu pixel en couleurs et côté scénario nous sommes entrain de travailler sur une thématique de science-fiction où l'humanité abandonne l'usage d'hydrocarbures au profit de la force motric humaine et du stockage de l'energie sous forme d'air comprimé. Comme une sorte de style Solar Punk orienté sur la motricité humaine, Roller-Punk ou Compressed-Air Punk ? Sweat Punk ?</p>

<h3>Un devlog</h3>

<p>Aujourd'hui nous mettons en ligne le blog <a href="https://the-wind-through-the-wheels.com/fr/" rel="noreferrer noopener">https://the-wind-through-the-wheels.com/</a> où nous publierons nos avancées. C'est un site en français et en anglais. Nous y avons déjà publié deux articles qui étaient auparavant des threads sur nos réseaux sociaux. Pour suivre facilement nos publications, nous avons mis en place un flux RSS : <a href="https://the-wind-through-the-wheels.com/fr/rss/" rel="noreferrer noopener">https://the-wind-through-the-wheels.com/rss/</a></p>

<figure>
      <img src="https://the-wind-through-the-wheels.com/site/assets/files/1049/blog.png">
      <figcaption></figcaption>
  </figure>

<p>Nous allons prochainement publier un article sur le calcul de la puissance et de la vitesse à vélo que nous expérimentons comme base de gameplay.</p>

<p>Nous y repostons également l'article publié en mai dernier sur Velvetyne à propos de la fonte utilisée pour le jeu.</p>

<p>Le design du blog est probablement temporaire, connoté très web 1.0, il s'inspire de l'ambiance esthétique du web et des systèmes d'exploitations de l'époque où la scène ASCII art émergait via Usenet. Néanmoins le style est peut-être un peu austère pour valoriser un projet de jeu.</p>

<h2>Nos avancées de février-mars</h2>

<p>Depuis février, nous n’avons pas posté grand chose sur les réseaux à propos du jeu mais nous avons avancé sur de nombreuses pistes.</p>

<h3>Un premier niveau en préparation</h3>

<p>Nous avons entamé un premier trajet "stage" du jeu. Cela a nécessité l'intégration du relief de la route, l'ajout de décors 3D générés à partir de données topographiques, l'intégration du moteur physique qui permet de relier vitesse et puissance en fonction de paramètres, et la mise en place d'un gameplay physiologique minimal pour voir la fatigue de l'athlète. Ce gameplay physiologique pourrait nous emmener vers un type de jeu entre gestion et survie. Le jeu pourrait alors demander une gestion précise de la nutrition, de l'hydratation, du repos, du matériel, etc. Une piste que nous pensons pertinente vis-à-vis de la dimension contemplative que nous souhaitons placer au coeur du gameplay. Dans cet esprit nous avons en tête des jeux comme Oregon trail ou Caribbean Sail pour les mécaniques de d'attente, voyage, de survie. Nous pensons à Lone Sails concernant la manière dont le défilement du paysage constitue le coeur du gameplay. Dans un esprit bien plus RPG et pour son travail d'écriture, Roadwarden nous inspire également.</p>

<h3>Avancées sur le moteur de rendu</h3>

<p>En parrallèle de ce "stage" nous continuons de travailler sur le moteur de rendu et d'interactivité du jeu. Il s'agit quasiment d'un projet dans le projet avec pour finalité rêvée une publication sous license libre et une documentation pour assurer la possibilité de sa réapropriation.</p>

<p>La courte démo du platformer "A Very Bold Character" publiée par Adel le mois dernier (lien),était un prétexte pour expérimenter de manière plus généraliste sur le moteur.</p>

<figure>
    <video preload="metadata" controls="">
        <source src="https://the-wind-through-the-wheels.com/site/assets/files/1049/2024-02-23_15-14-38.mp4" type="video/mp4">
    </video>
    </figure>

<p>Ce moteur s'appelle Textor et outre son utilisation dans The Wind Through the Wheels il est le support à un éditeur d'images en mode texte dont Adel s'est servi pour ses dernières créations, expérimentant un rendu bitmap en couleur comme alternative à l'ASCII art en bichromie utilisée pour le moment.</p>

<figure>
      <img src="https://the-wind-through-the-wheels.com/site/assets/files/1049/screenshot_2024-01-25_at_15-25-16_screenshot.png">
      <figcaption></figcaption>
  </figure>

<figure>
      <img src="https://the-wind-through-the-wheels.com/site/assets/files/1049/algorave_2024_screen_purple.png">
      <figcaption></figcaption>
  </figure>

<p>Dans sa dernière version, Textor permet d'appliquer les mêmes fonctions interactives aux éléments qu'il s'agisse d'un rendu bitmap ou pur texte.</p>

<figure>
    <video preload="metadata" controls="">
        <source src="https://the-wind-through-the-wheels.com/site/assets/files/1049/textmode_kittens_low.mp4" type="video/mp4">
    </video>
    </figure>

<p>Un article plus spécifique sur le développement de Textor sera écrit prochainement.</p>

<h3>Autres chantiers</h3>

<p>Nous entamons également un travail de recherche graphique, d'ambiance et de couleur. L'enjeu est de rechercher ce qui peut compléter ou prolonger les dessins en ASCII art.</p>

<figure>
      <img src="https://the-wind-through-the-wheels.com/site/assets/files/1049/ff.png">
      <figcaption></figcaption>
  </figure>

<figure>
      <img src="https://the-wind-through-the-wheels.com/site/assets/files/1049/cross_stitch.jpg">
      <figcaption></figcaption>
  </figure>

<p>Un autre des gros chantiers que nous avons entrepris est l'écriture du scénario du jeu. Nous avons débuté cela sous la forme de petites nouvelles. On commence ainsi à donner des noms aux personnages et aux lieux. Il faut donc leur fixer des caractéristiques, des manières de parler, des distances, du relief. Comme dit plus haut, la thématique principale est que l'humanité a fait le choix d'abandonner totalement les sources d'énergie fossiles. On tire ce fil thématique dans nos nouvelles. Par exemple, on en a commencé trois : une où le personnage principal passe du temps à vivre avec des agricult·eur·ice·s qui se serve de la force motrice humaine pour le travail des champs, une autre sur la rencontre d'un communauté qui aménage une source d'eau potable tirée d'un puits de pétrole abandonné, et une autre où le protagoniste découvre qu'il peut développer une sorte de super-pouvoir sur son vélo qui lui permet de se projeter dans des environnements différents.</p>

<p>Pour écrire tout cela, nous nous documentons sur des sources d'énergies alternatives aux sources fossiles, sur les moyens de déplacement, les façons pré-industrielles de faire de l'agriculture, des relations différentes avec les animaux, les moyens de dépolluer une zone industrielle. Nous lisons aussi des récits de science-fiction. Nous avons par exemple lu : <em>Un psaume pour les recyclés sauvages</em> (2022) (<em>A Psalm for the Wild-Built</em>, 2021) de Becky Chambers et <em>Babel</em> (2022) (<em>Babel, or the Necessity of Violence</em>, 2022) de R. F. Kuang. Nous allons également lire des récits plus anciens comme :<em> Cent ans après ou l'An 2000</em> (1891) (<em>Looking Backward: 2000–1887</em>, 1888) de Edward Bellamy et <em>Nouvelles de nulle part</em> (1902) (<em>News from Nowhere</em>, 1890) de William Morris.</p>

<p>Enfin, dans l'objectif de mettre en scène des paysages urbains, nous avons travaillé sur un générateur de facades en ASCII art. Il y a encore du travail mais nous ésperons publier cette brique comme un outil indépendant sous license libre prochainement</p>

<figure>
      <img src="https://the-wind-through-the-wheels.com/site/assets/files/1049/facade_generator_0.png">
      <figcaption></figcaption>
  </figure>

<figure>
      <img src="https://the-wind-through-the-wheels.com/site/assets/files/1049/facade_generator_1.png">
      <figcaption></figcaption>
  </figure>

<figure>
      <img src="https://the-wind-through-the-wheels.com/site/assets/files/1049/facade_generator_2.png">
      <figcaption></figcaption>
  </figure>

<figure>
      <img src="https://the-wind-through-the-wheels.com/site/assets/files/1049/facade_generator_3.png">
      <figcaption></figcaption>
  </figure>

<figure>
      <img src="https://the-wind-through-the-wheels.com/site/assets/files/1049/facade_generator_4.png">
      <figcaption></figcaption>
  </figure>]]></content:encoded>
		<link>https://the-wind-through-the-wheels.com/fr/blog/une-bonne-nouvelle-et-une-feuille-de-route/</link>
		<guid>https://the-wind-through-the-wheels.com/fr/blog/une-bonne-nouvelle-et-une-feuille-de-route/</guid>
	</item>
	<item>
		<title>Calcul de la puissance et de la vitesse à vélo</title>
		<description><![CDATA[Afin de déplacer le cycliste, nous souhaitons prendre en compte les effets du vent, de la pente ou encore de la santé de l&#x00027;athlète. De plus, nous souhaitons pouvoir mesurer l&#x00027;effort physiologique réalisé par l&#x00027;athlète. Pour cela, il faut calculer les forces à affronter nécessaire pour parvenir à se déplacer.]]></description>
		<pubDate>Wed, 07 Feb 2024 00:00:00 +0000</pubDate>
		<content:encoded><![CDATA[<p>Afin de déplacer le cycliste, nous souhaitons prendre en compte les effets du vent, de la pente ou encore de la santé de l'athlète. De plus, nous souhaitons pouvoir mesurer l'effort physiologique réalisé par l'athlète. Pour cela, il faut calculer les forces à affronter nécessaire pour parvenir à se déplacer. Il y a au moins trois forces à prendre en compte : la force de l'air, la force du vent et la force de frottement. On va donc parler de vitesse et de puissance. La vitesse désigne un déplacement dans le temps et la puissance une énergie dépensée dans le temps.</p>

<p>Nous avons débuté ce travail sur une base de calculs réalistes. Les sites de <a href="http://www.velomath.fr/dossier_velo_equation/velo_equation.html" rel="noreferrer noopener" target="_blank">Jacques Fine</a> et <a href="http://bernard.mischler.free.fr/equacycle/exemple.htm" rel="noreferrer noopener" target="_blank">Bernard Mischler</a> nous ont été d'une aide précieuse afin de mettre au point les calculs. Le principe général est de pouvoir passer d'une vitesse (km/h) à une puissance (W) et inversement. Ainsi selon une puissance donnée et en fonction de conditions, on peut savoir à quelle vitesse se déplace un cycliste. On a appelé ces conditions des "facteurs de performance".</p>

<pre>
var performance_factors_values = {
    health: 0,                // float
    athlete_position: 0.4,    // float
    athlete_weight: 75,       // kg

    bike_condition: 0.01,     // float
    bike_weight: 10,          // kg
    
    road_condition: 0.004,    // float
    slope_gradient: 0,        // %
    g_force: 9.81,            // m/s2
    
    real_wind_speed: 0,       // km/h
    air_temperature: 20,      // °C
    air_pressure: 101325,     // Pa
    air_molar_mass: 0.028965, // kg/mol
    gas_constant: 8.3144621,  // J·K-1·mol-1
}</pre>

<p>L'objet ci-dessus liste un ensemble de facteurs de performance et de valeurs qui sont pratiques pour débuter les calculs. Par exemple, on a choisi un vélo de 10kg, un vent de 0km/h et une température de 20°C. Ces facteurs de performance sont variables : les frottements de la route, l'état du vélo, la position de l'athlète peuvent changer et en conséquence influencer différemment la performance. Même la force de gravité peut elle aussi varier si l'on choisit de faire aller notre cycliste sur la Lune...</p>

<p>Nous avons donc créé un ensemble de fonctions JavaScript qui prennent cet objet en argument. Voici la fonction qui calcule l'influence de la pente :</p>

<pre>
function calc_slope_power(values) {
    var v = values;
    var slope_power = v.speed * (v.athlete_weight + v.bike_weight) * v.g_force * v.slope_gradient / 100;
    return slope_power;
}</pre>

<p>En ajoutant une série de fonctions calculant des puissances, on obtient alors la puissance requise pour déplacer le cycliste. Calculer une puissance en fonction d'une vitesse est plus facile que calculer une vitesse en fonction d'une puissance. Le second calcul nécessite en effet de résoudre un polynôme du troisième degré, ce qu'on a fait en adoptant une méthode de résolution numérique.</p>

<p>Une fois tout ces calculs en place, nous avons mis au point un outil pour visualiser les résultats. Il prend la forme de deux visualisations qui donnent à lire des vitesses en fonction de puissances développées. Le premier graphique présente la vitesse en fonction de la pente et le second la vitesse en fonction du vent.</p>

<figure>
    <video preload="metadata" controls="">
        <source src="https://the-wind-through-the-wheels.com/site/assets/files/1047/graph_1.mp4" type="video/mp4">
    </video>
    </figure>

<p>Nous avons également ajouté des inputs pour pouvoir faire varier les facteurs de performance. On peut voir par exemple l'effet du poids de l'athlète sur la vitesse atteinte pour une puissance donnée.</p>

<p>Nous avons ensuite ajouté un input pour gérer l'inertie. On prend alors en compte la vitesse précédente pour améliorer ou bien diminuer la nouvelle vitesse. Si le cycliste était à l'arrêt, il aura un malus au moment où il cherche à se déplacer. Par contre, si sa vitesse précédente était élevée, il aura un bonus. Nous avons également pris en compte l'inertie qu'implique la pente : il vaut mieux arriver lancé sur une côte.</p>

<figure>
    <video preload="metadata" controls="">
        <source src="https://the-wind-through-the-wheels.com/site/assets/files/1047/graph_2.mp4" type="video/mp4">
    </video>
    </figure>

<p>Nous pensons que cette approche est intéressante pour pouvoir estimer l'effort du cycliste. Il sera possible de calculer des charges d'entraînement et d'en déduire des risques de blessures, de la fatigue ou de la forme physique.</p>]]></content:encoded>
		<link>https://the-wind-through-the-wheels.com/fr/blog/calculating-power-and-speed-on-a-bike/</link>
		<guid>https://the-wind-through-the-wheels.com/fr/blog/calculating-power-and-speed-on-a-bike/</guid>
	</item>
	<item>
		<title>Design et rendu de routes et de paysages en ASCII à partir de données topographiques</title>
		<description><![CDATA[Avec Vincent Maillard, nous avons travaillé sur la construction et le rendu de la route et de ses paysages en arrière-plan dans The Wind Though the Wheels.]]></description>
		<pubDate>Fri, 19 Jan 2024 00:00:00 +0000</pubDate>
		<content:encoded><![CDATA[<p>Avec Vincent Maillard, nous avons travaillé sur la construction et le rendu de la route et de ses paysages en arrière-plan dans The Wind Though the Wheels. En utilisant le système "ascii smooth lines" que j'ai présenté le mois dernier, nous nous sommes concentrés sur l'approche du paysage en tant que couches de profils en relief projetés dans l'espace.</p>

<figure>
    <video preload="metadata" controls="">
        <source src="https://the-wind-through-the-wheels.com/site/assets/files/1040/render_relief_roads_wind.mp4" type="video/mp4">
    </video>
    </figure>

<p>Nous avons créé une sorte de nuanceur qui rend les volumes de relief ASCII à l'aide de tableaux de coordonnées 2D projetés dans l'espace. Les deux premiers tableaux de relief dans les données sont utilisés pour le bord de la route.</p>

<figure>
      <img src="https://the-wind-through-the-wheels.com/site/assets/files/1040/relief_profiles.png">
      <figcaption></figcaption>
  </figure>

<p>Une fois que l'environnement 3D de la scène est en place, il s'agit de trouver la bonne échelle XYZ, en équilibrant le réalisme géographique, la longueur de la course, la difficulté et la pertinence du point de vue. Peut-être ces facteurs seront-ils modifiables par le joueur au cours du jeu sous forme de pouvoirs ou de capacités spéciales ?</p>

<figure>
    <video preload="metadata" controls="">
        <source src="https://the-wind-through-the-wheels.com/site/assets/files/1040/scaling_relief.mp4" type="video/mp4">
    </video>
    </figure>

<p>Au-delà du rendu des routes et des paysages, il y a la question de leur conception. Il est assez difficile de créer à la main des données cohérentes sur les paysages, c'est pourquoi nous avons commencé à utiliser les données d'Open Elevation. A titre de test, nous l'avons utilisé pour modéliser le relief autour de Retournac, une ville près de chez nous.</p>

<figure>
      <img src="https://the-wind-through-the-wheels.com/site/assets/files/1040/open_elevation_relief_retournac.png">
      <figcaption></figcaption>
  </figure>

<p>L'utilisation de parcours existants (à partir des données d'Open Runner) comme point de départ pour la conception d'étapes est un aspect intéressant de la méthode.</p>

<figure>
      <img src="https://the-wind-through-the-wheels.com/site/assets/files/1040/open_runner_0.png">
      <figcaption></figcaption>
  </figure>

<p>Cependant, notre façon de visualiser le cyclisme à partir d'une vue latérale signifie que nous aplatissons la route de tous ses virages, de sorte que nous ne pouvons pas construire une étape cohérente à partir de données géographiques non modifiées. Nous concevrons des étapes en modifiant et en interpolant les reliefs des pistes cyclables et les paysages sélectionnés ou générés qui ne sont pas des données géographiques.</p>

<figure>
      <img src="https://the-wind-through-the-wheels.com/site/assets/files/1040/interpolation.png">
      <figcaption></figcaption>
  </figure>]]></content:encoded>
		<link>https://the-wind-through-the-wheels.com/fr/blog/design-and-rendering-of-roads-and-landscapes-in-ascii-art-from-topographic-data/</link>
		<guid>https://the-wind-through-the-wheels.com/fr/blog/design-and-rendering-of-roads-and-landscapes-in-ascii-art-from-topographic-data/</guid>
	</item>
	<item>
		<title>Rendre des lignes lisses ASCII en utilisant la subdivision des caractères</title>
		<description><![CDATA[J&#x00027;ai travaillé sur le rendu de lignes fluides dans l&#x00027;art ASCII en utilisant la subdivision des caractères.]]></description>
		<pubDate>Fri, 22 Dec 2023 00:00:00 +0000</pubDate>
		<content:encoded><![CDATA[<p>J'ai travaillé sur le rendu de lignes fluides dans l'art ASCII en utilisant la subdivision des caractères.</p>

<figure>
    <video preload="metadata" controls="">
        <source src="https://the-wind-through-the-wheels.com/site/assets/files/1035/spider.mp4" type="video/mp4">
    </video>
    </figure>

<p>Chaque caractère est subdivisé en positions d'arrondi pour déterminer les points d'entrée et de sortie d'une ligne.</p>

<figure>
      <img src="https://the-wind-through-the-wheels.com/site/assets/files/1035/char_nodes.png">
      <figcaption></figcaption>
  </figure>

<p>J'ai ajouté 65 caractères spéciaux à la police Jgs correspondant à ces points de jonction.</p>

<figure>
      <img src="https://the-wind-through-the-wheels.com/site/assets/files/1035/sub_chars.png">
      <figcaption></figcaption>
  </figure>

<p>J'ai utilisé des équations de lignes comme y = pente * (x - aX) + aY et des fonctions de tri pour trouver ces points d'entrée et de sortie entre deux points donnés afin de rendre ces lignes lisses. Et comme je suis très mauvais en maths, cette étape m'a pris presque une semaine entière...</p>

<figure>
    <video preload="metadata" controls="">
        <source src="https://the-wind-through-the-wheels.com/site/assets/files/1035/smooth_line.mp4" type="video/mp4">
    </video>
    </figure>

<p>Cette fonctionnalité devrait être très utile pour le rendu des routes dans The Wind Through the Wheels, en particulier en étant enfin capable de rendre les croisements de routes sur le chemin du joueur.</p>]]></content:encoded>
		<link>https://the-wind-through-the-wheels.com/fr/blog/rendering-ascii-smooth-lines-using-character-subdivision/</link>
		<guid>https://the-wind-through-the-wheels.com/fr/blog/rendering-ascii-smooth-lines-using-character-subdivision/</guid>
	</item>
</channel>
</rss>