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


Fcalva Hors ligne Membre Points: 519 Défis: 9 Message

Citer : Posté le 24/07/2023 11:20 | #


Non c'est plus de la taille des valeurs en question, avec des valeurs inversament proportionelles, ça "avance" de beaucoup par case dans l'autre direction, et donc ça "rate" les murs ou même se retrouve en dehors de la distance de rendu au premier "pas"
Pc master race - Apréciateur de Noctua moyen
Caltos : G90+E, FX-92+ (x2)
Lephenixnoir En ligne Administrateur Points: 24229 Défis: 170 Message

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


Aaah, malin. Tu peux juste normaliser les vecteur de direction dans ce cas non ? (Enfin normalement tout le principe du DDA c'est de passer par toutes les cases intermédiaires ?)
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Loieducode Hors ligne Membre Points: 191 Défis: 6 Message

Citer : Posté le 25/07/2023 18:41 | #


Pourquoi pas essayer de faire un genre de Duke3D/Build engine, au lieu d'un raycaster?
Trickswriting(sort le 1er avril):
   100%
Acrocasio En ligne Membre Points: 974 Défis: 0 Message

Citer : Posté le 25/07/2023 18:48 | #


C'est simple, c'est grâce à ce Raycaster qu'on peut faire ces jeux.

Pour avoir un rendu 3D, il faut un moteur 3D ou un Raycaster.
Fcalva Hors ligne Membre Points: 519 Défis: 9 Message

Citer : Posté le 25/07/2023 19:43 | #


Et puis ça fait que 25j que je bosse sur la version actuelle, je vais pas te sortir Duke 3D (et puis même si j'avais le temps je ferais autre chose)
Pc master race - Apréciateur de Noctua moyen
Caltos : G90+E, FX-92+ (x2)
Loieducode Hors ligne Membre Points: 191 Défis: 6 Message

Citer : Posté le 25/07/2023 19:43 | #


> C'est simple, c'est grâce à ce Raycaster qu'on peut faire ces jeux.

Ouais, mais un moteur à la Duke3D permetteraient plus d'effets(par exemples des murs avec un angle != 90 degrés) sans le coût de trouver la distance entre le joueur et un point 396(environ) fois (c'est juste une ""translation"" de quelques points et quelque effets de projection à ce que je sais)

> Et puis ça fait que 25j que je bosse sur la version actuelle, je vais pas te sortir Duke 3D (et puis même si j'avais le temps je ferais autre chose)

Ouais
Trickswriting(sort le 1er avril):
   100%
Fcalva Hors ligne Membre Points: 519 Défis: 9 Message

Citer : Posté le 25/07/2023 19:49 | #


Oui oui, un moteur style Duke 3D/Doom est plus intelligent, mais est aussi plus complexe, ça reste mon premier vrai jeu et gros projet de prog.
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 05/08/2023 11:42 | #


Ça va faire depuis la sortie de Maze3D ou 16 jours que j'ai pas donné de nouvelles
J'ai fait une pause pour profiter des vacances (Et de MGSV), je reviens dessus sérieusement et donc j'ai les maps tiled qui sont dans les tuyaux, ainsi que des sprites (!) qui devraient marcher (Dans l'état actuel je peux pas tester). D'ici la fin des vacances je pense pouvoir sortir une bonne démo
Mais bien qu'un peu pessimiste, je ne compte pas sortir de vrai jeu avant au moins octobre, déja je ne vais plus avoir plusieures heures par jour, et je compte aussi faire quelquechose de plus poli et appréciable que Maze3D
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 15/08/2023 14:20 | #


Petite maj de la semaine : Je travaille dessus, bien qu'un peu lentement, et j'ai la map Tiled qui est fonctionelle, ainsi que les sprites qui sont implémentés mais ne marchent pas. J'ai également réussi a faire marcher correctement le sampling des textures pour éviter l'étirement quand on se rapproche, et je vais implémanter ça dans Maze3D dans les jours qui viennent. Je vais aussi faire la V 0.4 de démo apportant les denières avancées.
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 23/08/2023 09:04 | #


Maj de la "semaine" #2 : Ça avance moins vite que prévu, surtout que je travaille sur le RPG collaboratif et j'ai également passé quelques heures sur Windmill. Bref je me disperse.
Les avancées :
- Les sprites marchouillent mais il faudrait re-refactoriser
- Passage en P8 qui ne passe pas très bien (il faut que je fasse coincider les palettes et j'arrive pas encore) mais augmente un peu les perfs
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/08/2023 12:39 | #


Ça fait seulement 2 jours, mais je peux faire une nouvelle anonce : J'ai intégré Azur !
La démo : https://gitea.planet-casio.com/Fcalva/Raycaster_G90/releases/tag/Alpha-0.3.2
Intégré est un bien grand mot, mais un framerate de fou vient avec ça : 37 fps (!) sans overclock, bien que ce soit sans textures c'est plus élévé que les plus rapides de mes démos avec les fonctions de Gint, elles plafonant à 29 fps.

Et je l'avais pas anoncé ici, même si j'ai changé les liens, mais j'ai migré vers le Gitea de Planète Casio, le nouveau repo étant https://gitea.planet-casio.com/Fcalva/Raycaster_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 05/09/2023 22:20 | #


Salut, petite maj de la "semaine" :
Je suis en train d'essayer de faire marcher les textures avec Azur*, mais vu que j'arrive pas a passer beacoup de temps d'affilée dessus (c'est assez long quand rien n'a l'air de marcher) je me suis mis a faire de la refactorisation intensive pour rendre le tout bien plus propre.
Je sais que j'avais dit une démo de sprite pour la 0.3, puis pour la fin du mois dernier, mais je suis parti sur d'autres chemins. Ça va venir prochainement je vous le dis
Et j'ai aussi repris les cours, et donc je vais avoir sacrément moins de temps pour le dev

*enfin techniquement ça marche mais c'est de la couleur de la mémoire non initialisée
Pc master race - Apréciateur de Noctua moyen
Caltos : G90+E, FX-92+ (x2)
Lephenixnoir En ligne Administrateur Points: 24229 Défis: 170 Message

Citer : Posté le 05/09/2023 22:23 | #


Coucou, si t'as des problèmes techniques et un protocole de test raisonnable hésite pas à demander, je peux jeter un oeil.
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 05/09/2023 22:25 | #


Ok, je vais essayer de remettre dans un état fonctionel (j'en suis au milieu de faire un struct de joueur propre) et je vais push sur le Gitea si tu veux jeter un coup d'oeil, merci d'avance
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 12/09/2023 20:09 | #


Donc, de retour pour la maj de la semaine (pour de vrai cette fois) : J'ai implémenté un struct Player, permettant de rassembler toutes les données relatives au joueur, ce qui sera important dans le futur. J'ai aussi mis en place une liste de textures, bien plus propre et pratique que le passage manuel en paramètre .
Et pour Azur, j'ai commencé à écrire mon propre shader pour dessiner les murs, ce qui est une tâche un peu complexe.

Vous l'aurez bien compris, je suis pris par les cours (et c'est que le début !), et donc je ne peux pas vraiment avancer au même rythme que pendant l'été (enfin surtout que Juillet, vu qu'en Août je suis parti et un poil m'a poussé dans la main )

PS : J'ai failli oublier le truc important, c'est que j'ouvre les suggestions de noms pour le moteur ! (Car oui, "Raycaster G90" c'est pas très vendeur, lustucru )
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 03/10/2023 11:44 | #


Maj du mois : Ça avance lentement, pour les causes citées dans la maj précédente, mais ça avance quand même

Étant donné les retards significants sur le projet, j'ai laché l'idée d'écrire mon propre shader, utilisant 177Ko de RAM et des commandes d'image a la place. Je sais je sais . Mais ça reste un bon bout plus rapide que Maze 3D, bien qu'une toute petite erreur de syntaxe (que je suis en train de régler) fait que ça plante dès que ça essaye d'afficher une des vraies textures (le buisson ou les briques)

Et au passage, hésitez pas a donner des suggestions de nom, ou même a contribuer, le projet est open-source après tout
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 17/10/2023 17:52 | #


Donc après 2 semaines jour pour jour : La version Azur marche sans hic désormais, bien qu'il reste un peu a optimiser je pense, et j'ai un truc qui est pas super loin de marcher et 100x mieux que mes solutions précédentes pour les sprites.
Si il y a des demandes, je vais sortir une version, sinon entre temps vous pouvez build la dernière version en commentant ( // devant ) draw_sprites(); dans main.c
Pc master race - Apréciateur de Noctua moyen
Caltos : G90+E, FX-92+ (x2)
Lephenixnoir En ligne Administrateur Points: 24229 Défis: 170 Message

Citer : Posté le 17/10/2023 18:03 | #


Si je suis bien, cette version est sur Azur mais utilise toujours les images de façon générique right?
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 17/10/2023 18:27 | #


Oui, c'est texturé avec un index et utilise Azur. D'ailleurs niveau perf on est a 20-25 fps sans OC, ce qui est pas mal du tout.
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 27/10/2023 23:28 | #


La maj de la semaine 10 jours : Avec les vacances j'ai déja abbatu pas mal de travail, mais pas vers la stablité parceque je me suis dit que gérer un niveau c'était pas assez, donc maintenant il y en a 3 (Enfin c'est pas encore au point mais ça avance)
Et sinon j'ai laché Azur, l'ajout de complexité ne valant pas le patch magique du futurtm que j'ai trouvé, écrire directement en VRAM ! Au cas où vous n'aviez pas remarqué j'ai passé un coup de ça sur Maze 3D et il y a un petit +50% de FPS, ce qui fait rentrer largement dans mon objectif d'être jouable sans OC.
Et sur ce, bonne suite de vacances .
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 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)

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