L’Enfant de métal – Nouvelle

Il y a des histoires que personne n’a envie d’entendre.

Celle que je veux vous raconter commence dans une mare de sang. Un ruisseau rougit par la mort descendait le long de la colline où semblait s’apaiser des corps inertes. Les cadavres d’une bataille sans merci où s’affrontent des silhouettes lointaines.

Pourtant, la hauteur offerte par la colline offrait en lieu idéal pour notre protagoniste.

Un protagoniste somme toute relativement jeune, puisque sa dégaine laissait présager un enfant. Pourtant, la lumière réfléchie par son bras trahissait ses objectifs. L’enfant qui n’en était pas un était allongé le long de trois autres corps, dont l’un des bras était posé sur la métallique jambe de notre héros. Car il n’y avait pas que son bras qui était fait de métal.

Il n’avait peut être pas de visage, mais le cerveau qui se trouvait dans l’enceinte de sa tête blindée semblait concentré. Sur sa face, les cinq optiques qui constituaient son système de visualisation étaient toutes focalisées sur un point lointain qui se distinguait de l’horizon. Ses deux antennes, situées de part et d’autres de sa figure étaient pliées à leur maximum de manière à ne pas divulguer sa présence.

On aurait pu croire que ce dernier était un simple dommage collatérale de cette bataille. Un enfant défiguré par la vie, à qui l’on avait remplacé le corps par un amas de métal fissuré et graisseux. Mais la présence d’un fusil de précision démontrait le contraire. Tout à coup, on entendit le retentissement d’un coup de feu. La silhouette lointaine disparu dans la poussière. Le sniper avait abattu sa cible.

Rien ne laissait transparaître la satisfaction de l’enfant. Du moins dans un premier temps, car quelques instants après avoir épier les environs, l’enfant redressa ses antennes. Puis doucement, il se redressa, posa un genoux à terre, puis se leva. Un crissement accompagna cette ascension: les moteurs des articulations étaient en rade depuis un bon moment.

L’enfant avança dans la pénombre. Il avait au préalable éteint ses capteurs de manière à ne pas se faire repérer. Il retrouva enfin le corps du soldat auquel il avait ôté la vie un instant plus tôt. Sa mission était complète. Il scanna alors le visage du défunt qu’il initialisa dans sa base de donnée.

C’était une lourde tâche. Non pas à cause de sa complexité, mais à cause de la souffrance qu’elle apportait à l’enfant. Avoir sans cesse le visage de ses victimes sous les yeux était pesant. De ce fait, il avait accès aux visage, et au nombre de personnes qu’il avait éliminé. Il n’arriverait pas à oublier. Tel est le prix de l’omniscience.

L’enfant remarqua qu’une bâtisse se dressait à quelques kilomètres de là. Il entama alors son périple à la recherche de survivants, et par conséquent de cibles. Il arrivait que l’enfant face volte-face durant sa marche afin de tirer sur d’éventuels oiseaux, serpents ou autres créatures organiques. C’était pour lui son seul divertissement.

Le robot arriva à la maison. Il numérisa son environnement avant de pénétrer dans l’enceinte de l’abri. Une fois entré, il braqua son arme de poing dans toutes les directions possibles dans l’espoir de tirer sur le moindre opposant. Mais la maison était vide.

Alors, le petit garçon posa son fusil, ses armes et ses outils à semer la mort. Puis il ouvrit son sac à dos. Il en sortit un jouet. L’enfant joua avec ce qui semblait être une poupée. Elle était sale, crasseuse et misérable. C’était le genre de jouet qui aurait déplu à un enfant normal. Mais le nôtre ne l’était pas.

Il s’amusa avec, gesticulant tel un chérubin. Ses antennes s’agitaient dans tous les sens. On entendait alors comme des rires. Mais ces rires étaient aussi métalliques que leur créateur. L’enfant s’approcha de la cuisine et posa sa poupée sur une chaise haute. Comme celle-ci ne tenait pas debout, il la disposa en équilibre sur la table.

Il retourna à son sac, puis choppa la batterie à l’intérieur. Il s’installa alors sur la chaise, puis brancha à l’arrière de son crâne flamboyant la batterie posée sur la table. Il attrapa alors sa poupée puis l’observa sous toutes ses coutures. Il semblait la trouver très belle. Cela dura une vingtaine de minutes.

Une fois l’énergie de la batterie absorbée, l’enfant rangea la batterie. Il s’apprêtait à ranger son jouet quand tout à coup, un craquement s’échappa de la pièce d’à côté. L’enfant, qui pris peur, dégaina instantanément son pistolet, puis pénétra dans la chambre. Ce qu’il y découvrit le stupéfia.

Il tomba né à né avec un petit garçon, peut être un poil plus vieux que lui. Ce dernier tremblait et pointait un morceau d’acier vers l’enfant de métal. Il tenait ce couteau de ses deux mains, et semblait ne pas pouvoir le lâcher. Il était en sanglots et croyait vivre ses derniers instants.

L’enfant de métal le regarda, sans bouger. Il le regardait la tête penchée sur le côté. Il était immobile. Une question lui traversa l’esprit: l’avait-il vu en train de jouer avec sa poupée? S’il avait eu un visage, il en aurait rougi de honte. Ses antennes se redressèrent. Et ses caméras frontales se focalisèrent sur l’enfant.

Le garçon, lui continuait à pleurer toujours le couteaux dans les mains. Mais une question se posait alors pour l’enfant soldat: que devait-il faire? Le tuer, lui, cet enfant parfait à qui le sort avait offert un visage, un corps et des yeux en pleurs? Ou devait-il ignorer ce civil et quitter ce lieu au plus vite.

Une rage envahit l’enfant de métal. Que devait- il faire ? Puis après un moment de panique. Il reprit son calme. Quoi qu’il adviendrait, cet enfant parfait serait retrouvé par des soldats. Ceux là n’hésiteront pas, eux, à tuer le garçon. Voire pire. Peut-être le torturaient-ils….

On entendit un coup de feu.

L’enfant parfait s’affaissa et son arme de fortune s’échappa de ses mains. L’enfant de métal venait de lui offrir une fin digne. Puis il s’immobilisa. Il était pétrifié par l’acte qu’il venait de commettre. Il aurait voulu, à cet instant, laisser couler les larmes sur ses joues. Pleurer face à ce qu’il venait de faire: un cadavre de plus.

Il remarqua alors, sur le lit de l’enfant mort, une poupée. Elle était propre, belle, et scintillante. Une question lui vint à l’esprit: aurait-il joué avec moi ?

Alors, l’enfant de métal entrepris de scanner le visage de l’enfant qu’il avait tué. Pour le garder en mémoire. Pour que le monde ne l’oublie pas. Il ferma les yeux du cadavre. Et resta agenouillé un moment face à son œuvre.

L’enfant de métal quitta les lieux, non sans peine, non sans regrets.

Son sac était désormais moins lourd. Car à côté de son œuvre étaient entreposées deux poupées que tout opposait.

W-AC


Nouvelle de science-fiction que j’ai écrit fin 2019. J’ai imaginé cette histoire dans un contexte post-apocalyptique dans laquelle la guerre tourmente notre monde et où le soldat de chair et de sang a laissé sa place a des esprits prisonniers de métal.

Quelle histoire raconter ?

Dans la vie, il y a parfois des moments ou on a besoin d’évasion. Pour certains, cette nécessité se traduit par une volonté de voyage. Pour d’autres, il s’agit de s’immerger dans une oeuvre, de lire, de voir, d’écouter, de jouer. Dans tous les cas, il s’agit de mettre tout ses sens en éveil pour se propulser dans un lieu exotique.

Ma manière à moi, c’est d’écrire, de raconter des histoires. Mais ayant été élevé dans une société où l’image est désormais plus présente que les mots, j’ajoute à mes textes des dessins, des créations visuelles, très souvent, du code. 

Ces derniers temps, j’ai ressenti la volonté de m’évader. De prendre de la hauteur et d’imaginer à quoi peut ressembler l’ailleurs qui me passionne.

Ces dernières années ont été riches en rêves: j’ai essayer d’imaginer à chaque fois des projets personnels qui me sont forts de sens. Des projets qui visent à mieux comprendre et à mieux me comprendre.

Depuis près de sept ans maintenant, je développe, en plus de ma web série UNAI, deux projets qui me semble carrément passionnant et qui me donne l’envie de créer.

Le premier est un univers de science fiction que j’ai commencé à développer autour d’un scénario (date d’il y a 9 ans). Le coeur de ce projet est la vidéo, puisque le scénario que j’ai développé est pensé comme un script de film. Il est axé sur des personnages forts, et sur une mise en scène iconique. L’écriture derrière ce projet est très personnelle, puisqu’elle reflète ma vision de nombreuses thématiques. Avec un univers monochrome et sombre, animé par des airs de jazz atypiques.

Le second est un univers de fantasy. Le projet est beaucoup plus jeune que le premier (il date d’au moins quatre ans), mais n’en demeure pas moins développé. Ce projet est un conte onirique et coloré. Il raconte l’histoire de personnages faibles qui deviennent forts, ensembles. C’est donc une sorte de romance mêlée d’amitié, de trahisons et de combats.  Ce projet là, pour le coup est différent, puisqu’il est pensé d’abord comme un univers avec quelque chose de plus chalereux.

Alors vous pouvez peut-être vous dire que tout cela fait beaucoup de travail, avec énormément de dessins, de codes, de graphismes…. Mais c’est oublié que je suis le gars qui a réussi à créer une web série en CGI en parallèle de ses études en autodidacte.

Aujourd’hui, la question que je me pose est la suivante: quelle histoire raconter.

Il y a quelques temps, j’ai eu une discussion avec quelqu’un qui m’est proche. Cette personne me posait la question que je me pose aujourd’hui. Après qu’elle m’ai expliqué ses idées (qui sont soit dit en passant géniales et audacieuses), je n’avais alors pas su répondre à la question.

Aujourd’hui, je me retrouve dans son cas.

Je vous épargnerais les tenants et aboutissants de ma réflexion, mais il y a malgré tout une notion qui m’interpelle: l’auteur. A quel point j’ai envie que l’histoire me soit personnelle ? 

On arrive à la finalité de mon cheminement de pensé: aujourd’hui, je suis à un moment de ma vie ou j’ai quelque chose de spécifique à raconter, une humeur et un ressentiment à partager. Et j’ai envie de justifier mon choix par sa proximité avec ma vision actuelle.

Les histoires que j’écris ne sont peut-être pas des oeuvres qui changeront à jamais le monde ou qui chambouleront celles et ceux qui y pénètre. 

Mais elle me changeront, moi. Et c’est peut-être ça, être un conteur d’histoire.

Comment j’ai fait mon moteur de recherche web ?

Parmi mes projets personnels les plus fous se trouve une idée un peu farfelue.

Il y a quelques année de cela, durant l’année 2016, je me suis passionné pour une dimension très spécifique de l’informatique, à savoir l’accès à l’information.

Je me suis alors intéressé au fonctionnement de moteurs de recherche dédiés aux web. 

Alors si il existe plein de moteurs de recherche aujourd’hui, celui qui détient le monopole aux Etats-Unis et en Europe est bien évidemment Google. Egérie des Start-ups Garages et autres disrupteurs du dimanche, c’est aujourd’hui un portail rassemblant plus qu’un outil de recherche de page web, mais bien un assortiment de data-centers et de compétences permettant de dompter les flux de données à l’échelle mondiale.

Mais si nous revenons à la base du concept de moteur de recherche, c’est une tout autre idée bien que la vision reste la même.

Derrière un moteur de recherche tel qu’ils existaient dans la fin des années 90, il y a trois entités bien distinctes. Pour ce cas d’usage, je développerai le fonctionnement d’un moteur de recherche web très basique.

Le Crawler, l’explorateur du web

Tout d’abord, il y a le Crawler, aussi appelé Spider. C’est un logiciel qui se balade de page en page pour enregistrer l’ensemble des données associées. Il y lit le contenu, en déduit les mots clés associés, y recense l’ensemble des liens vers lesquels la page courante redirige.
Finalement, il fait exactement ce que son nom nous induit. On peut alors imaginer une petite araignée parcourant le web et traçant sa toile.
Chose important à noter: notre araignée robotisée, avant de pénétrer dans la page web, est tenu de lire un fichier robot.txt qui lui dit ou non si elle a le droit d’accéder ou d’enregistrer la page en question.

Une fois notre page web traitée, notre araignée poursuit son chemin en allant suivre les autres liens.

L’index: stocker l’information

Chaque page visitée par notre araignée est inscrite dans une base de donnée appelée l’index, qui regroupe l’ensemble des données relative à la page web.
Les pages sont recensées dans l’index et sont couplées à leurs indice de pertinence: le pagerank.

Le Pagerank: classer l’information

Par la suite, c’est au pagerank de récupérer ces données brutes et de noter la page web en conséquence.

Il va d’abord enregistrer sa pertinence en comptant le nombre de lien qui redirigent vers cette page. Puis, il lui donner un score arbitraire en fonction de la pertinence des pages de ces liens sources.

Aujourd’hui, il existe des normes dédiées au SEO (Search Engine Optimisation, ou Optimisation pour le référencement naturel), à l’accessibilité et aux standards. Par exemple, si votre site est doté d’une bannière en flash avec des polices de caractères clignotantes tout en omettant d’être lisible sur un téléphone, c’est compliqué de se frayer un chemin vers la première page de résultats.

Le Pageranker va également associer ces pages aux mots clé les plus pertinents.

Un champs de recherche cache parfois autre chose

Enfin, il y a le front, qui est le site web ou l’application permettant d’interroger notre index.

En 2016, je rêvais déjà de construire un petit moteur dédié à la recherche web. Hélas, il me manquait à ce moment quelques notions qui m’ont empêché de programmer l’outil de mes rêves.

A ce moment là, j’ai donc travaillé sur un méta-moteur de recherche !

Un méta-moteur de recherche, c’est un site ou une application qui (de base) n’a ni crawler, ni index. En effet, ce système se contente d’aller piocher chez la concurrence les résultats de recherche pour les ressortir sur une page avec un autre logo.

Du coup, à ce moment là, puisque je n’avais pas les compétences en programmation, j’ai décidé de travailler une autre partie tout aussi interessante: l’interface utilisateur.

Je me suis donc appliqué à repenser l’ensemble avec les moyens du bord.

https://www.youtube.com/watch?v=vtRnDP7rdF4

L’idée derrière ce projet était alors d’imaginer une nouvelle forme d’expérience utilisateur axée sur l’idée de personnifier le logiciel.
Inspirée par les mascottes de Microsoft Word comme Clippy qui conseillait l’utilisateur sur son usage du traitement de texte, Toast était voué à servir de visage à l’éternelle page blanche ornée du champs de recherche qui fait la réputation de l’internet.

Au delà le l’interaction sommaire, le personnage servirait également de champs de recherche qui s’affiche au gré des requêtes de l’utilisateur.

Mon objectif dans la réalisation de ce projet était de moderniser la manière dont l’utilisateur interagit avec son outil. C’était alors l’époque où les applications permettant d’échanger avec la machine avec leurs voix. Après tout, la voix de Siri permet de donner une dimension palpable à l’outil qu’on utilise. Humaniser un logiciel permet à mon sens de capter une nouvelle audience en ajoutant une couche de simplification au dessus d’un outil déjà simplifié à l’extrême.

https://www.youtube.com/watch?v=n4LuPULsrCQ

Avant cela, j’avais déjà travaillé sur une autre mouture de l’interface du moteur un peu plus proche de ce qui existait déjà.

Parcourir le web, un lien à la fois

Maintenant, parlons de mon projet qui remonte à deux ans (en 2020 donc). A cet instant, je m’intéresse beaucoup moins à l’interface utilisateur, mais bien à la technologie derrière les outils que j’utilise au quotidien.

J’ai le besoin de mieux comprendre comment faire tourner un vrai crawler.

Et pour cela, la première idée qui me vient à l’esprit est littéralement une boucle récursive: un moulin qui ne s’arrête jamais puisqu’il persiste à parcourir toutes les branches d’un arbre dont la hauteur n’est probablement pas un représentable par un nombre raisonnable.

Du coup, j’ai commencé à la dure ! Une boucle récursive est initialisée par un appel de l’utilisateur au format ligne de commande. Par la suite, une partie du code (au format Objet) se connecte à notre base de donnée pour être rappelée autant de fois que nécéssaire en écriture.
La boucle va ajouter ou modifier les valeurs dans notre base de donnée correspondant à la page web et dont la clé est pour le moment le lien hypertexte de notre page.

L’outil que j’ai développé est disponible sur Netneer.com !

Ce que j’en ai appris

Tout cela, en plus de me servir d’exercice, m’a permis d’entrevoir les limites des outils que j’utilisais alors, mais aussi les contraintes qui en découlent.

D’abord, le language JAVA est un langage séduisant et robuste, mais condamné à tourner sur une machine virtuelle appelée JVM (JAVA Virtual Machine). Cette dernière est une machine à gaz, opaque et dont on ne peut percevoir le fonctionnement de l’extérieur. En gros, c’est une boite noire qui n’est pas du tout optimisée pour mon idée, puisqu’à terme, je veux pouvoir faire des Threads de mes différents Crawlers pour faire tourner plusieurs araignées en parallèle. Ce qui fait que sur une machine donnée, je veux pouvoir avoir un maximum de threads qui tournent en parallèle, et qui soient orchestrés par un outil plus automatisable qu’un appel de commande.

Ensuite, il y a la base de données que j’utilisais: une base MySQL toute simple. Mais encore une fois, ce n’est pas ce que je veux pour manipuler de grandes quantités de données de manière plus souple, tout en imaginant un système de classification qui soit plus performant qu’un simple attribut. De plus, j’imagine que si une base MySQL est amplement suffisante pour faire tourner un site classique, ce n’est pas le meilleur outil pour l’application de mes rêves.

Je pense me tourner à terme vers une solution en C plus plus. Mais j’hésite encore, et comme je vois de nouveaux langages apparaître régulièrement, je pense avoir l’opportunité de découvrir de nouvelles manières de construire le moteur de recherche de mes rêves !

Conclusion

J’essaie de découvrir de nouvelles technologies à apprivoiser très régulièrement, et mes projets personnels sont pour moi l’un des meilleurs moyens de rester à la page.

Je trouve néanmoins que l’évolution de mon petit projet personnel m’encourage à en apprendre plus !

Construire, sans jamais s’arrêter

Il y a des histoires que personne n’a envie d’entendre.

Des histoires qui fascinent, qui répugnent, qui passionnent. 

Et aujourd’hui, je veux vous présenter le prélude de mon histoire: BACKRUN.

Le projet

Ce projet, je rêve de le faire depuis des années: j’ai déjà trois version du projet qui précèdent celle-ci.

J’ai choisi de la developper au format jeu vidéo sous le moteur de jeu Unity.

BACKRUN est un jeu vidéo d’aventure mixant une composante de gameplay shooter à la troisième personne, et une dimension plateforme.

Vous incarnez ici un personnage appelé 3051, un jeune homme qui va avoir comme mission de traverser un niveau couloir ou une horde d’ennemis l’attendent. 

Armé de votre pistolet, votre objectif est de vous frayer un chemin dans le niveau. En plus de sa capacité à tirer sur les ennemis, 3051 est doué d’une fonctionnalité appelée « retour sur vos pas », qui lui permet de retourner en arrière pour retrouver sa position et ses points de vie qui étaient les siens quelques secondes en arrière.

Le level design, est composé de quatre parties:

  • une première qui est la partie intro, ou vous allez pouvoir vous initier au gameplay. Cette partie est une session de tuto qui vous permet de mieux appréhender le tir au format TPS, mais aussi une partie plateformer sommaire permettant d’intégrer l’idée du « retour sur vos pas ».
  • une partie shooter qui va vous permettre de parcourir un niveau, tirer sur les ennemis.
  • une partie plateformer qui fera part belle à la réflexion qui implique une maitrise totale de la mécanique de « retour sur vos pas ».
  • et enfin une dernière partie ou vous allez devoir survivre à plusieurs vagues d’ennemis, puis au boss du jeu.

Le tout se termine par une cinématique de fin.

La direction artistique est pensée pour s’approcher d’une bande dessinée franco-belge, et un filtre cellshading a été appliqué sur les personnages et l’environnement.

La technique

Plusieurs questions se sont posée pour la création du projet. La première est bien évidemment l’outil de création du jeu. La question est simple: aujourd’hui, les deux outils les plus utilisés sur le marché sont Unreal Engine de la société Epic Games, et Unity.

Unreal Engine est aujourd’hui bien plus qu’un moteur de jeux vidéo. D’abord, il s’agit d’un éditeur de jeux, permettant de créer son jeu très rapidement et passer de l’idée au prototype en un rien de temps. Il est doté d’une fonctionnalité appelée Blueprint, permettant de faire de la programmation en nodale sur le moteur.

Unreal est pour moi un problème, car je voulais pouvoir créer un jeu en construisant la totalité du jeu. Hors, Unreal est le type d’outils qui est tellement surchargé qu’il permet de créer un jeu graphiquement aussi abouti qu’un triple A sans aucune connaissance préalable. Doté d’un générateur de personnage, de générateur procéduraux de niveaux, d’outils clé en main de création graphique, il ne correspond pas à mes besoins.

Car avant toute chose, BACKRUN est un projet personnel. Il est voué a me permettre de découvrir de nouvelles opportunités sur l’outil que j’utilise, à approfondir mes connaissance et à inventer de nouvelles manière de construire.

Unreal Engine, tout comme Construct, ne m’interessent pas dans le cadre de ce projet puisque je souhaite avant toute chose continuer à apprendre quelques subtilités.

Unity est un moteur de jeu beaucoup plus rigide: sans sur-couche de simplification avancée, et doté d’un système de compilation multisupport: quelques clics suffisent à porter le jeu sur une autre plateforme.

J’ai donc créé le projet sous Unity, avec l’idée de produire l’ensemble de mes assets et mes codes dédiés au gameplay.

Le mot de la fin

Ceci est l’un des nombreux prototypes que j’ai réalisé au fil des années pour mon projet BACKRUN: une histoire de science fiction que je développe depuis 2014 (j’avais 16 ans).

BACKRUN n’est peut-être pas encore impressionnant ou abouti. Mais c’est moi qui l’ai fait. 

Le dernier prototype du jeu intitulée « BACKRUN: CHAPTER ZERO » était disponible en version work in progress sur Itchio.

J’ai hâte d’écrire la suite.