La Revue des Projets – 116
Posté le 05/08/2018 18:00
Il fait chaud. Vous transpirez sur votre siège. Votre ordinateur peine à refroidir sa carte mère. Vous avez soif. Vous avez aussi la flemme d'aller vous chercher une bouteille d'eau. Vous ne sortez plus. Elle est là, elle nous attend tous. La canicule est à nos portes ! Alors que l’infamie frappe à nos portes et à nos volets, quelques courageux individus poursuivent leur quête sous la chaleur accablante de l'été. Ils sont quatre. Massena montre de grandes avancées sur Evocalc, Zezombye fait une démonstration de compétence avec son MicroPython, Lephenixnoir nous réserve une surprise et moi-même m'apprête à vous mettre l'eau à la bouche.
Sans attendre davantage, voyons les merveilleux projets que porte cette RDP ! Vous savez, c'est aussi la saison des mirabelles et des melons ; alors voyons voir si ces fruits sont mûrs...
Nous commençons avec
Massena et son superbe projet
Evocalc ! Vous en avez peut-être déjà entendu parler dans la
RDP–113, il s'agit d'un jeu qui s'appuie sur le principe d'
Evoland, un jeu retraçant l'histoire et l'évolution du jeu vidéo dans ses graphismes et son gameplay. Evocalc retracerait donc un ensemble de techniques utilisées pour faire des jeux, du plus élémentaire au plus poussé ! Je vous laisse contempler ce que Massena a à nous montrer.
Massena a écrit :Bonjour à tous !
♥
Comme j'ai fait joujou avec les graphismes de la calto
et avec BIDE aussi, au grand daim de ma calculatrice... Je vous fais part de certaines images, comme ça. Gratuitement.
Commençons par la première :
Bon, là vous voyez l'écran d’accueil, fait avec le TDM n°1
J'ai mis une heure à le faire, et j'en suis plutôt fier.
Là, vous voyez la map rétrécie pour qu'on voie tous les éléments.
La map sera constituée de 6 pictures assemblées en 3x2.
Je ne gère pas encore le moteur de collision...
Étrange, un deuxième cadre s'est mis là.
Là, un bout de map tel que vous le verrez sur la calto.
On voit le château et la chaîne de montagne en arrière-plan.
J'ai aussi bossé sur le jeu textuel. C'est basé sur une aventure dont vous êtes le héros, et je viens de la terminer. Il y a 50 paragraphes, c'est peu, mais vous oubliez que je suis un sadique
. La difficulté va être rehaussée !
Bon, voilà, j'ai vidé mon chapeau.
La semaine prochaine, je vous partagerai la map en entier, si je la finis.
Bon, salut, et à la semaine prochaine !
Je dois dire que – pardonnez ma familiarité – j'étais sur le cul lorsque j'ai vu ces graphismes ! Je me doutais que Massena pouvait faire de beaux jeux, mais à ce point... ! Je suis également heureux que
le premier TDM ait été utile à quelqu'un !
À présent, poursuivons notre récolte. C'est au tour de
Zezombye, qui nous fait part de ses avancées sur son port de
MicroPython pour calculatrices monochromes. C'est un projet assez complexe qui nous permettra, bientôt, de coder en python sur une calculatrice monochrome ! Alors, Zezombye ? Les fruits sont-ils beaux ?
Zezombye a écrit :Pour le MicroPython, j'avance pour l'instant assez vite :
- Le shell fonctionne, je peux exécuter des commandes basiques (genre print) mais il faut que j'écrive les fonctions manquantes de la libc nécessaires pour compiler les features manquantes (les flottants, math, urandom...)
Aussi, pour une raison que je ne connais pas, la fonction input() ne marche pas, j'arrive pourtant à faire "import sys" :
Après il restera juste du graphique (gérer le retour arrière dans le shell par exemple).
Au niveau de l'éditeur, je suis sur un fork de Edit (
https://www.planet-casio.com/Fr/programmes/voir_un_programme_casio.php?showid=2186&page=2 ) et pour l'instant le plus dur est de modifier le code pour ne pas faire de retour à la ligne du tout.
J'ai presque fini, il me reste juste quelques bugs au niveau du copier/coller et de la suppression après le curseur.
(j'ai bien galéré pour avoir ce gif
)
Edit : Un .mp4 n'est pas un gif ; j'ai fait la conversion. – Drak
Ensuite, il restera juste le catalogue, les fonctions rapides (avec les touches F1-F6), gérer les touches, et linker l'éditeur et le shell.
Toute aide pour le projet est la bienvenue (merci à Lephenixnoir qui m'a bien aidé
) !
J'imagine qu'il nous faudra bientôt des tutoriels sur le python ! En tous les cas, je tire mon chapeau : faire un port de MicroPython sur des calculatrices monochromes, c'est pas de la tarte. Un grand bravo à toi, ZZ-top ! On t'encourage !
La suite avec mon propre projet de RPG en Basic Casio. Ce dernier continue de s'appeler
Aventura, Le Royaume Poudingue, mais pourrait changer de nom bientôt. Cette fois, je viens avec l'artillerie lourde :
Drak a écrit :Hey tout le monde !
C'est encore moi – je vous apporte des nouvelles concernant mon projet de RPG ! Et je peux vous dire qu'elles sont plutôt encourageantes. Jusque là, je m'occupais du code, du code, du code, et encore du code.
À présent, j'en suis arrivé à un point où l'ensemble de la structure du jeu (le moteur de jeu, pourrait-on dire) est presque complet. Il ne me reste plus que quelques petits détails à implémenter à droite à gauche. Le système de Map est complètement fonctionnel, le moteur de dialogue aussi, le moteur de combat l'est également, le joueur peut sauvegarder, regarder ses caractéristiques, regarder le carte (qui ressemble à rien pour le moment), changer d'étage, etc. Bref, presque tout fonctionne. Presque ? Oui, presque. Il ne me manque plus que ces quelques détails à ajouter au jeu :
– Possibilité de choisir le skin de son personnage
– Possibilité de changer des tiles de place avec une avancée de quête (easy)
– Gérer les différentes zones (Indiquer le nom de la forêt, du donjon, etc.) en changeant les monstres que le joueur peut rencontrer.
– Peaufiner le système de sauvegarde
– Et c'est tout !
J'ai également renforcé la compression des chaînes de caractère qui contiennent les map. J'ai calculé un gain de place d'approximativement
15% sur un ensemble de map !
Mais ce n'est pas tout ! J'ai aussi pris le temps – que dis-je ? Le luxe ! – de me programmer deux outils complémentaires pour créer mes map super facilement ! Vous le savez peut-être déjà si vous suivez de prêt le projet, mais mon système de sauvegarde de map est complexe et rend le level design compliqué sans outil approprié. Pour vous donner une idée, voici à quoi ressemble le code compressé d'une salle de donjon :
θ*4Z*6→44→34﹣﹣006{2→6﹣Y04→8﹣→3f00e(100*6Z{1*5
Et son code décompressé :
θ﹣﹣﹣﹣Z﹣﹣﹣﹣﹣﹣000040004﹣﹣006{2000000﹣Y0400000000﹣000f00e(100﹣﹣﹣﹣﹣﹣Z{1﹣﹣﹣﹣﹣
Assez hard de faire plus d'une centaine de map, voire une deux-centaine, si vous voulez mon avis. Alors voici : je vous présente le
Générateur de Map ainsi que l'
Éditeur de Mappemonde !
Le Générateur de Map, semblable au logiciel Tile dans son fonctionnement.
L'Éditeur de Mappemonde, qui sert à avoir un aperçu d'ensemble et à générer le code.
Je suis moi-même surpris d'être arrivé aussi loin dans ce projet. À partir de maintenant, je n'ai plus le choix : je ne peux que finir ce projet de jeu ! Par ailleurs, les deux outils que j'ai programmé ne sont disponibles ni sur le site, ni sur le dépôt Git. Je suis encore en train d'y apporter un bon nombre de petites rectifications. Une fois que ce sera bon, je les mettrai sur
le Git du projet.
Et enfin, mais pas des moindres... Un article de notre administrateur adoré, j'ai nommé
Lephenixnoir, qui arrive en retard ! Je lui laisse le micro pour parler de
Gint, son fabuleux projet.
Lephenixnoir a écrit :Bonsoir Planète Casio ! C'est un honneur de vous retrouver dans cette Revue des Projets.
Comme je ne me lasse pas de programmer ce puits sans fond que j'appelle gint, j'avance sur mon portage Graph 90+E doublé d'une réécriture avec optimisation. Récemment, j'ai réussi plusieurs choses très cool :
- Porter mon driver pour les timers matériels, précis à ~100 ns contre 25 ms pour SetTimer() ; et en écrire un driver pour les timers ajoutés par Casio, précis à ~ 30 µs. Il y a un seul timer ajouté sur SH3, mais 6 sur SH4 et en particulier sur Graph 90 !
Pour ça j'ai bien galéré, des subtilités d'optimisation de compilateur aux différences comportementales (non documentées) entre les deux types de timers, en passant par ce que je considère comme un bug hardware. Mais voilà, ça marche et c'est une bonne chose !
Car ces timers sont utiles pour mesurer les perfs de tout plein de trucs. Par exemple :
- J'ai écrit la version normalement finale du gestionnaire d'interruptions : l'ancien pouvait traiter jusqu'à 180'000 interruptions par seconde, mais celui-ci peut monter jusqu'à 320'000 !
- Et puis j'ai porté le driver pour la RTC, l'horloge de la calculatrice.
Là je suis en train de me pencher sur les horloges, notamment l'overclock et la fréquence de tout ce qui oscille dans la calculatrice. Mes timers sont pas hyper précis pour l'instant, c'est pas très grave mais je vais voir si ça peut s'améliorer.
Tout ce que je vous raconte là marche sur
SH3, SH4 et Graph 90 avec le même code, c'est très intéressant à développer ! La prochaine fois j'espère vous parler d'overclock et de dessins : ou bien des trucs jolis sur la Graph 90, ou bien des trucs fulgurants sur la monochrome.
À la prochaine !
Que de performances ! Je m'impatiente à l'idée de voir ce que Lephenixnoir nous réserve pour la suite !
C'est avec quatre articles que je boucle cette Revue Des Projets, ce qui est tout de même honorable ! Je tiens à vous rappeler, chers lect·eur·rice·s, que c'est avec vos projets que Planète Casio s'anime ! Alors, si vous aussi vous avez quelque chose à partager, n'hésitez pas !
Et, comme toujours...
Stay tuned!
Cette semaine, 4 programmes ont été postés : Penalty game de
Manolo. « c'est un jeu de penalty, c'est tout... », nous dit son concepteur ! Un jeu conçu pour les Graph 90+E.
Essai, un Add-in pour CG75/85/95, ou encore 35+ tweakée. Il s'agit du tout premier jeu de
Shadow15510 en C : déplacez votre personnage dans un sympathique décor.
Données pro, un utilitaire de
Vanonym pour CG90+E, permettant de « stocker de manière sécurisé jusqu'à 333 données sur votre calculatrice. »
Citer : Posté le 05/08/2018 18:07 | #
Alors là... je suis sur le cul, pour de vrai ! Les graphismes de Massena sont sublimes. Le shell de Zezombye est un très bel accomplissement technique. Et ton outil me donne envie de faire des maps, Drak. *-*
C'est pour voir ça que la Revue des Projets a été créée !
Citer : Posté le 05/08/2018 18:56 | #
Encore une RdP qui apporte la bonne humeur !
Je vais finir par me doper avec ces articles mon precieuuuuux
@Drak ! My God ! J'espère que ton jeu est à la hauteur, je m'attend à un jeu mieux Que Zelda-PC ! J'ai hâte de le tester !
Pourrons-nous tous se servir de ton générateur ? Ça pourrait être sympa...
@Shadow Euuuuh j'epère que ce sont des détails parce que je n'ai pas compris grand chose
La semaine prochaine, je publierais la map temporaire telle que vous la verrez dans le jeu !
Je vous rappelle que le scénario du chapitre 1 va vous faire souffrir !
Citer : Posté le 05/08/2018 19:38 | #
@Massena : je ferai en sorte qu'il puisse être utilisable par d'autres, mais il ne faut oublier qu'il a été spécifiquement conçu pour mon moteur de jeu. À dire vrai, j'ai toujours voulu « faire mieux » que Zelda-PC de Remiweb C'est un peu mon modèle en matière de Basic Casio.
@Lephenixnoir : N'est-ce pas ? Franchement, l'écran titre de Massena dépote !
Citer : Posté le 05/08/2018 20:14 | #
Ça m'a fallu 1 heure sur Windows XP, quatre essais sur calculatrice et 10 minutes de ban mais bon, ça vaut la peine xD
Citer : Posté le 05/08/2018 20:22 | #
Non, c'était un kick, pas un ban
Citer : Posté le 05/08/2018 20:24 | #
Citer : Posté le 06/08/2018 07:23 | #
Ah tiens, j'avais pas vu le GÉNÉRER LE PUTAIN DE CODE dans l'outil de Drak :')
Citer : Posté le 06/08/2018 11:48 | #
Disons que je m'étais un peu pris la tête avec le script qu'il y a derrière ce bouton
Citer : Posté le 09/08/2018 19:04 | #
Je n'ai pas tout compris Massena... "Essai" n'est pas vraiment un jeu c'est juste un... essai !