Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Actualités


Index du Forum » Actualités » La Revue des Projets - 234
Potter360 Hors ligne Rédacteur Points: 1219 Défis: 2 Message

La Revue des Projets - 234

Posté le 22/01/2023 17:45

Tousse tousse. Y'a quelqu'un ici ? Croa, croa. Hé, ho ! vide. Y'a un panneau au fond, là bas... j'active la LED du mode examen de ma 90+E pour y voir quelque chose... c'est marqué... Archives... Des...RDP ? Ca fait si longtemps que ça ? BOUM ! Woah, l'étagère des programmes publiés depuis la dernière édition... elle existe donc vraiment ! Il y en a tellement qu'il y en a un qui vient de tomber !

Salut à tous ! Comme vous l'avez probablement compris dans cette introduction hum hum subtile et rafinée, ça fait un bail qu'on a pas eu de RDP sur Planète Casio ! Alors, hop, c'est parti, on reprend les bonnes habitudes et on démarre tout de suite avec la 234ème édition ! Au programme :

PicoBASIC - Un interpréteur qui charge le code par tronçons.
Réécriture de la documentation Basic Casio
Un exemple de programme fonctionnant avec Azur : les fractales de Mandelbrot et de Julia
Un Shmup pour nos fx-CG50/Graph 90+E et fx-CG20/Prizm
libMicrofx : Remplacez fxlib pour faire des add-ins très légers.

Commençons sans plus tarder avec un projet qui nous vient de notre labélisateur Mb88, j'ai nommé :

PicoBASIC (Mb88)

... un language de programmation interprété pour nos calculatrices monochromes, qui, selon Mb88 lui même, "permettra aux graphs monochromes d'éxecuter des gros programmes codés on-calc avec une vitesse confortable.".
Sans plus attendre, voici un exemple :

msg@="bigger than zero"
8bit@=0
if 8bit==0
    msg@="is zero"
ifend


Ce code écrit en PicoBASIC sera ensuite décodé par l'interpréteur de Mb88 comme ceci :

msg:0, @=:4, "bigger than zero":3,
8bit:0, @=:4, 0:1,
if:0, 8bit:0, ==:4, 0:1,
msg:0, @=:4, "is zero":3,
ifend:0,

Mb88 a écrit :
Chaque ligne correspond à une instruction. Le tronçon est exécuté caractère par caractère. Dans le log que j'ai mis plus haut, les morceaux sont séparés par des virgules. Les morceaux sont écrits : morceau:type.



Excellent ! Le projet est vraiment cool, et le fait que l'on puisse coder en PicoBASIC on-calc est vraiment un avantage ! En tout cas, Mb88, on te souhaite bon courage pour la suite de ce projet !

Topic du projet : PicoBASIC, un interpreteur qui charge le code par troncons.

Réécriture de la documentation Basic Casio (Thebigbadboy)

Thebigbadboy a entamé une réécriture de la documentation Basic Casio. En effet, selon Thebigbadboy :
Thebigbadboy a écrit :
[...] Le manuel officiel manque cruellement de détails. Que ce soit le nombre d'arguments de certaines fonctions, leur type, s'ils peuvent être littéraux,...
Ce projet a aussi pour but de faciliter la compréhension de nombreuses commandes. Peu de gens se sont aventurés dans le monde des fonctions récursives par exemple.


Ainsi, sur la page Github du projet , il a commencé cette réécriture, et nous fournit même un script separate_commands.sh permettant de "[...]créer une fiche de documentation par commande, dans un fichier portant le nom de celle-ci".

En tout cas, c'est un énorme projet, nécessitant beaucoup de travail, mais qui va vraiment être utile, la documentation officielle étant assez peu précise. Bravo et bon courage Thebigbadboy !
Thebigbadboy nous précise aussi que "Toute aide est la bienvenue, et aussi tout encouragement." ! N'hésitez pas !

Topic du projet : [En cours] Réécriture de la documentation Basic Casio
Dépot Github du projet : T-3B/Basic.Casio_Reference

Un exemple de programme fonctionnant avec Azur : les fractales de Mandelbrot et de Julia (Slyvtt)

Si vous trainez sur #projets ces derniers temps, il n'a pas pu vous échapper que SlyVTT est en cours de dépatouillage avec Azur de Lephenixnoir. Ainsi, il nous présente ce matin un exemple d'add-in montrant les capacités de ce moteur : un add-in générant les fractales de Mandelbrot ansi que celle de Julia.

Slyvtt a écrit :
Ce petit programme passe par les shaders pour tracer les fractales dites de Mandelbrot et de Julia.

Ces deux fractales vérifient pour chacun des points du plan des complexes (l'axe x de l'écran étant assimilé à l'axe des réels et l'axe y de l'écran à l'axe des imaginaires) la convergence (ou non) d'une suite quadratique complexe donnée par Z_(n+1) = Z_(n0)^2 + C.
Le module de calcul de la suite quadratique a été codé par Lephé en ASM, et ça dépote un max !!!


Voici à quoi ça ressemble en pratique :




Magnifique ! Je l'ai testé en "vrai", c'est super fluide ! Bravo pour ce programme en tout cas, ça montre vraiment bien ce que peut faire ce petit bijou d'Azur.

Topic du projet : Exemple de programme fonctionnant avec Azur
Dépot Github du projet : Slyvtt/MandAzur

Un Shmup pour Graph 90+E (Slyvtt)

Continuons avec SlyVTT, qui décidément n'en a pas fini avec Azur. En effet, SlyVTT compte créer un Shmup (ou Shoot Them Up) pour nos chères calculatrices couleurs, en utilisant un Particule Engine créé pour l'occasion, et Azur pour la fluidité.
Il nous en parle dans le topic du projet :

Slyvtt a écrit :
J'en suis aux prémisses car je voulais voir ce que cela pouvait donner sur la CG50, un des problèmes attendus étant la limitation du framerate lorsque l'on doit manipuler de nombreux sprites. Et dans un shmup, des sprites, il y en a à profusion, c'est le moins que l'on puisse dire. Et très clairement, c'est le genre de jeux qui ne supporte pas trop le lag.

Je me suis donc mis en tête de comprendre comment fonctionne (du moins en surface), le moteur de rendu Azur développé par Lephé et que nous avons vu à l'oeuvre dans Afterburner.

Pour le moment nous avons un simple fond étoilé généré aléatoirement et rendu par un Shader ainsi que la possibilité de générer des explosions.



Sly a ajouté ces derniers temps de magnifiques vaisseaux ennemis ainsi que des satellites, qui à termes pourront faire des shoot.
Il nous partage une vidéo, nous expliquant toutefois que l'on ne voit pas très bien les lasers dessus, et qu'en vrai on est autour des 60 FPS :



SlyVTT indique : "Je pense que le développement se fera sur une période assez longue, n'ayant plus le même "temps libre" qu'au moment du développement de Outrun."

Je l'ai testé, ça tourne du feu de dieu ! C'est vraiment ultra propre, et je pense que ça fait du bien de voir ce genre de projet mélant jeu vidéo et défi technique sur le forum ! Franchement, bravo et bonne continuation !

Topic du projet : [WIP] New project - Il est temps d'en parler - Un Shmup pour fx-CG50/Graph 90+E et fx-CG20/Prizm

libMicrofx (Mb88)

Pour ce dernier projet, allons voir une deuxième fois du côté de Mb88, qui nous a récemment parlé de sa libMicrofx. C'est une libraire qui permet de faire des add-in légers, une alternative à fxlib.
Mb88 a écrit :
C'est une petite librairie qui pour l'instant est loin d'être terminée, qui permet de coder des petits add-ins très légers (1,2 Ko minimum avec -Os actuellement et 512 Ko max.).

Ce n'est pas réellement une alternative à gint, car libMicrofx utilise les syscalls et est donc pas très rapide. De plus, c'est une librairie avec le minimum de fonctions pour rester très légère, mais elle contiendra toute les fonctionnalités indispensables pour développer des add-ins et des petits jeux. Elle permet aussi aux habitués du basic casio de faire facilement des portages de leur jeux grâce à des fonctions similaires à celles du basic. Elle est sous la Unlicense pour que tout le monde peut l'utiliser comme il veut !


Génial ! Cette alternative, bien que moins rapide que fxlib, peut être vraiment intéressante pour pas mal de projets.
Une librairie donc très utile ! Merci et bravo Mb88, et bon courage pour la suite !

Topic du projet : libMicrofx : Remplacez fxlib pour faire des add-ins très légers.
Dépot Github du projet : Mibi88/libMicrofx

Et voilà, cette 234ème édition de la RDP est à présent terminée ! On a eu pas mal de projets au programme, des projets variés mais tous de qualité.
Bon courage à tous et n'oubliez pas...
à bientôt, sur Planète Casio !

Depuis la dernière RdP, 17 programmes ont été postés :
S-SHT Tic-Tac-Toe de Calamari
Klondike Solitaire de Calamari
Pong 2p de M.machine
ZyperZetron 2000 de Massena
Hunt the Wumpus de Calamari
Laser Logic de Calamari
Journal FX 92+ de Acrocasio
Journal FX 92+ numéro 2 de Acrocasio
Monocycle de Gky93
Fluid Simulation de Drakalex007
Avis de postulation de Acrocasio
Dis'Time de ELIP4444
PyKaster3D Ctrlv8 de Slyvtt
Mandelbrot de Ena0
Journal FX 92+SC num3. de Acrocasio
Casio Message de Raphoufoulef
Graphique de Mastermokemo

Lire la RdP précédente : La Revue des Projets – 233
Besoin d'aide ? Une idée ? Un projet ? Un article !


Mb88 En ligne Labélisateur Points: 944 Défis: 3 Message

Citer : Posté le 22/01/2023 17:48 | #


Super ! Ça faisait longtemps qu'on avait pas eu une RDP.
J'avais complètement oublié PicoBASIC. Faudrait que j'y recode un peu.
Et PicoBASIC c'est pas un BASIC normal donc tu devrais écrire :
projet est vraiment cool, et le fait que l'on puisse coder entièrement on-calc est vraiment un avantage !

Au lieu de
projet est vraiment cool, et le fait que l'on puisse coder en PicoBASIC on-calc est vraiment un avantage !

Ps : Super intro !
Lephenixnoir En ligne Administrateur Points: 24146 Défis: 170 Message

Citer : Posté le 22/01/2023 17:54 | #


Excellent Potter, merci beaucoup pour la rédaction. On en avait bien besoin !

PicoBASIC c'est marrant et c'est un bonne excuse pour faire des compilateurs, j'aimerais bien en voir plus :3

Pour la fractale je préciserais quand même qu'Azur n'a pas vraiment d'influence sur les perfs, l'immense majorité du temps que ça prend d'afficher une image est occupée par le calcul de la fractale en elle-même. On gagne un peu quand on upscale, à la limite

@Mb88, pour microfx, ça t'intéresserait d'organiser un concours de démos du coup ?
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Mb88 En ligne Labélisateur Points: 944 Défis: 3 Message

Citer : Posté le 22/01/2023 17:55 | #


Oui, bien sûr ce serait cool d'en organiser un. Je suis en train de préparer un tutoriel pour apprendre à utiliser microfx sans avoir à lire les headers .
Et d'ailleurs j'ai oublié de le préciser mais microfx est aussi conçu pour permettre de coder des add-ins en C89.
Slyvtt Hors ligne Maître du Puzzle Points: 2276 Défis: 17 Message

Citer : Posté le 22/01/2023 18:36 | #


Super, merci beaucoup Potter pour cette RDP. C’est effectivement une saveur retrouvée, cela faisait bien longtemps.

Effectivement pour le programme de fractales l’intérêt de Azur et beaucoup plus limité que sur le space shooter car la limite est la puissance de calcul. Néanmoins cela fait un joli exemple de shaders, et puis les fractales, c’est toujours super cool 😎
There are only 10 types of people in the world: Those who understand binary, and those who don't ...
Dj_omnimaga Hors ligne Membre Points: 173 Défis: 0 Message

Citer : Posté le 22/01/2023 20:30 | #


Il semble y avoir un problème de vitesse des vaisseaux ennemis lors d'un overclock ou surtout underclock: La vitesse des ennemis est identique peu importe la vitesse de la calto, alors que ton vaisseau est proportionnel à la vitesse de la calto. Lors d'overclock assez élevés ça rend le jeu particulièrement facile. :P
Slyvtt Hors ligne Maître du Puzzle Points: 2276 Défis: 17 Message

Citer : Posté le 22/01/2023 20:37 | #


Yep, la vitesse des vaisseaux ennemis est calée par la vitesse et le Dt réel entre deux frames, donc insensible à l'overclock. Pour le joueur ce n'est pas le cas, c'est juste un incrément en pixels par frame (sans tenir compte du temps mis pour faire la frame). Effectivement c'est un peu idiot de ne pas faire pareil, je vais corriger

Merci pour le retour, ça permet de voir ce genre de paramètrages/bugs.
There are only 10 types of people in the world: Those who understand binary, and those who don't ...
Massena Hors ligne Ancien rédacteur Points: 2219 Défis: 11 Message

Citer : Posté le 22/01/2023 22:51 | #


Merci de t'être occupé de la RdP. Elle est bien remplie
Je suis hype pour le shmup. On a pas encore eu de jeux de ce genre sur Graph 90+E, et nulle doute qu'Azur permettra de faire des belles choses
Maintenant que j'y pense, tu penses garder l'écran horizontal ? Pour afficher des ennemis qui arrivent c'est pas très pratique, surtout que le vaisseau tire vers l'avant.
Slyvtt Hors ligne Maître du Puzzle Points: 2276 Défis: 17 Message

Citer : Posté le 22/01/2023 23:33 | #


En fait je suis pas encore 100% sûr de l’orientation finale. Je penche un peu plus pour le top down comme actuellement mais je peux facilement changer, le moteur du jeu est complet et gère les deux cas (au lieu de mettre des vecteurs vitesse en y, il suffit de les mettre en x).

Disons que les shmup gauche-droite ont plutôt des sprites vus de côté plutôt que vus de dessus. Et j’ai pas forcément trouvé des ressources en vue latérale... mais mis à part ce point, c’est kif-kif ...

C’est comme vous voulez en fait, dites moi. Ou on peut faire différemment selon les niveaux. Tout est envisageable.

Par contre je pense diminuer d’une chouille la taille des sprites des vaisseau car c’est ils sont trop gros pour cette orientation...
There are only 10 types of people in the world: Those who understand binary, and those who don't ...
Massena Hors ligne Ancien rédacteur Points: 2219 Défis: 11 Message

Citer : Posté le 23/01/2023 11:36 | #


Je pense que ça ne sera pas gênant. Soit tu peux demander de jouer avec la calto tournée à la manière de Duet, pour avoir une verticalité, soit tu pars sur du scolling horizontal en conservant la Graph 90+E avec une rotation normale. Dans les deux cas je pense que conserver des sprites vus de dessus ne sera absolument pas un souci
Lephenixnoir En ligne Administrateur Points: 24146 Défis: 170 Message

Citer : Posté le 23/01/2023 11:51 | #


Yes je suis d'accord qu'actuellement c'est un peu gros. Les sprites vu de dessus en horizontal ça ne me surprendrait pas perso.
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Slyvtt Hors ligne Maître du Puzzle Points: 2276 Défis: 17 Message

Citer : Posté le 23/01/2023 13:03 | #


Je ferai une version horizontale que l'on pourra tester pour se faire une idée, ça devrait pas prendre trop de temps, juste inverser les paramètres en X et en Y, logiquement mon code est assez propre/générique pour que l'effort soit vraiment minimal.

Par contre le retournement de la calculatrice, perso j'ai vraiment du mal

(Note pour plus tard (ou pas ) : en horizontal, on devrait avoir un gain potentiel à rechercher du fait qu'on se posera pas tout le temps la question de savoir si on commute de fragment pour tous les éléments qui restent bien en trajectoire horizontale (du genre le StarField en fond, ou les tiles de décor, pas encore implémenté). A réfléchir si besoin, mais là ça risque par contre de rendre le moteur moins open, donc à utiliser en dernier recours)
There are only 10 types of people in the world: Those who understand binary, and those who don't ...
Acrocasio Hors ligne Membre Points: 973 Défis: 0 Message

Citer : Posté le 25/01/2023 10:30 | #


Salut, @Potter360, tu peux aussi ajouter Shumps de Sly aussi (je pense).

Le topic

La Beta

Mais je pense qu'il serait mieux de demander confirmation à SlyVTT, histoite d'être sûr et que ce soit officiel

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 110 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

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