[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
Citer : Posté le 23/01/2023 19:22 | #
Un Amiga avec un écran retourné c'est mieux
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 :
- 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
- 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)
- 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/... )
- 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)
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
Courage Sly, et continue comme ça, tu as tout notre respect ! En tout cas le mien.
Jettez un œil à mon journal sur la FX 92+:Ici ici ici ici clique ici
Je soutient Planète Casio
Citer : Posté le 27/01/2023 18:56 | #
Woa c'est trop beau ! Le tileset est extraordinaire !
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)
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)
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)
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)
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.
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)
Citer : Posté le 29/01/2023 22:06 | #
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)