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 !
Citer : Posté le 07/07/2023 15:00 | #
C'est drôle, moi aussi depuis récemment je vouudrais m'y mettre, mais en C.Basic
En tout cas ça a l'air cool
FastGeek, a very simple guy
Projet(s) terminé(s) : CRL
Projet(s) en cours :CRLII
Citer : Posté le 07/07/2023 15:41 | #
C'est quoi la différence Raycaster et Raytracing ?
Tous que je sais c'est que Raytracing il y a des millions de calculs à faire.
Je suis en train de travailler sur TD'PC : un Tower Defense sur G35+EII (Bien sûr que oui je travaille dessus )
Cursor Location
Proies
Citer : Posté le 07/07/2023 15:42 | #
Raytracing, c'est pour la gestion des lumières et reflets, en gros
Raycasting, c'est pour simuler de la 3D dans un environnement 2D. (utilisé pour le célèbre DOOM, par exemple)
Citer : Posté le 07/07/2023 15:42 | #
Grosso modo raycasting c'est en 2D et raytracing en 3D
libMicrofx : https://www.planet-casio.com/Fr/forums/topic17259-2-libmicrofx-remplacez-fxlib-pour-faire-des-add-ins-tres-legers.html !
Racer3D : https://www.planet-casio.com/Fr/programmes/programme4444-1-racer3d-mb88-jeux-add-ins.html
Citer : Posté le 07/07/2023 15:49 | #
Ah, bon je vais aller regarder une vidéo Youtube sa sera plus simple.
Je suis en train de travailler sur TD'PC : un Tower Defense sur G35+EII (Bien sûr que oui je travaille dessus )
Cursor Location
Proies
Citer : Posté le 07/07/2023 15:50 | #
Raytracing, c'est pour la gestion des lumières et reflets, en gros
Raycasting, c'est pour simuler de la 3D dans un environnement 2D. (utilisé pour le célèbre DOOM, par exemple)
Non le raycasting c'est Wolfenstein 3D / TES I : Arena
Doom c'est plus de la 3D, et c'est vachement plus avancé.
C'est quoi la différence Raycaster et Raytracing ?
Tous que je sais c'est que Raytracing il y a des millions de calculs à faire.
Là on parle de quelques centaines de multiplications et quelques millers d'additions par frame. Si c'est lent c'est parceque pour le moment ça utilise des flottants, quand je vais passer en entiers ça va faire BRRRRRRRRR (sans éxagération. Et c'est déja fluide avec un OC F5 de Ptune 3)
Caltos : G35+EII, G90+E (briquée )
Citer : Posté le 07/07/2023 15:53 | #
Heu non, DOOM (les premiers, j'ai oublié de préciser) c'est pas plus de la 3D ou quoi, c'est juste de la 2D. Mais avec du "lancé de rayon" (raycasting en français).
Même si le moteur RayCasting de DOOM est plus évolué que celui de Wolfenstein, c'est quand même du Raycasting, point.
Citer : Posté le 07/07/2023 15:59 | #
Heu non, DOOM (les premiers, j'ai oublié de préciser) c'est pas plus de la 3D ou quoi, c'est juste de la 2D. Mais avec du "lancé de rayon" (raycasting en français).
Même si le moteur RayCasting de DOOM est plus évolué que celui de Wolfenstein, c'est quand même du Raycasting, point.
Doom I et II sont en 3d. Les décors sont décrits en 3d (plan vertical + hauteur de la pièce). Tu peux te déplacer verticalement. Le moteur est fondamentalement 3D, même si le rendu en colonne empêche de pouvoir bouger la caméra verticalement, et pour simplifier les calculs de collisions ils sont faits en 2d.
On avait déja eu cette discussion en plus.
Caltos : G35+EII, G90+E (briquée )
Citer : Posté le 07/07/2023 17:10 | #
V 0.1.4 sortie. Pas grand chose, le gros changement sera avec la V 0.2
Caltos : G35+EII, G90+E (briquée )
Citer : Posté le 07/07/2023 21:18 | #
J'ai pas pu encore tester mais ça m'a l'air solide comme truc.
Sinon pour ceux qui voudrais faire ça en C Basic, je déconseille. J'ai moi même essayer et il faudrait faire tourner la calculatrice en x 3 pour avoir un rendu fluide mais tout juste lisible visuellement.
Après c'est peut être parce que j'ai pas cherché à optimiser le tout et que j'ai tenté de faire un raycaster sur une semaine.
Citer : Posté le 08/07/2023 00:36 | #
J'ai finalisé le passage en fixe (merci Slyvtt)
Donc maintenant on tourne autour de 25-27 fps. La prochaine optimisation serait probablement de mettre en cache les lignes et dessiner d'un coup (plus on est proche d'un mur, moins ça va vite. Quand on est proche d'un mur il y a moins de raycast et plus de ligne a faire)
Je vais sortir une 0.2 demain quand j'aurais résolu le fait que les artefacts cardinaux s'agrandissent au fur et a mesure qu'on bouge.
Edit : Pour le fun j'ai essayé en OC ptune F5 et ça tourne autour de 50 fps (!) et atteint même les 55 par moments. Incroyable, ça tourne mieux que la plupart des jeux PS x)
Caltos : G35+EII, G90+E (briquée )
Citer : Posté le 08/07/2023 08:23 | #
Doom I et II sont en 3d. Les décors sont décrits en 3d (plan vertical + hauteur de la pièce). Tu peux te déplacer verticalement. Le moteur est fondamentalement 3D, même si le rendu en colonne empêche de pouvoir bouger la caméra verticalement, et pour simplifier les calculs de collisions ils sont faits en 2d.
On avait déja eu cette discussion en plus.
Doom 1 et 2, basés sur l’ID Tech engine 1, est un moteur de rendu raycasting qui prend des niveaux en 2D comme entrée. C’est donc de ka pseudo 3D. Perso je dis 2,5D car les niveaux et le comportement en jeu est en 2D.
L’exemple de justificatif classique est l’impossibilité d’avoir dès salles l’une sur l’autre.
Le premier vrai jeu 3D de ID software est Quake qui lui est en vraie 3D.
Citer : Posté le 08/07/2023 11:53 | #
La V 0.2 est désormais disponible, avec maintenant 25-27 fps grâce a la lib de point fixe de Sly, le "glissement" des valeurs corrigé, et une distance de rendu plus grande.
Caltos : G35+EII, G90+E (briquée )
Citer : Posté le 08/07/2023 11:58 | #
Juste, petite question : J'ai pas trouvé, y'a une touche pour afficher un compteur de fps ?
Et bravo, au fait, pour les fps gagnés ! C'est dingue ! Et avec un peu d'opti, on pourrait sûrement aller plus loin, nan ?
Citer : Posté le 08/07/2023 12:00 | #
C'est dans la dernière version (pas avant). Ensuite il y a pas de touche et c'est un compteur de temps d'image pas de fps.
Caltos : G35+EII, G90+E (briquée )
Citer : Posté le 08/07/2023 12:02 | #
Ah oui, ok. Ben pour l'instant, je peux pas l'essayer, mais je vois ça tout à l'heure !
Citer : Posté le 09/07/2023 18:33 | #
Est ce que tu dessines directement dans la vram ? Ça pourrait rendre le raycaster bien plus rapide.
libMicrofx : https://www.planet-casio.com/Fr/forums/topic17259-2-libmicrofx-remplacez-fxlib-pour-faire-des-add-ins-tres-legers.html !
Racer3D : https://www.planet-casio.com/Fr/programmes/programme4444-1-racer3d-mb88-jeux-add-ins.html
Citer : Posté le 09/07/2023 18:35 | #
Non j'utilse dline(); par colonne suivi de dupdate(); une fois par frame. Et pour le moment je comptais pas aller écrire directement en vram mais cacher l'écriture et écrire d'un coup, et encore pas encore vu que j'ai de la marge niveau perf.
Edit : pas écrire, mais mettre dans le framebuffer
Caltos : G35+EII, G90+E (briquée )
Citer : Posté le 09/07/2023 18:47 | #
Bah gint fait déjà du double buffering et tu peux même en faire du triple je crois, mais je ne sais pas comment.
libMicrofx : https://www.planet-casio.com/Fr/forums/topic17259-2-libmicrofx-remplacez-fxlib-pour-faire-des-add-ins-tres-legers.html !
Racer3D : https://www.planet-casio.com/Fr/programmes/programme4444-1-racer3d-mb88-jeux-add-ins.html
Citer : Posté le 09/07/2023 18:50 | #
Le truc c'est qu'écrire une ligne dans le framebuffer puis faire le calcul pour la suivante puis faire cette ligne là ect.... ça doit pas être le plus rapide en accès mémoire, en plus du fait que dline() utilise un algo pour faire des lignes diagonales alors que j'ai que besoin de faire des lignes verticales. En tout cas le dessin de la ligne est la partie la plus lente de la boucle j'ai l'impression, donc si il y a de l'opti a faire c'est là.
Caltos : G35+EII, G90+E (briquée )