[C/gint] SuperCasioBros v0.5
Posté le 24/11/2019 17:47
Bonjour à tous

Voici mon nouveau projet de programmation :
"Super Casio Bros"
Présentation
Cet addin est un remake de
Super Mario Bros. pour les calculatrices monochromes. J'ai commencé à créer ce jeu en raison l'absence de ce titre mythique dans la liste des programmes et le voici, il est encore en beta, mais plus des trois quarts des mécaniques de base sont présentes.
Timeline
Voici ci-joint des images et des explications concernant l'avancement du projet. N'hésitez pas a faire des remarques

!
RdP 169
Cliquez pour recouvrir
RdP 169 (commentaires)
Cliquez pour recouvrir

Ici j'ai ajouté le fond des niveaux, la texture de la roche, et la possibilité de mettre en pause le jeu (mais ça vous ne le voyez pas

)
image du 30 novembre 2019
Cliquez pour recouvrir

Ajout des compteurs(pièces, score, vies, temps) fonctionnels.
Image du 4 décembre 2019
Cliquez pour recouvrir

Ajout des goombas, cadeaux et des briques fonctionnelles.
Image du 12 janvier 2020
Cliquer pour enrouler
Image du 12 janvier 2020. (RdP 173)
J'ai également affiné les spécifications techniques :
Le jeu devrait comprendre 5 mondes, dont 4 de 8 niveaux et un de 5 niveaux. Il y aura un système de sauvegarde, et les mondes se débloqueront un par un : Pour déverrouiller le monde suivant il faudra réussir à finir le monde d'une traite. En plus de ce mode, vous pourrez explorer indépendamment chaque niveau afin de les "travailler" pour ensuite déverrouiller le monde suivant.
Dernière update pré covid
Cliquez pour recouvrir

Image du 15/02/2020 (J'utilise l'émulateur, c'est plus propre maintenant non ?

)
+Changements mineurs dans la version temps réel :

scrolling de la caméra plus fluide,

ajout des plateformes a mouvement horizontal

correction du bug du "wall jump" découvert par Kikoodx (le grand mario pouvait grimper les murs)
Update du 4 mars 2025:
Je ressors ce projet des limbes, parce que j'ai eu du temps récemment pour m'y repencher. À l'heure où je parle, les changements sont seulement sur
dev
Les principaux changements jusqu'à présent :
- J'ai adapté le code pour la version 2.11 de gint, ce qui permet de compiler une version g3a monochrome (non testée)
- Beaucoup de nettoyage de code (et c'est pas fini)
- J'ai fix un bug de fuite de mémoire en nettoyant le code (sympa les outils clang

)
- J'ai enlevé certains assets que je pense finalement pas utiliser, pour un gain d'environ 5ko sur le binaire (il y a encore pas mal de gains possibles assez faciles à implémenter.
- En passant à de nouvelles fonctions de gint j'ai introduit des bugs d'affichage au niveau du texte dans les menus, faut que je fixe ça (j'ai pas forcément lu les spec avant

)
Niveau perf j'ai pas testé grand chose, à part que je peux underclock le cpu à 1/8e de sa vitesse normale (29MHz) sans avoir de problème de perf. A 1/16 (13MHz) la durée de calcul moteur-physique + frame dépasse le temps maximum donc le jeu tourne plus lentement que la vitesse normale. Ça me donne un encadrement du nombre de cycles utilisés par frame, ça veut dire que c'est large et ça ne m'inquiète pas trop pour un build CG dans le futur
Quelques choses que j'aimerais bien faire
- Séparer le moteur physique du rendu, pour le faire tourner à une fréquence + élevée : Ca permettrait d'ajuster la fréquence de rendu sur CG pour à terme avoir un framerate + élevé que 20 fps, et aussi d'avoir une résolution du moteur physique qui va dans les sub pixels.
- Une version CG en couleur (viendrait après une refactorisation du moteur physique). ça me parait pas être trop dur niveau perf, et ça serait classe. Par contre j'ai pas le matériel, je testerai probablement seulement sur émulateur.
Voila voila, je fais pas trop de garanties pour l'instant, sachant que faire des niveaux c'est pas ce qui m'interesse le plus, et que j'aimerais changer le moteur physique avant d'ajouter du nouveau contenu. Mais je vais essayer d'y donner un peu de temps
Crédits
Le script de conversion de niveaux (image->code) est écrit en python
Le moteur de jeu est codé en C sous atom et est compilé avec gcc
Les graphismes ont été réalisés sous gimp.
Merci à
Lephenixnoir pour le travail énorme fait sur le
fxsdk et
gint
Merci également à GoldenKoble pour une partie des graphismes.
Citer : Posté le 22/02/2020 19:37 | #
Le compteur time_id est incrémenté 20 fois par seconde et le compteur descend une fois tous les 8 ticks
Citer : Posté le 23/02/2020 16:16 | #
Hmm ouais, j'ai pas ce problème sur calto, peu importe combien de fois je lance le truc.
Citer : Posté le 24/02/2020 07:26 | #
Yes! This is bug is probably seems disappeared even I made tricky movements (dies while timer just right countdown)
Well done, Milang!!
Btw, what's the difference between with and without "static"?
Citer : Posté le 24/02/2020 07:33 | #
In this case (global variable outside of a function) it hides the variable from the other files, making sure that (1) no other file can use it, even if they extern-declare it, and (2) its name does not clash even if it used as the name for another global or static-global variable.
Citer : Posté le 13/03/2020 13:33 | #
Je me suis replongé dans mon code, donc ça a pas mal avancé:
Avec ces vacances qui arrivent, je vais avoir le temps d'avancer un peu plus vite, donc le monde 1 sera bientôt complètement créé
Citer : Posté le 11/11/2020 11:10 | #
j'attend la mise a jour avec joie, mais le projet est a l’abandon
Citer : Posté le 11/11/2020 14:17 | #
Salut Pedrobzh,
en soit le projet n'est pas à l'abandon, je compte toujours le finir, c'est juste que je suis très peu, voire inactif ces derniers temps (faute de temps pour programmer cette année prépa oblige) Pour l'instant je suis en train de mettre mon code à jour avec la dernière version de gint (c'est fou ce qui a changé ces derniers mois), et vu que la partie moteur physique est stable, il ne me restera en principe qu'à ajouter la gestion des sauvegardes, maintenant que gint a l'air d'être mûr là dessus.
Je reposterai lorsque j'aurai fini de mettre à jour le jeu avec gint et que j'aurai ajouté le système de sauvegardes
Citer : Posté le 26/04/2021 13:59 | #
vu l'inactivité du projet je vais le reprendre personnellement (et je vais mettre le moteur 4 couleurs)
lc Invité
Citer : Posté le 10/09/2021 15:23 | #
du coup c'est normal d'être coincé au niveau 3?
Citer : Posté le 16/10/2022 13:08 | #
Salut !
Je suis un nouveau sur Planète Casio et j'aimerai télécharger supercasiobros sur ma Graph 35+eII. Le problème, c'est que je n'ai à ma disposition que le code source du jeu et je ne sais pas comment le compiler pour avoir un fichier que ma calculatrice peut reconnaître
Merci d'avance pour votre réponse et bonne journée !
Citer : Posté le 16/10/2022 13:38 | #
Salut ! Le compiler c'est un peu dur mais si tu regardes le dépôt juste à la racine il y a SuperCbr.g1a que tu peux télécharger directement
Citer : Posté le 16/10/2022 13:40 | #
Ah oui merci !
Citer : Posté le 04/03/2025 13:59 | #
Salut !
Je ressors ce projet des limbes, parce que j'ai eu du temps récemment pour m'y repencher. À l'heure où je parle, les changements sont seulement sur dev
Les principaux changements jusqu'à présent :
- J'ai adapté le code pour la version 2.11 de gint, ce qui permet de compiler une version g3a monochrome (non testée)
- Beaucoup de nettoyage de code (et c'est pas fini)
- J'ai fix un bug de fuite de mémoire en nettoyant le code (sympa les outils clang
- J'ai enlevé certains assets que je pense finalement pas utiliser, pour un gain d'environ 5ko sur le binaire (il y a encore pas mal de gains possibles assez faciles à implémenter.
- En passant à de nouvelles fonctions de gint j'ai introduit des bugs d'affichage au niveau du texte dans les menus, faut que je fixe ça (j'ai pas forcément lu les spec avant
Niveau perf j'ai pas testé grand chose, à part que je peux underclock le cpu à 1/8e de sa vitesse normale (29MHz) sans avoir de problème de perf. A 1/16 (13MHz) la durée de calcul moteur-physique + frame dépasse le temps maximum donc le jeu tourne plus lentement que la vitesse normale. Ca me donne un encadrement du nombre de cycles utilisés par frame, ça veut dire que c'est large et ça m'inquiète pas trop pour un build CG dans le futur
Quelques choses que j'aimerais bien faire
- Séparer le moteur physique du rendu, pour le faire tourner à une fréquence + élevée : Ca permettrait d'ajuster la fréquence de rendu sur CG pour à terme avoir un framerate + élevé que 20 fps, et aussi d'avoir une résolution du moteur physique qui va dans les sub pixels.
- Une version CG en couleur (viendrait après une refactorisation du moteur physique). ça me parait pas être trop dur niveau perf, et ça serait classe. Par contre j'ai pas le matériel, je testerai probablement seulement sur émulateur.
Voila voila, je fais pas trop de garanties pour l'instant, sachant que faire des niveaux c'est pas ce qui m'interesse le plus, et que j'aimerais changer le moteur physique avant d'ajouter du nouveau contenu. Mais je vais essayer d'y donner un peu de temps