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.
Menu
Calculatrices
Graph 35 à 100
Graph 25+Pro/25+E/25+E II
Graph 35+USB/75(+E)/85/95 SD
Graph 100(+)
Classpad 300/330(+)
fx-CG 10/20 (Prizm)
Classpad 400(+E)
Graph 90+E
fx-92+ SC
Liens
¤ Vous cherchez une fonction ?
Jeux >> Graph 90+E >> Add-ins >> After Burner
After Burner
Version : Taille : 172016 octets Ajouté le : 2022-04-10 18:57 Modifié le : 2022-11-19 17:43
Auteur et posteur :
LephenixnoirEn ligneAdministrateurPoints: 24673 Défis: 170 Message
Planète Casio - Add-in Casio - After Burner - Lephenixnoir - Calculatrices
Nombre de visites sur cette page : 3597
Score au progrank : 56
Note actuelle : 8/10 noté 6 fois
Vous devez être connecté(e) pour noter (inscription).
933 téléchargements | Voir les Tests (3)


Description :

Un jeu d'aviation vaguement inspiré d'After Burner II sur une suggestion de Slyvtt, pour la Chill Casio Jam proposée par KikooDX.

Code source : dépôt Gitea Lephenixnoir/AfterBurner.

Très expérimental de bien des façons : c'est mon premier jeu complet à la fois avec Azur et avec ma bibliothèque C++ de calcul en point fixe, il y a des shaders improvisés en assembleur, des rotations de sprites en temps réel... je suis content de la portée technique

Le principe du jeu est assez simple : vous devez bombarder toutes les bases ennemies.

  • Flèches directionnelles : diriger l'avion
  • SHIFT/ALPHA : accélérer/ralentir
  • F1 : lâcher une bombe

Le point rouge indique la position où les bombes vont tomber. La minimap en haut à droite indique votre position et la direction dans laquelle vous volez (en vert), ainsi que la position de toutes les bases ennemies restantes (en rouge) ou détruites (en bleu).

Le but implicite est d'aller le plus vite possible, mais comme il faut pointer vers le bas pour bien viser, il faut faire attention à ne pas s'écraser non plus !

Les images attendront, je supporte pas encore la capture vidéo avec Azur. Une description plus élaborée aussi, sans doute...

Enjoy! o/

Crédits graphiques :


Note sur 10 Commentaire Date de notation
3joli mais aucun fun a jouer plus de 2 min, buggéLe 03.09.2022 à 11:46
9Voir le testLe 11.04.2022 à 11:58
9Voir le testLe 12.04.2022 à 08:00
9Voir le testLe 12.04.2022 à 20:22
10Une démo parfaitement exécutée à mon goût, dommage que cela ne reste qu'un prototype...Le 17.04.2022 à 13:57
8(Mibi88) Mérite d'être terminé.Le 25.12.2022 à 12:54

Commentaires :

Pages: 1, 2, 3 | Suivante

SlyvttHors ligneMaître du PuzzlePoints: 2410 Défis: 17 Message
Posté le 10-04-2022 à 20:49 | #
Superbe !!! Ça tourne du feu de dieu ...
On est pas loin d'une mégadrive.
Le sprite d'explosion utilise aussi le realtime up-scaling ?

T'es à quel niveau de FPS ? J'ai du mal à me rendre compte (vers 30 ?)
LephenixnoirEn ligneAdministrateurPoints: 24673 Défis: 170 Message
Posté le 10-04-2022 à 21:32 | #
Merci ! Je suis content du résultat aussi. Avec l'upscaling d'Azur le passage en 198×112 est vraiment rentable et sauve les perfs.

Le sprite d'explosion est aussi upscale en temps réel oui, tu peux le voir au fait qu'il est plus gros si tu crashes. Cela dit, comme il n'a pas de rotation, contrairement aux autres il est mis en cache pour toute l'exécution (au lieu de juste le frame courant).

Niveau FPS, le jeu est cadencé à 30 FPS, et la plupart des frames prennent entre 25 et 30 ms, ce qui veut dire que ça tourne juste. La rotation et le scaling ne sont même pas le principal problème, comme tu peux le voir sur cette ligne d'information :

Frame total: 29461 µs
  - Rendering: update 10854 µs, shaders 2874 µs
  - Physics: 9586 µs
  - Sprite scaling: 6946 µs
Current info:
  Position: x=143.267 y=255.852 z=3.30862
  Angles: roll=0.351129 pitch=-0.0296906 yaw=0.379379
  Air speed: 12
Points: 1146 selected, 60 close, 42 visible

Tu peux voir notamment que le rendu prend 2.874 ms, et si on compte un peu de logique + l'envoi à l'écran ça fait un total de 10.854 ms (moins que dupdate() tout seul !). Le redimensionnement des sprites a pris 6.946 ms, mais le plus long c'est la physique avec 9.586 ms.

La raison de ça c'est qu'en fait il y a 2000 points sur la map et c'est pas facile de les filtrer pour trouver ceux qui sont visibles à l'écran. La map est actuellement découpée en 16 chunks de 64×64 (sachant que la profondeur de vision c'est 50), et je charge les 9 chunks autour de l'avion, ce qui ici me donne 1146 points. Je suis obligé de faire la projection 3D de tous ces points, ce qui perd beaucoup de temps vu qu'après ça il n'en reste plus que 60 dans le champ et 42 qui sont dans l'écran ou pas loin.

Enfin bref, actuellement c'est 30 FPS et y'a pas vraiment de marge, mais y'a un million d'avenues pour optimiser et pousser plus loin.
SlyvttHors ligneMaître du PuzzlePoints: 2410 Défis: 17 Message
Posté le 10-04-2022 à 21:38 | #
Je suis impressionné par le rendu en effet.
Tu mets quoi dans le terme "Shaders", tu as un traitement de l'image ?

Pour la physique, effectivement il y a certainement à gagner. Peut être implémenter un quadtree ou un algo pété pour ne pas se colter les calculs sur l'ensemble des points de la map.
LephenixnoirEn ligneAdministrateurPoints: 24673 Défis: 170 Message
Posté le 10-04-2022 à 21:48 | #
Les "shaders" c'est les fonctions de rendu par fragments d'Azur. Le système d'Azur est inspiré d'OpenGL, qui a pas mal étendu le terme, lequel recoupe maintenant à la fois du calcul et du rendu (vertex shader, fragment shader, etc) et est absolument nécessaire pour avoir le moindre pixel à l'écran.

J'aime bien le nom et je pense qu'on pourrait faire des vrais effets de lumière avec, mais ça c'est pas encore tout à fait prêt.

Note par exemple qu'ici j'ai un shader custom en assembleur qui dessine le sol et les dégradé de bleus dans le ciel. Et il le fait sur tout l'écran en 1.5 ms, ce qui te donne une idée de la force du système !
SlyvttHors ligneMaître du PuzzlePoints: 2410 Défis: 17 Message
Posté le 11-04-2022 à 09:59 | #
Tu serais Ok pour droper un gitea de ton code ou c'est trop expérimental ?
Je serai hyper intéressé de voir le code.
LephenixnoirEn ligneAdministrateurPoints: 24673 Défis: 170 Message
Posté le 11-04-2022 à 10:27 | #
Il faudrait que je détache Azur et la libnum (lib point fixe) du dossier de TLT, actuellement c'est mélangé et je pourrais même pas vous fournir une version compilable aisément. Je fais ça au plus vite.
SlyvttHors ligneMaître du PuzzlePoints: 2410 Défis: 17 Message
Posté le 11-04-2022 à 10:29 | #
Y'a pas d'urgence, si c'est pas encore mûr
ca peut attendre sans problème
LephenixnoirEn ligneAdministrateurPoints: 24673 Défis: 170 Message
Posté le 11-04-2022 à 10:38 | #
Oh mais il faut exploiter le timing aussi. Faut garder la patate chaude :3
SlyvttHors ligneMaître du PuzzlePoints: 2410 Défis: 17 Message
Posté le 11-04-2022 à 10:44 | #
C'est vrai.
Je suis vraiment impressionné de ce qu'on peut sortir de la CG50.
Franchement c'est fou ce qu'on peut tirer de cette machine quand on la maitrise.

Pour info, dans la partie FlyBobs de ma démo, il y a jusqu'à 512 sprites d'oeil affichés en plus du fond. et ca tourne hyper bien !!! Avec Azur, je pense qu'on pourrait encore booster pour le coup.
Shadow15510Hors ligneAdministrateurPoints: 5504 Défis: 18 Message
Posté le 11-04-2022 à 11:50 | #
Oh oh oh ! Je teste ça maintenant !!

Pages: 1, 2, 3 | Suivante

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 91 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