Précipitations

 


    Précipitations, un mot qui colle bien avec ces premiers jours d'automne, qui m'apportent cette fraicheur tant attendue ! Mais de la même façon que par un curieux hasard de la langue française, ce même mot désigne aussi et d'ailleurs de manière encore plus courante, une grande hâte parfois excessive. 

    Dans mon dernier billet sur ce blog, je vous parlais de mes essais sur ma fonction du moteur, permettant sur un tableau particulier, de lui faire charger un petit programme basic pour doter un tableau de quelques instructions de basic supplémentaires pour apporter par exemple, une rotation de palette, une animation de quelques sprites, ou un petit effet visuel simple. Je vous disais que mes premiers essais étaient encourageants.

    Puis malheureusement, 5 jours après, je postais un commentaire indiquant que j'avais échoué à faire fonctionner ce "débranchement" et que je comprenais rien à ce qui se passait. J'avais pourtant tenté de tracer à coup de print avec des end pour diagnostiquer au plus près ce qui se passait mais c'était incompréhensible ! J'ai même essayé avec l'émulateur ACE DL et son Basic Explorer, pour suivre toutes les variables, mais je ne comprenais pas mieux. Et comme je l'indiquais dans mon commentaire, quand on ne comprends rien à ce que fait l'interpréteur basic, au bout d'un moment, on peut légitimement penser qu'il s'agit encore une fois d'un problème de mémoire !

    C'est franchement frustrant, et c'était pourtant prévisible ! En effet, mon mini scénario que j'avais fait pour tester le débranchement, intégrait un tableau avec 7.5 kio de données au format CSV. Or précédemment, nous avions vu que c'était la limite maximale que le moteur pouvait gérer sans saturer ! Et donc, lorsqu'en chargeant ce fichier, je lui demande en plus de faire un chain merge vers un fichier basic, l'interpréteur sature et au lieu de me faire une erreur propre, il bugue !

    J'ai finalement pris un peu plus de temps, pour refaire un test avec 3 tableaux utilisant des fichiers CSV de seulement 1 kio et là, ça passe, mon débranchement se fait correctement. Et je peux même ensuite enchainer vers un nouveau tableau sans débranchement vers un programme basic, et s'appuyant uniquement sur le moteur du jeu et les données CSV.

    A présent, il me faudrait établir une limite plus claire pour cette utilisation d'un fichier externe basic, quelle taille de fichier basic je peux utiliser, pour quelle taille de fichier CSV. Faut-il simplement faire une addition et rester en dessous de 7.5 kio ? Est-ce un calcul plus complexe ? Il me faudra encore un peu plus de tatonnements pour trouver une bonne approche. Mais la bonne nouvelle c'est quelle que soit la difficulté, mon moteur reste assez souple pour me permettre de mettre en place des contournements. Je peux donc avoir plusieurs fichiers CSV pour une même image affichée, et au contraire avoir plusieurs images gérées via un seul fichier CSV.

    Le seul truc embêtant dans tout ça, c'est l'incroyable quantité de mémoire utilisée alors que mon moteur ne fait que 9 kio, que mes données CSV ne font donc que 7.5 kio, les images que j'afffiche en pèse 6 et 2, et que j'utilise moins de 2 kio pour des routines en assembleur ! Donc au total, bout à bout ça ne représente que 26 kio sur les environs 40 offerts par le basic, j'aurai du être large sur la mémoire et au final non ! 

    Il est clair que si je dois refaire un autre jeu du même style, je réfléchirais à faire une autre gestion avec des données binaires et beaucoup moins de choses gérées par le basic et qui en tout cas le seront avec des variables à l'espace mémoire figé dès le démarrage !

    Mais on n'en n'est pas là, il ne faut pas se précipiter vers un nouveau jeu avant d'avoir terminé celui-ci, et il ne faut pas faire d'annonce précipitée ! Hier encore d'ailleurs, j'annonçais à LZamu que je pensais que ça serait fichu pour les animations en cours de jeu sur les écrans et donc à présent, je me dis que c'est finalement peut être possible avec certaines contraintes. En tout cas, j'espère qu'au moins on pourra faire des choses sur la palette pour limiter le nombre d'écrans sur les disques et faire au moins de petits effets sympas.


Commentaires

Posts les plus consultés de ce blog

Crocofest 2025 : Manque de préparation !

La réponse à presque tout !