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 - Projets de programmation


Index du Forum » Projets de programmation » [C/gint] Jeu de plateforme sans nom
Kikoodx Hors ligne Ancien labélisateur Points: 3039 Défis: 11 Message

[C/gint] Jeu de plateforme sans nom

Posté le 13/02/2020 15:01

Salut ! Depuis 3/4 jours, je m'amuse à coder un jeu de plateforme avec gint pour notre chère 90+e.
J'en suis au stade où j'aurai besoin d'avis, notamment pour la maniabilité du personnage et le level design.
Il tourne très bien, 60 FPS (merci Lephé' ), je compte en faire une sorte de Metroidvania un peu bizarre. Vous verrez bien

Les contrôles sont Replay pour se déplacer, Shift pour faire quelque chose une fois que vous aurez obtenu quelque chose (wow clair) et Exit pour quitter le jeu.
Il n'y a que 3 écrans pour l'instant.
Si vous trouvez quoi que ce soit niveau bug dites-le moi

Voici le dépôt du projet (ne lisez pas mon code ) :
https://gitea.planet-casio.com/KikooDX/unnamed-platformer
Télécharger le dernier build stable.

Merci

J’essaierai de mettre ce topic à jour régulièrement.

Ajout 13/02/2019 16:00
Un "message" est désormais affiché lorsque vous ramassez l'objet.


1, 2, 3 Suivante
Kikoodx Hors ligne Ancien labélisateur Points: 3039 Défis: 11 Message

Citer : Posté le 14/02/2020 15:23 | #


Bonjour ! Un résumé des modifications faites depuis hier 16:00 : j'ai amélioré le système d'écrans, il m'est maintenant possible de créer des connexions verticales. Le reste ne sera pas visible par le joueur et consiste majoritairement en des bug fixes, améliorations mineures du gameplay et du level design
En conséquence, j'ai créé un étage (vide), pour que vous puissiez tester par vous-même.
Niveau direction du jeu, je me suis décidé sur le Metroidvania.
Télécharger le dernier build :
https://gitea.planet-casio.com/KikooDX/unnamed-platformer/raw/branch/master/platform.g3a
Merci
ouais ouais
Lephenixnoir Hors ligne Administrateur Points: 24649 Défis: 170 Message

Citer : Posté le 14/02/2020 18:07 | #


Bon alors j'ai testé !

Graphiquement c'est simple encore mais y'a un petit côté VVVVVV, je ne sais pas pour combien de temps encore.

Le mouvement est fluide, c'est vraiment sympa (60 FPS easy) ! Je ne sais pas où tu veux aller, mais sur cette version tout de suite je suggérerais d'avoir un saut un peu plus répondant, par exemple en permettant d'ajuster la hauteur. J'ai vu qu'il y avait deux hauteurs possibles, mais ça reste assez parabolique donc lent au sommet et on saute souvent plus haut que voulu.

Et surtout : mets des screens !
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Kikoodx Hors ligne Ancien labélisateur Points: 3039 Défis: 11 Message

Citer : Posté le 14/02/2020 18:23 | #


Merci pour ton retour !
Le saut est assez dur à contrôler en effet (c'est dur de timer sur 8 frames), j’essaierai d'améliorer ça.
C'est assez dur de trouver de bonnes valeurs pour un saut réactif.
Je travaillerais là-dessus demain, merci (je risque de ragequit et copier les valeurs d'autres jeux )
Pour les screens c'est impossible, ma licence a expiré mais je prendrai des photos pour la RdP
ouais ouais
Lephenixnoir Hors ligne Administrateur Points: 24649 Défis: 170 Message

Citer : Posté le 14/02/2020 18:33 | #


Super, j'attends la suite ! Pour les screens, ça doit être possible d'enregistrer des bitmaps depuis gint si le système de fichiers veut bien coopérer. C'est comme ça que j'avais fait pour le GIF de présentation d'Arena. Hmm...
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Kikoodx Hors ligne Ancien labélisateur Points: 3039 Défis: 11 Message

Citer : Posté le 14/02/2020 18:49 | #


Lephenixnoir a écrit :
Super, j'attends la suite ! Pour les screens, ça doit être possible d'enregistrer des bitmaps depuis gint si le système de fichiers veut bien coopérer. C'est comme ça que j'avais fait pour le GIF de présentation d'Arena. Hmm...

Comment ? :eyes:
Et merci
ouais ouais
Lephenixnoir Hors ligne Administrateur Points: 24649 Défis: 170 Message

Citer : Posté le 14/02/2020 19:04 | #


Il suffit de copier la VRAM dans un fichier. Donc :

1. Tu supprimes le fichier s'il existe (sinon tu peux pas le recréer).
2. Tu le crées avec une taille de 396*224*2 octets et tu l'ouvres.
3. Tu écris 396*224*2 octets en provenance de gint_vram (#include <gint/display.h>) dedans.
4. Tu le refermes et tu le transfères sur le PC.
5. Sur le PC tu convertis en PNG.

Faut juste faire attention au triple buffering. Pour que ça marche il faut le faire entre le dessin du frame et le dupdate(). Tu peux par exemple le faire après avoir fini de dessiner le frame qui suit la pression du bouton.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Kikoodx Hors ligne Ancien labélisateur Points: 3039 Défis: 11 Message

Citer : Posté le 15/02/2020 12:38 | #


OK j’essaierai merci
J'ai changé le système du jeu de scale 2x vers 1x, ça me permettra de rendre les déplacements et sauts plus fluides et précis.
Cela me permettra aussi de faire des textures 16x16, bien plus simples à créer que les 8x8.
Je rajouterai la friction horizontale (très faible) demain, et passerai mon lundi à trouver un bon compromis niveau saut
ouais ouais
Lephenixnoir Hors ligne Administrateur Points: 24649 Défis: 170 Message

Citer : Posté le 15/02/2020 13:50 | #


Tu pourrais rajouter un timer in-game pour que ça ce speedrun ? Parce que ça me tente bien.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Kikoodx Hors ligne Ancien labélisateur Points: 3039 Défis: 11 Message

Citer : Posté le 15/02/2020 14:20 | #


Lephenixnoir a écrit :
Tu pourrais rajouter un timer in-game pour que ça ce speedrun ? Parce que ça me tente bien.

Ça doit se faire, j'y avais pensé pour la sortie mais je peux déjà en coder un qui s'arrête une fois qu'un objet est atteint.
Par contre c'est plutôt complexe à coder, ça me prendra quelques jours.
ouais ouais
Milang Hors ligne Membre Points: 488 Défis: 2 Message

Citer : Posté le 15/02/2020 16:10 | #


Ah, je ne suis plus tout seul à coder un platformer avec gint . Je testerai d'ici quelques jours, le temps que j'installe l'émulateur

J'ai commencé à lire le code
Je pense que c'est peut-être plus à Lephenixnoir de le dire que moi, mais tu peux mettre les headers dans un dossier include à la racine du projet

En tout cas je trouve formidable que gint commence à se populariser dans le secteur des Addins
Bravo Lephenixnoir et bon courage pour ton projet !
Kikoodx Hors ligne Ancien labélisateur Points: 3039 Défis: 11 Message

Citer : Posté le 15/02/2020 16:20 | #


Milang a écrit :
Ah, je ne suis plus tout seul à coder un platformer avec gint . Je testerai d'ici quelques jour, le temps que j'installe l'émulateur

Merci
Pour l'émulateur n'hésite pas à demander une version modifiée, Shift est compliqué à atteindre

Milang a écrit :
J'ai commencé à lire le code

Mais

Milang a écrit :
Je pense que c'est peut-être plus à Lephenixnoir de le dire que moi, mais tu peux mettre les headers dans un dossier include à la racine du projet

Ah j'avais vu ça dans les sources de gint, merci pour le conseil je le ferai demain avant toute chose

Milang a écrit :
En tout cas je trouve formidable que gint commence à se populariser dans le secteur des Addins
Bravo Lephenixnoir et bon courage pour ton projet !

Pareil et merci.

Ajouté le 17/02/2020 à 11:17 :
Bonjour !
J'ai (enfin) trouvé de bonnes valeurs de sauts, j'espère qu'il conviendra mieux. Il a 12 hauteurs différentes, de 1 à 4 tiles de haut.
J'ai également retravaillé un peu les graphismes, toujours aussi rustique mais un petit peu mieux.
Téléchargement dernier build : https://gitea.planet-casio.com/KikooDX/unnamed-platformer/raw/branch/master/platform.g3a

Ajouté le 17/02/2020 à 16:19 :
Implémenté friction, glace et colle. C'était plus compliqué que prévu ^^'
Le turnarround est instantané, j'aimerais votre avis sur le déplacement horizontal
J'ai placé de la glace dans la salle de droite et de la glue dans l'étage du dessus.
ouais ouais
Lephenixnoir Hors ligne Administrateur Points: 24649 Défis: 170 Message

Citer : Posté le 17/02/2020 17:42 | #


Wow, pas mal du tout ! J'aime beaucoup !

Le saut est plus natruel maintenant. Cela dit je n'arrive pas à sauter plus bas que 1.5-2 tile de haut. Mais c'est pas grave à la limite !

La glace et la colle sont un peu extrêmes mais pourquoi pas.

PS. Les piques m'ont tuer.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Kikoodx Hors ligne Ancien labélisateur Points: 3039 Défis: 11 Message

Citer : Posté le 17/02/2020 18:10 | #


Lephenixnoir a écrit :
Wow, pas mal du tout ! J'aime beaucoup !

Le saut est plus natruel maintenant. Cela dit je n'arrive pas à sauter plus bas que 1.5-2 tile de haut. Mais c'est pas grave à la limite !

La glace et la colle sont un peu extrêmes mais pourquoi pas.

Merci
Pour sauter à moins de 1.5 tiles de haut c'est très précis, mais ça ne devrait pas poser problème en pratique (je ne ferai pas de sauts aussi précis que ça dans la trame obligatoire).
J'aime bien la colle, et la glace est moins énervante que dans la plupart des jeux l'intégrant (sauter la bypass et se retourner est instantané)
Après c'est pour le test, je ne sais pas si je les utiliserai

Lephenixnoir a écrit :
PS. Les piques m'ont tuer.


ouais ouais
Lephenixnoir Hors ligne Administrateur Points: 24649 Défis: 170 Message

Citer : Posté le 17/02/2020 18:10 | #


Pour sauter à moins de 1.5 tiles de haut c'est très précis, mais ça ne devrait pas poser problème en pratique (je ne ferai pas de sauts aussi précis que ça dans la trame obligatoire).

Certes mais si tu veux aller vite il faut pouvoir retomber vite
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Kikoodx Hors ligne Ancien labélisateur Points: 3039 Défis: 11 Message

Citer : Posté le 17/02/2020 18:12 | #


Lephenixnoir a écrit :
Pour sauter à moins de 1.5 tiles de haut c'est très précis, mais ça ne devrait pas poser problème en pratique (je ne ferai pas de sauts aussi précis que ça dans la trame obligatoire).

Certes mais si tu veux aller vite il faut pouvoir retomber vite

En effet, je peux créer un fastfall en powerup facultatif si tu aimes cette mécanique Niveau précision on ne pourra pas faire mieux.

Ajouté le 18/02/2020 à 11:59 :
J'ai changé la mécanique de saut, c'est exactement la même mais j'ai utilisé des valeurs un peu étranges, la hauteur de saut minimale est maintenant de une tile, la vitesse de saut maximum reste inchangée.
J'ai également implémenté un système d'animation, ça m'a prit du temps mais j'ai fini par trouver quelque chose qui fonctionne bien.
L'item de saut et l'ascenseur sont désormais animés. Les FPS resteront stables tant que j'en met pas 100 par écran.

Ajouté le 18/02/2020 à 13:15 :
Ajouté un "timer de speedrun" comme demandé par Lephé', il n'affiche que les secondes entières pour une raison de performance.
Je vais travailler sur les passages secrets, puis je me mettrai à faire un peu de level design.
ouais ouais
Lephenixnoir Hors ligne Administrateur Points: 24649 Défis: 170 Message

Citer : Posté le 18/02/2020 13:20 | #


Ajouté un "timer de speedrun" comme demandé par Lephé', il n'affiche que les secondes entières pour une raison de performance.

Même pas les dixièmes ?

Je déconne ! Merci beaucoup.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Kikoodx Hors ligne Ancien labélisateur Points: 3039 Défis: 11 Message

Citer : Posté le 18/02/2020 13:46 | #


Le temps est stocké à la frame, le problème est l'affichage.
Si tu connais un moyen plus rapide que dprint pour afficher un entier je suis preneur
J’essaierai de coder un affichage plus rapide en utilisant dimage, j'espère que ça tiendra le rythme.
ouais ouais
Lephenixnoir Hors ligne Administrateur Points: 24649 Défis: 170 Message

Citer : Posté le 18/02/2020 13:54 | #


dprint() est bien assez rapide pour afficher des entiers ? La conversion entier → texte fait intervenir une division, mais je viens de trouver une technique pour accélérer ça (5/6 fois plus rapide). L'affichage du texte est très direct. Surtout que ça concerne une toute petite surface. Je vois pas bien ce que ça peut poser comme problème de performance ? :o

Afficher avec dimage() ne sera pas plus rapide que d'utiliser les fonctions de texte.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Kikoodx Hors ligne Ancien labélisateur Points: 3039 Défis: 11 Message

Citer : Posté le 18/02/2020 14:01 | #


Lephenixnoir a écrit :
dprint() est bien assez rapide pour afficher des entiers ? La conversion entier → texte fait intervenir une division, mais je viens de trouver une technique pour accélérer ça (5/6 fois plus rapide). L'affichage du texte est très direct. Surtout que ça concerne une toute petite surface. Je vois pas bien ce que ça peut poser comme problème de performance ? :o

Afficher avec dimage() ne sera pas plus rapide que d'utiliser les fonctions de texte.

Le framerate chute énormément, alors qu'afficher 10 tiles animées n'a aucun impact.
ouais ouais
Lephenixnoir Hors ligne Administrateur Points: 24649 Défis: 170 Message

Citer : Posté le 18/02/2020 14:03 | #


Il y a clairement un problème soit dans ton programme soit dans le code gint.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
1, 2, 3 Suivante

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 107 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