Bonsoir à tous, et bienvenue dans cette revue des projets qui s'annonce fascinante quoi qu'un poil technique. SlyVTT vient d'achever nombre de ports de bibliothèques utiles, et on va voir ensemble de quoi il retourne. Mais avant ça, on attaque doucement avec le jeu de la semaine !
On commence donc avec un platformer. Il faut remonter au CPC #28 pour trouver Frozen Frenzy, la participation de Massena qui avait remporté le concours. Un jeu très solide mais apparemment pas assez pour Massena, qui veut maintenant le détrôner avec un successeur encore meilleur.
Quelques images et informations tombaient par miettes sur #projets depuis quelques temps, mais on a cette semaine un topic concret, et même une version jouable avec un niveau de test, ci-dessous en vidéo !
Il suffit de jouer quelques secondes pour sentir qu'on a bien plus de contrôle sur δ que dans le premier opus (pour mon plus grand plaisir). Et le programme met l'eau à la bouche :
Massena a écrit :
Des graphismes et des environnements urbains et industriels entièrement conçus par mes soins.
Un gameplay travaillé, qui se veut plus précis, flexible et simple d'accès que le premier.
Une grande variété de pièges, mécaniques centrées autour du feu et de la glace, ainsi que différents objectifs de niveaux (tout geler, mais aussi fuir, s'infiltrer, aller chercher un pancake et revenir...)
Un level design intelligent où s'entremêlent voies simples d'accès et passages hardus mais récompensant les speedrunners.
Un système à la Celeste/Super Meat Boy avec des niveaux optionnels plus complexes et remplis de pics !
Une mini bande-dessinée dont chaque fragment est dévoilé en début de chapitre, racontant l'odyssée de δ.
On le suivra attentivement !
Bibliothèques SDL, SDL_image, libPNG, libJPEG et zlib (SlyVTT)
SlyVTT a récemment porté beaucoup de bibliothèques pour la PRIZM et Graph 90+E. Ces bibliothèques permettent trois choses : utiliser la SDL sur Graph 90+E, charger des images PNG/JPG, et enfin compresser des données dans un add-in.
Le port de la SDL permet d'écrire des programmes avec l'API SDL 1.2 (l'ancienne) sur Graph 90+E, avec l'avantage majeur que plein de gens connaissent cette API et que les programmes écrits ainsi peuvent être compilés trivialement pour l'ordinateur en plus de la Graph 90+E.
Par exemple, voici un Tetris écrit par SlyVTT pour TI-Nspire avec la SDL 1.2, qui marche nickel sur notre machine CASIO (SDLTetris.g3a):
Ce port supporte le module vidéo (seulement en 396x224 16-bit), les timers, le clavier, ainsi que les fichiers (modulo les world switch qui vont bien dans gint). En gros il supporte tout ce qui est utilisé couramment.
Sauf peut-être que la SDL toute seule ne sait charger que des images BMP, qui sont un peu nulles. D'où la suite ; SlyVTT a aussi porté la bibliothèque SDL_image qui permet d'utiliser plein d'autres formats, dont PNG, JPG, et PNM.
Mais quitte à supporter les fichiers PNG et JPG (ainsi que la méthode de compression/décompression des PNG), SlyVTT nous fournit au passage de quoi les utiliser hors de la SDL, via un port de la libPNG et un port de la libJPEG9d (pas encore de topic à ce jour, mais ça vient).
Grâce à ces outils, il est possible d'utiliser des images PNG et JPG dans un add-in sans les pré-convertir comme on le fait par exemple avec fxconv. Il est possible de les charger depuis la mémoire de stockage, ce qui offre beaucoup d'opportunités pour des packs de textures et autres options de customisation.
Mais ce n'est pas tout ! En effet, le format PNG utilise sur une méthode de compression générique qui est implémentée par zlib. Puisque SlyVTT a porté zlib pour avoir libPNG, il nous montre aussi comment utiliser zlib tout seul dans un add-in, pour compresser des données et des fichiers. Les résultats sont assez parlants, car il y a pas mal de choses qu'on peut compresser :
Nul doute que cela aiderait à alléger les add-ins et les terribles temps de transfert.
Si vous êtes perdus, voici un résumé des bibliothèques. Chaque sous-liste représente une dépendance (par exemple SDL_image utilise libPNG qui utilise zlib) :
SDL 1.2 : une lib classique pour programmer applications et jeux
SDL_image : une extension SDL pour charger des images
libPNG : implémentation de référence du format PNG
zlib : outil de compression de fichiers (notamment utilisé par PNG
libJPEG : implémentation de référence du format JPG
Sinon, n'hésitez pas à demander des précisions !
C'est tout pour cette fois. La semaine prochaine ce sera probablement un Press Shift, auquel cas on se retrouve dans deux semaines.
Sympa le nouveau format, c'est effectiverment plus organisé et plus aéré. Bien joué.
Bonne chance SlyVTT, j'ai le sentiment que ça va permettre de faire des trucs pétés
Content que ça te plaise. L'idée principale c'est de faire les titres un peu "mastoc" avec tous les liens dedans, à la fois pour bien connecter les sujets/programmes/builds liés et pour distinguer visuellement chaque partie. Le reste c'est une reprise du style léger de quand on a introduit le @ RDP, plus efficace à mon avis que de citer en bloc.
Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd
Citer : Posté le 08/05/2022 19:21 | #
Bravo Slyvtt pour ton travail, je pense que l'on est entrain de revoir complètement la façon de coder les addins
Citer : Posté le 08/05/2022 21:33 | #
Merci -florian66-
Citer : Posté le 08/05/2022 23:00 | #
Sympa le nouveau format, c'est effectiverment plus organisé et plus aéré. Bien joué.
Bonne chance SlyVTT, j'ai le sentiment que ça va permettre de faire des trucs pétés
Citer : Posté le 08/05/2022 23:47 | #
Content que ça te plaise. L'idée principale c'est de faire les titres un peu "mastoc" avec tous les liens dedans, à la fois pour bien connecter les sujets/programmes/builds liés et pour distinguer visuellement chaque partie. Le reste c'est une reprise du style léger de quand on a introduit le @ RDP, plus efficace à mon avis que de citer en bloc.
Citer : Posté le 10/05/2022 12:08 | #
Mdr je viens seulement de remarquer la beauté de la thumbnail de cette RdP
Merci pour l'article