Les limites de la logique essais - erreurs

 





    Mes chers abonnés, c'est mon dernier jours de congés ! Le moins que l'on puisse dire c'est que ce ne fut pas des vacances bien terribles ! J'ai été malade la première moitié, et la suivante j'étais encore très fatigué ! Bref, je n'ai pas pu faire grand chose pendant ces 3 dernières semaines. C'est la faute à un COVID plus retors que les précédents. Peut-être est-il tombé à un moment où j'étais moins en forme, où bien était-ce un variant plus agressif.

    J'ai tout de même essayé de faire avancer le projet malgré tout. J'avais décidé avant ces vacances, de me consacrer à l'introduction du jeu, qui est essentielle pour donner au joueur toutes les informations nécessaires à la compréhension du roman interactif auquel il jouera.

    Ce n'est pas forcément un sujet technique très complexe, mais il recelle quand même quelques difficultés. Grâce à RetroPoke, je disposais de routine me permettant d'afficher des images sur l'écran du CPC même après que du texte ait fait défiler l'écran. Ceci est assez simple quand on utilise le vecteur BC1A pour obtenir l'adresse réelle d'un caractère à l'écran.

    Fort de cette routine, pour faire une jolie introduction, LZAmu me fournit un écran de parchemin en mode 1, avec un motif de bordure qui se répète, une fonte de style médiéval et me refait les portraits des principaux personnages en monochrome. Je n'ai donc plus qu'à rédiger mon texte et faire le programme autour ! Je rentre donc mon texte dans des data, et je fais un programme qui lit tout ça, en tronquant brûtalement le texte sans tenir compte si l'on est sur un mot ou pas. 

    L'essai n'est pas concluant, cela rend la lecture assez pénible ! J'essaie alors de faire en sorte que mon programme compte la longueur du texte mot par mot et s'arrête à chaque ligne avant que le suivant ne dépasse. Cela fonctionnait, mais cela créait un texte en dent de scie, assez désagréable. Mais je m'en accomodais, le programme m'avait demandé du temps et j'aimais bien l'effet d'affichage mot à mot.

    Je complète mon texte d'introduction, jusqu'à atteindre 14 kilo octets de texte ! Cela représente à peu près la moitié d'un chapitre d'un roman classique. Mais c'est là que les choses se corsent ! En donnant toutes ces données à mon programme, je suis tombé sur un grand nombre de cas, que je n'avais pas prévu, des cas à la marge de mon algorithme. Et en corrigeant un à un ces problèmes, je finissais par en créer d'autres. C'est un classique en programmation mais je commençais à saturer compte tenu de mon état de fatigue.



    J'arrive donc quasiment à la fin de mes vacances, avec un programme d'introduction qui n'arrive même pas à faire un affichage correct du texte que je lui donne. Et c'est en discutant avec LZamu que j'ai eu une idée, somme toute assez banale, mais qui allait tout changer ! Au lieu de mettre mon texte dans des data, je n'avais qu'à le mettre dans un fichier Ascii et l'ouvrir avec OPENIN et lire chaque ligne avec LINE INPUT #9 et je n'aurai qu'à faire moi même manuellement la justification du texte en dur dans un éditeur texte sous Windows !

    Mais pourquoi je n'y avais pas pensé avant bon sang ! J'ai utilisé des fichiers Ascii pour le moteur de mon jeu, des fichiers que j'ai généré avec Excel, je maitrise cette technique à présent, pourquoi je suis allé m'embêter avec des data et leurs contraintes !

    Je reprends donc tout mon texte qui était dans des lignes de data basic, je les remets en page tranquillement avec notepad++ avec la largeur de 37 nécessaire pour ma présentation. Une fois terminé, je reprends certaines lignes pour abaisser cette largeur à 23 pour pouvoir y incruster une image de mon choix. Je glisse sur ces lignes un séparateur pour donner la référence de l'image.

    J'ai pu alors reprendre une partie des routines que j'avais créées pour utiliser la routine de RetroPoke et ça fonctionne enfin ! En à peine 2 jours, j'ai fait plus de progrès que dans tout le reste de mes congés ! On voit bien là, la limite de la démarche essais-erreurs ! Si je m'étais posé et que j'avais plus réfléchi avant de foncer tête baissée, je me serais évité bien des soucis et j'aurai pu mettre le temps restant à profit pour d'autres points du jeu à développer.

    Bref, comme vous pouvez le voir, on peut avoir deux lectures de ce que j'ai fait. D'un coté, la lecture positive : "On apprends de ces erreurs, ça reste positif, tu es quand même arrivé au résultat que tu souhaitais..." et d'un autre coté : "Tu avais tout les éléments pour résoudre ça en 3 jours et tu en as mis plus du double !". Personnellement, je fais ces deux lectures en même temps et donc je reste mitigé sur ce bilan. En tout cas, je ne pourrais pas encore publier cette introduction, puisqu'elle dévoile les débuts de l'histoire, je préfère attendre que le jeu soit terminé. Elle pourra servir éventuellement pour un teaser pendant quelques jours.

    Sinon, pour la vie professionnelle, je trouve qu'en méthode agile, Westrum, et aussi dans ce que l'on appelle couramment le développement personnel, les discours de motivation etc. On a souvent ce discours ultra positif sur l'erreur, le droit à l'erreur. Mais ce que je viens de vivre à titre personnel, me fait remettre en question ce discours, et surtout revalorise le travail d'analyse préalable par rapport à ces démarches qui ont plus tendance à favoriser une approche plus directe et à plus courte vue.










Commentaires

Posts les plus consultés de ce blog

Démarrage officiel du projet Felgon : Courage et vérité

Petite progression