[mini-projet] azuray -- un raycaster avec Azur
Posté le 17/03/2024 23:23
C'est la saison des raycasters en ce moment, et je me suis fait tenter une fois de trop donc j'ai fini par essayer d'en coder un. Le rendu graphique c'est plus drôle que debugger MicroPython (désolé mais facts quoi). Ça a bien tourné et le résultat est raisonnablement utilisable je pense, donc je partage.
Télécharger une démo .g3a
Dépôt Git Lephenixnoir/azuray
Le "mini-projet" dans le titre est pour clarifier que c'est un projet que j'ai commencé sur coup de tête et je n'ai pas l'intention de le pousser plus loin. Je suis toujours là pour debugger ou tirer sur des petites fonctionnalités si des gens s'en servent, mais sinon ça ne bougera plus.
Contrôles pour la démo :
- Flèches pour se déplacer, F1/F2 pour strife
- VARS pour afficher le HUD et les compteurs de performance
- F4, F5, F6 pour se téléporter à quelques endroits prédéterminés
C'est mon délire habituel : prendre un truc raisonnable (un raycaster), le passer sous Azur, et ensuite commit après commit de grattage de cycles jusqu'à ce que ce tout le code qui manipule le moindre pixel soit au milieu d'un gros paquet d'assembleur illisible. Mais d'un autre côté, ça va vite !
Le raycaster est documenté dans
azuray.h et le moteur est séparé de l'exemple, ce qui devrait le rendre vaguement réutilisable si jamais il y a des gens qui voudraient essayer de jouer avec. Notez que je ne l'ai testé
que sur cet exemple par contre, donc je garantis pas que vous arriviez forcément à faire ce que vous voulez avec.
Voilà voilààà, retour à PythonExtra maintenant.
Fichier joint
Citer : Posté le 17/03/2024 23:31 | #
Wow, j'aimerais pouvoir avoir ce genre de distractions ahah.
Bravo, c'est super propre
Citer : Posté le 18/03/2024 10:22 | #
Tu poste pas 6 ou 7 jeux qui utilisent le même exemple mais juste en changeant les textures ? Y'a pourtant un créneau en ce moment
Blague à part, c’est propre ! Par rapport à un raycaster qui tourne pas sous Azur, tu gagnes quoi en perfs à la louche ?
Citer : Posté le 18/03/2024 10:24 | #
J'ai pas tout testé sur le rendu VRAM parce que j'ai transitionné avant d'ajouter les textures transparentes, mais à ce stade j'avais un pire cas d'environ 40 ms par frame (si tu te colles le nez sur un mur) et là avec Azur on descend à ~28 ms pour ce même frame. C'est pas que proportionnel parce que y'a des gains fixes (azrp_update() de base prend 3.5 ms de moins que dupdate() par exemple) mais ça te donne une idée.
Citer : Posté le 18/03/2024 15:01 | #
Modifié le topic parce que manifestement mon moi de 23h30 est dans un monde à part
Citer : Posté le 22/03/2024 15:28 | #
Excellent travail! J'aimerais bien voir ce projet utilisé dans un jeu. Sur ma fx-CG10 j'ai entre 19 et 24 FPS la plupart du temps sans overclock.
Citer : Posté le 09/04/2024 14:44 | #
Note que ça serait un bon interlude dans une @RDP.