Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.

Forum Casio - Projets de programmation


Index du Forum » Projets de programmation » [WIP] New project - Il est temps d'en parler - Un Shmup pour fx-CG50/Graph 90+E et fx-CG20/Prizm
Slyvtt En ligne Community Manager Points: 980 Défis: 0 Message

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

Posté le 15/01/2023 21:55

Bon, il n'a dû échapper à personne (enfin ceux traînant du côté de la shout "projets") que je suis en cours de tripatouillage dans Azur afin de créer un Particle Engine. En effet Lephé, comme toujours, est très présent pour aider dans le lancement des projets et la résolution des problèmes techniques.

Donc en effet, je me suis donné comme objectif de créer un jeu d'un type très peu représenté sur nos chères machines : un Shmup (ou Shoot Them Up), en gros un bon gros jeux de space shooter où le but est de dégommer tout le monde.

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.

Je vous mets en PJ le g3a pour tester un peu si vous voulez regarder ce que donnent les shaders de Azur :

Au niveau des touches :
F1 à F4 permettent de montrer/cacher les infos
F6 : pour randomiser les particules de fond (étoiles défilantes)
SHIFT pour lancer un petit effet sympa d'explosion (calcul en temps réel avec le Particle Engine)

Ça tourne a quasi 100FPS sans overclock !!! Autant dire que c'est vraiment de la balle.
En Overclock F5, ça tourne à 200FPS, on frôle l'excès de vitesse, c'est une tuerie.

Je n'en dis pas plus pour le moment, c'est juste histoire de teaser un peu. 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.

Donc soyez patients.

Désolé, pas de screen capture, c'est pas opérationnel avec Azur

Edit : ça correspond à ma version interne v0.1.5, donc vous voyez l'avancée du truc

Fichier joint


Mb88 En ligne Labélisateur Points: 537 Défis: 0 Message
Slyvtt En ligne Community Manager Points: 980 Défis: 0 Message

Citer : Posté le 27/01/2023 10:35 | #


Hello All,

pour info, j'ai commencé hier à travailler sur l'importation d'un décors de fond, pour importer automatiquement des TileMaps et des TileSets de l'éditeur Tiled.

C'est pas très beau et surchargé (donc pas taper Massena, idem Tituya), car pas du tout optimisé (le gros du taf était focalisé sur la possibilité d'importer effectivement les data) et ça tourne encore à 45-50FPS avec :
- le shader des étoiles en fond (Starfield)
- le décors en background importé de Tiled (avec grosso modo 30% de la surface d'écran tracée avec gestion de transparence)
- les ennemis qui bougent
- les tirs et les impacts
Ca peut éventuellement descendre à 35FPS si il y a les 3 tirs (normaux, boost et lasers en simultané, mais là je vous raconte même pas le nombre de sprites qu'il y a d'affichés à l'écran, c'est juste indécent)



Ce qui me laisse pas mal de marge je pense pour faire des choses, sachant que clairement c'est le rendu qui sera le bottleneck, les temps d'updates sont ultra-marginaux.

Bien entendu là c'est sans OC.
Avec OC paramètre F5 de PTune3, on passe à 75-80FPS et 60FPS mini avec tous les tirs, donc ultra ultra large.

Ma feuille de route à venir :

Partie décors :
- animer le décors avec le parallaxe (glissement de la droite vers la gauche pour donner l'avancement du vaisseau).
- animer des éléments du décors (clignotements, sprites animés, ...)
- interaction avec le décors (collisions possibles avec certaines tiles) qui imposent donc de suivre un "chemin" dans le niveau

Partie mouvement :
- améliorer le système de trajectoires sur base de Splines pour rendre la vitesse des ennemis plus constante.
- rendre les satellites sur une trajectoire (possibilité d'avoir des patterns plus complexes)
- possibilité de transformer les trajectoires (grossissement/rétrécissement, translation et rotation)

Partie interaction / gameplay :
- implémenter les tirs ennemis (avec une IA minimale)
- implémenter les hits des tirs ennemis sur le joueur
- implémenter les collisions avec les ennemies
- implémenter le tir des satellites
- implémenter un système de bonus (points, upgrade tir/satellites/... )

autres :
- plein de trucs dont boss "multi-morceaux et multi-hitboxes"
- selon vos vos idées, vos envies, ....

Bref, la fin, c'est pas pour demain.

on maintient un petit @RDP pour quand elle sortira.
------------------------------------------------------------------
Le monde est dangereux à vivre ! Non pas tant à cause de ceux qui font le mal, mais à cause de ceux qui regardent et laissent faire.
-------------------------------------------------------------------
Albert Einstein
Mathématicien, Physicien, Scientifique (1879 - 1955)
Acrocasio Hors ligne Membre Points: 459 Défis: 0 Message

Citer : Posté le 27/01/2023 11:35 | #


C'est super de voir ta progression dans ton projet, et le rendu !

Surtout en connaissant que le merveilleux Outrun (sur G90, faut pas abuser ) à été fait par le même artiste !

Courage Sly, et continue comme ça, tu as tout notre respect ! En tout cas le mien.
Littéralement démon du chat

Jettez un œil à mon journal sur la FX 92+:Ici ici ici ici clique ici

Je soutient Planète Casio
Mb88 En ligne Labélisateur Points: 537 Défis: 0 Message
Slyvtt En ligne Community Manager Points: 980 Défis: 0 Message

Citer : Posté le 27/01/2023 19:03 | #


Le Tileset vient de OpenGameArt, je suis trop nul personnellement pour faire cela : Space Merc Redux: Platform Shmup tileset

https://opengameart.org/content/space-merc-redux-platform-shmup-tileset
------------------------------------------------------------------
Le monde est dangereux à vivre ! Non pas tant à cause de ceux qui font le mal, mais à cause de ceux qui regardent et laissent faire.
-------------------------------------------------------------------
Albert Einstein
Mathématicien, Physicien, Scientifique (1879 - 1955)
Slyvtt En ligne Community Manager Points: 980 Défis: 0 Message

Citer : Posté le 28/01/2023 09:27 | #


J'ai mis en ligne rapidement hier soir une petite vidéo pour montrer la vitesse du jeu IRL :



Réalisé sans overclock sur fx-CG50/Graph 90+E, on tourne vers 45-50FPS.
Sur Prizm (fx-CG20), on est plutôt vers 20-25FPS.

Chaque frame comporte grosso modo 220 à 250 Sprites.
Lors des tirs, on peut atteindre ~600 à 700 Sprites et là on descend vers 30-35FPS sur la fx-CG50.

Je pense qu'on peut gagner en bossant plus sur le rendu du particules :
- lors des tirs (bullets patterns avec de multiples fois le même sprite)
- lors du rendu du fond par tileset (une image d'origine avec ensuite plein de calls à des azrp_subimage_p8( )

L'optimisation viendra en son temps ...
------------------------------------------------------------------
Le monde est dangereux à vivre ! Non pas tant à cause de ceux qui font le mal, mais à cause de ceux qui regardent et laissent faire.
-------------------------------------------------------------------
Albert Einstein
Mathématicien, Physicien, Scientifique (1879 - 1955)
Slyvtt En ligne Community Manager Points: 980 Défis: 0 Message

Citer : Posté le 29/01/2023 21:28 | # | Fichier joint


Un état des lieux à la fin du WE.

Donc cette fin de semaine, gros travail de fond sur deux points principaux :
- création d'un manager avancé des événements liés au clavier (key pressed/released : état de la touche durant la frame courante et key hold pressed/released : durée de maintient/relâchement de la touche), cela servira un peu plus tard dans le jeu.
- refonte du moteur de rendu du décors de fond pour prendre en compte plusieurs couches de tuiles afin d'avoir des environnements plus complexes.

J'ai fait un niveau de test avec un tileset étendu dont voici une petite vidéo. IRL cela tourne à 30FPS sans OC, les tuiles de décors sont un élément lourd graphiquement..



Voici une petite capture vidéo depuis la machine, donc un peu plus lente (2 fois plus lente en fait que IRL).



Je joins une version compilée en g3a qui correspond à ma version interne v0.3.7 afin que vous puissiez tester et faire vos retours/commentaires/critiques.

Ciao

Sly
------------------------------------------------------------------
Le monde est dangereux à vivre ! Non pas tant à cause de ceux qui font le mal, mais à cause de ceux qui regardent et laissent faire.
-------------------------------------------------------------------
Albert Einstein
Mathématicien, Physicien, Scientifique (1879 - 1955)
Slyvtt En ligne Community Manager Points: 980 Défis: 0 Message

Citer : Posté le 29/01/2023 21:33 | #


PS : j'ai oublié, pour sortir, il faut faire [SHIFT]+[EXIT]
------------------------------------------------------------------
Le monde est dangereux à vivre ! Non pas tant à cause de ceux qui font le mal, mais à cause de ceux qui regardent et laissent faire.
-------------------------------------------------------------------
Albert Einstein
Mathématicien, Physicien, Scientifique (1879 - 1955)
Lephenixnoir En ligne Administrateur Points: 22874 Défis: 149 Message

Citer : Posté le 29/01/2023 21:39 | #


Fiouh, 684 ko c'est un mastodonte déjà ton add-in ! Même Rogue Life il fait pas autant. xD

Par rapport aux versions précédentes (en horizontal) je trouve que les contrôles sont un peu "rigides" - j'aurais envie pouvoir me déplacer à l'écran plus vite, surtout quand on voit la vitesse de certains de ces projectiles sur spline.
Slyvtt En ligne Community Manager Points: 980 Défis: 0 Message

Citer : Posté le 29/01/2023 21:43 | #


Pas de problème, je peux changer la vitesse du joueur, c'est un paramètre qui existe (j'ai l'intention d'avoir divers vaisseaux avec leur vitesse et puissance de feu paramétrable).

J'avoue que pour le moment, j'ai pas "tuné" ce genre de paramètres pour le moment, je suis sur le moteur du jeu, mais c'est en toute logique suffisamment versatile pour être changé facilement. Mais je note
------------------------------------------------------------------
Le monde est dangereux à vivre ! Non pas tant à cause de ceux qui font le mal, mais à cause de ceux qui regardent et laissent faire.
-------------------------------------------------------------------
Albert Einstein
Mathématicien, Physicien, Scientifique (1879 - 1955)
Slyvtt En ligne Community Manager Points: 980 Défis: 0 Message

Citer : Posté le 29/01/2023 22:06 | #


Lephenixnoir a écrit :
Fiouh, 684 ko c'est un mastodonte déjà ton add-in ! Même Rogue Life il fait pas autant. xD

J'embarque un tileset en png de 512*1024 pixels
Une rationalisation des tiles va vite s'imposer
------------------------------------------------------------------
Le monde est dangereux à vivre ! Non pas tant à cause de ceux qui font le mal, mais à cause de ceux qui regardent et laissent faire.
-------------------------------------------------------------------
Albert Einstein
Mathématicien, Physicien, Scientifique (1879 - 1955)

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 v42 © créé par Neuronix et Muelsaco 2004 - 2023 | Il y a 47 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