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 » Raycaster G90+E
Fcalva Hors ligne Membre Points: 519 Défis: 9 Message

Raycaster G90+E

Posté le 07/07/2023 14:27

Ceci est le topic de mon moteur de raycasting et plus, écrit en C.

Git : https://gitea.planet-casio.com/Fcalva/Raycaster_G90
Dernières démos : https://gitea.planet-casio.com/Fcalva/Raycaster_G90/releases

Une version "lite", Copy3DEngine, est utilisable dès maintenant, avec les fonctionalités suivantes :
- Rendu de murs en pseudo-3D sur un niveau
- Une carte sans limite de taille autre que la place de votre calto
- Apparition aléatoire sur la carte
Son but est d'être façilement adaptable à vos besoins et d'être simple pour créer du contenu, par opposition avec le moteur principal qui vise à proposer un outillage complet

Jeux l'utilisant :
- Maze3D (Git)
- Amogus 3D (Git) (Utilise Copy3DEngine)
Et plus a venir !

Fonctionalités actuelles:
- Rendu de murs texturés en pseudo-3D sur plusieurs niveaux
- Convertion de cartes format json

Fonctionalités à venir:
- Z-sprites/billboards
- Éditeur de cartes

Objectifs :
- Cross-platforme calto/PC
- Expérience fluide sur G90+E/FX-CG50 sans overclock (Est le cas pour l'instant)
- Prise en main relativement facile (Est l'objectif final principal, mais ne le sera pas avant un moment)

Archive pré-0.4
Pré-0.4

Enfin ! Après 2 mois de travail, pas très efficaces en toute honnêteté, j'ai enfin un résultat montrable !
Il ne reste plus qu'a trouver un nom !





Donc maintenant, il faut que je transforme ça en jeu.

Touches : Avant/Arrière : Dpad Haut/Bas
Gauche/Droite : Dpad Gauche/Droite
Quitter : F6
V 0.1.3
V 0.1.3
Pour le moment, tout est en float donc il y a de la marge pour optimiser. Attendez vous à <10 fps sans OC. La V 0.1.4 va sortir bientôt normalement, avec des améliorations sur ce point là.


V 0.1.4
V 0.1.4
Collision, meilleure map, petites améliorations, changement léger esthétique
Maintenant que je suis satisfait avec la base je vais optimiser.


V 0.2
V 0.2
Point fixe ! Avec désormais 25-27 fps, le "glissement" des valeurs corrigé, et une distance de rendu plus grande.


V 0.2.1
V 0.2.1
Optimisation de 4 à 7 % grâce a Slyvtt (encore ! =) ) qui a proposé gint_dvline();


V 0.2.2
V 0.2.2

Je me suis retrouvé lancé, et pas moyen de freiner l'élan !
Donc, pour aujord'hui j'ai rajouté la capture d'écran USB (0 + EXE) , le compteur de temps d'image est désormais activable/désactivable (F1 mais c'est capricieux pour le moment) et j'ai encore changé les couleurs.


V 0.3
V0.3
V 0.3 : Xoritude

Avec un peu d'huile de coude, vient les textures !
Malheuresement avec vient une baisse de FPS, de 26-29 à 13-15. Mais l'expérience reste fluide, bien qu'elle necessitera un overclock pour revenir au niveau précédents, où encore sur les CG10/20
Et j'ai falli oublier de mentioner que j'ai amélioré la réponse de la touche F1 et de la capture d'écran.


Donc j'ai sorti mon premier jeu avec ce moteur, Maze3D, la prochaine étape est de (enfin) faire des sprites !


Fichier joint


Précédente 1, 2, 3, 4
Fcalva Hors ligne Membre Points: 519 Défis: 9 Message

Citer : Posté le 12/11/2023 15:32 | #


Là MaJ des 15j :
Donc je me suis inscrit dans une jam dans laquelle je vais utiliser ce moteur ! Ce qui veut dire que je suis actuellement en train de faire un port SDL, en reproduisant rudimentairement les fonctions de gint que j'utilise (Voir sdl_image.h). Mais ça veut aussi dire que je vais me concentrer sur la deadline qui est dans 3 mois 19 jours, et en attendant je vais essayer de sortir des screens pour montrer un peu, mais pas de jeu avant pour le coup.
Je vous rassure, même si ça va éventuellement être après la version PC, je compte bien en faire une pour notre petite G90
Pc master race - Apréciateur de Noctua moyen
Caltos : G90+E, FX-92+ (x2)
Fcalva Hors ligne Membre Points: 519 Défis: 9 Message

Citer : Posté le 01/12/2023 22:35 | #


Petit up :
J'ai un peu galéré a faire marcher le module SDL_TTF pour faire un dprint mais c'est bon, donc je suis a 17/21 fonctions de gint dont je me sers, il me reste gint_dvline(), dprint(), image_create_vram() et le chargement d'image à finaliser. Plus la plupart des autres fonctions a vérifier et tester
Mais ça voudra dire que vous pourrez utiliser ce wrapper avec vos programmes, sans doute sans trop de soucis (Après j'ai mis mes propres fonctions d'entrées avec les fonctions qui m'arrangent).
Pc master race - Apréciateur de Noctua moyen
Caltos : G90+E, FX-92+ (x2)
Fcalva Hors ligne Membre Points: 519 Défis: 9 Message

Citer : Posté le 29/12/2023 23:55 | # | Fichier joint


Up du mois :
J'ai donc plus ou moins terminé le port SDL ... a part les entrées que je dois refaire plus ou moins de zéro si je veux faire un truc qui est raisonable des deux côtés.
Mais donc je me suis concentré sur la version calto, ce qui veut dire que j'ai enfin quelque chose que j'ai envie de montrer "au grand public":

C'est donc de la véritable 3D sur calto, et à 18-20 fps (sur le vrai hardware) ! Et en plus ceci n'est qu'une démo de l'occlusion, élément m'ayant bloqué jusque là, le rendu final devrait être bien plus propre et surtout texturé, mais bon je ne cache pas que il va falloir un overclock ou une Math+ éventuellement plus puissante pour avoir une expérience fluide quand j'en aurais fini.
"Mais a ce point pourquoi ne pas faire un vrai moteur 3D au lieu d'un raycaster sur stéroïdes ?!" vous me demanderez peut être si vous êtes loieducode; et a ça je réponds qu'il y a environ deux mois de travail sur cette amélioration (et d'autres derrière aussi) là ou refaire un Doom par exemple m'aurais pris un bon bout plus longtemps, et aussi que malgré tout c'est le dessin à l'écran qui prend la majorité du temps d'image, donc c'est a voir si le gain serait si grand que ça.

PS : Le build est ici https://gitea.planet-casio.com/Fcalva/Raycaster_G90/releases/tag/Alpha-0.4.0
Pc master race - Apréciateur de Noctua moyen
Caltos : G90+E, FX-92+ (x2)
Lephenixnoir Hors ligne Administrateur Points: 24228 Défis: 170 Message

Citer : Posté le 30/12/2023 11:23 | #


Coucou, j'ai pas super bien suivi mais je vois que t'as changé le modèle de la map, genre c'est plus juste du Wolfenstein. Est-ce que tu peux expliquer un peu plus en détail quel est le modèle ? C'est toujours une map sous forme de grille ? Est-ce que tu as des plafonds de hauteur variable ? Des murs de différentes tailles ? Angles ?
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Fcalva Hors ligne Membre Points: 519 Défis: 9 Message

Citer : Posté le 30/12/2023 11:25 | #


C'est juste des voxels, et je pense pas aller plus compilqué pendant un moment vu qu'il y a encore beaucoup de choses a améliorer.
Pc master race - Apréciateur de Noctua moyen
Caltos : G90+E, FX-92+ (x2)
Lephenixnoir Hors ligne Administrateur Points: 24228 Défis: 170 Message

Citer : Posté le 30/12/2023 11:28 | #


Wait mais du coup t'as plus juste un rayon par colonne right? Donc c'est clairement plus le raycaster de base et limite plus un "raycaster" au sens traditionnel?
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Fcalva Hors ligne Membre Points: 519 Défis: 9 Message

Citer : Posté le 30/12/2023 11:31 | #


Si j'ai un rayon par colonne (même 1/2 vu que je fais que moitié de résolution horizontale), qui cherche a travers les couches modulo des optimisations. Mais c'est vrai que c'est plus vraiment un raycaster au sens traditionel maintenant
Pc master race - Apréciateur de Noctua moyen
Caltos : G90+E, FX-92+ (x2)
Lephenixnoir Hors ligne Administrateur Points: 24228 Défis: 170 Message

Citer : Posté le 30/12/2023 11:56 | #


Ça me surprend que tu n'aies pas des perfs décentes... je vais essayer pour voir.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Fcalva Hors ligne Membre Points: 519 Défis: 9 Message

Citer : Posté le 30/12/2023 12:12 | #


Maintenant c'est le cas, mais si tu passes le x+=2 ligne 200 en x++ et le x+1 par x ligne 349, c'est a dire repasser en rayon par colonne, c'est pas beau a voir. Et je vais pas détailler la procédure mais si tu augmente la recherche dans le depth buffer ça aussi ça fait mal.
Et ce sont ces deux optis que j'ai faites depuis hier qui font que maintenant c'est a 25 fps
Pc master race - Apréciateur de Noctua moyen
Caltos : G90+E, FX-92+ (x2)
Lephenixnoir Hors ligne Administrateur Points: 24228 Défis: 170 Message

Citer : Posté le 30/12/2023 13:28 | #


On est d'accord que tu n'affiches pas les faces supérieures/inférieures des blocs, right? Que le côté.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Fcalva Hors ligne Membre Points: 519 Défis: 9 Message

Citer : Posté le 30/12/2023 13:29 | #


Pour le moment, oui
Pc master race - Apréciateur de Noctua moyen
Caltos : G90+E, FX-92+ (x2)
Fcalva Hors ligne Membre Points: 519 Défis: 9 Message

Citer : Posté le 11/01/2024 11:57 | # | Fichier joint


Petit up pour dire que ça s'améliore de jour en jour (enfin de jour ou je peux bosser), ma solution originale étant assez moche

Pc master race - Apréciateur de Noctua moyen
Caltos : G90+E, FX-92+ (x2)
Tuper4 Hors ligne Membre Points: 832 Défis: 19 Message

Citer : Posté le 11/01/2024 13:05 | #


Tu utilise fxsdk? Sinon, bravo pour ton travail!
Ne vous arrêtez pas quand vous êtes fatigé(e), arrêtez vous quand vous avez terminez.
Fcalva Hors ligne Membre Points: 519 Défis: 9 Message

Citer : Posté le 11/01/2024 13:11 | #


Fxsdk/gint oui, merci
Pc master race - Apréciateur de Noctua moyen
Caltos : G90+E, FX-92+ (x2)
Fcalva Hors ligne Membre Points: 519 Défis: 9 Message

Citer : Posté le 25/01/2024 10:29 | # | Fichier joint


Des textures maintenant (avec un peu de retard vu que j'ai été bien chargé par d'autres choses)


Alors oui c'est pas un bug les fps, mais c'est car je l'ai fait a coup de image_linear ce qui n'est pas très opti pour ce que je fais, j'ai déja fait des tentatives d'une boucle manuelle qui marchait bien bien mieux sur Maze3D mais c'est pas encore totalement ça
Pc master race - Apréciateur de Noctua moyen
Caltos : G90+E, FX-92+ (x2)
Slyvtt Hors ligne Maître du Puzzle Points: 2309 Défis: 17 Message

Citer : Posté le 25/01/2024 11:00 | #


Salut, ça progresse gentiment.
Ca vient de quoi ces bandes blanches verticales ?
Celles-qui font 1px de large en bord de texture je pense que c'est une histoire d'arrondi ou de borne supérieure dans une boucle for(;;), c'est un grand classique, par contre la bande large du milieu tu as une explication ?
Dans les précédentes versions j'avais aussi ça qui apparaissait.
There are only 10 types of people in the world: Those who understand binary, and those who don't ...
Fcalva Hors ligne Membre Points: 519 Défis: 9 Message

Citer : Posté le 25/01/2024 11:06 | #


Celle d'un pixel viennent d'un arrondi dans la demie resolution du raycast effectivement, mais celles aux axes j'avais déja adressé dans ce message, mais j'ai toujours pas trouvé de véritable solution.
Pc master race - Apréciateur de Noctua moyen
Caltos : G90+E, FX-92+ (x2)
Fcalva Hors ligne Membre Points: 519 Défis: 9 Message

Citer : Posté le 13/02/2024 12:55 | #


Up des 15j :
Alors j'ai été pris par la préparation de mon bac blanc de français, et je suis tombé dans l'ASM
Mais sinon je vais continuer de bosser, j'ai toujours une vague idée d'un jeu que je voudrais faire, mais je vais plutôt me concentrer sur finir mes objectifs de fonctionalités et de stabilité, ensuite le cross-platforme, pour qu'éventuellement d'autres personnes meilleures pour faire des jeux puissent s'en servir
Pc master race - Apréciateur de Noctua moyen
Caltos : G90+E, FX-92+ (x2)
Fcalva Hors ligne Membre Points: 519 Défis: 9 Message

Citer : Posté le 10/03/2024 12:02 | #


Update du projet :
Le projet principal, "Raycaster G90", est en pause jusqu'au 1 er avril au moins vu que j'ai un projet autre pour cette date
Mais un convertisseur de cartes custom est fait et un éditeur de cartes est en dev.
J'ai également fait un fork de la version du moteur utilisée dans Maze3D incluant les changements de qualité de vie les plus essentiels, Copy3DEngine, pour faire des petits jeux "3D" façilement.
Avec celui-ci j'ai donc fait un petit jeu en démo, Amogus 3D
PS : j'ai aussi MaJ le post pricipal
Pc master race - Apréciateur de Noctua moyen
Caltos : G90+E, FX-92+ (x2)
Précédente 1, 2, 3, 4

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