[WIP] Moteur 3D Towanda en direct Live !

15 sujets de 1 à 15 (sur un total de 40)

  • Screetch

      #8458

      Simple question de curiosité, je recherche l’algo de base d’un FPS, histoire de voir à peu près comment ça marche. Je me rappelle avoir trouvé ça il y a des années sur le net, mais je ne trouve pas…

      Si quelqu’un a ça, je veux bien voir ça ^^

      Edit : Je viens de retrouver ce que je cherchais :

      http://hpfool.free.fr/doom/algos/proptrig.html

      Si quelqu’un a autre chose, je reste ouvert ^^

      Abonnez-vous à ma nouvelle chronique "En Route vers le Futur" sur Youtube !

      Mod

      jegougou

        #129921

        Je profite du topic de screetch :-D

        Qqn aurait-il des liens pour des tuto genre les algo pour les nuls.

        /me aimerait se culturer la cervelle :-D

        AmiDARK

          #129922

          @Screetch : Si tu as des questions sur les FPS, j’avais développé X-Quad Editor qui permet de faire des FPS, je pourrais peut-être donner quelques conseils (attention je suis pas un pro … les algos pointus … c’est pas mon point fort ;) … Je parle surtout de structures générales et de réalisations de projet …


          @Jegougou
          : Loool :p Il y en a sûrement ;)

          Je sais pas si ça pourra aider, j’ai trouvé ça il y a quelques temps :

          http://amiga.sourceforge.net/amigadevhelp/

          thellier

            #129923

            Sinon tu peut aussi diviser l’espace en cubes ou mieux en carrés si le personnage reste à un étage (comme un damier)

            Après tu rattache tes objets 3d à un carré (comme dans les jeux 2d à base de “tiles” )

            C’est à dire que les objets immobiles (escaliers,murs,etc..) sont rattachés d’office à leur carré et ceux mobiles (ennemis)

            changent de carrés quand ils bougent

            Après l’angle de vue n’est qu’une zone triangulaire (un triangle 2d) sur ton damier 2D . Ce triangle de visibilité tourne avec le personnage. L’axe de rotation de ce triangle est son sommet = coordonnées du personnage sur le damier 2D

            Alain

            AmiDARK

              #129924

              C’est le principe utilisé par FPS Creator de TheGameCreators et par XQuad Editor que j’ai développé moi même ;)

              Screetch

                #129925

                Juste par curiosité, je créé mon propre moteur à partir de rien, juste pour voir si j’en suis capable. Ca avance plus vite que ce que je pensais ^^. Il a déjà un nom : Towanda (suggéré par Towanda justement ^^)

                Je le fais en SDL Basic, donc portable sous MOS et partout ou SDL Basic est ^^

                J’espère avoir une première version ce soir. Je vous tiens au courant :-D

                SDL Basic, c’est vraiment de la balle, j’ai l’impression d’être revenu sous Amos –> très simple d’emploi !!

                Edit 3H17 :

                Premier jet de mon moteur 3D, il affiche pour le moment une image 3D demandé située sur une carte en 2D, sans texture ni gouraud et dans une résolution horrible, mais j’ai pondu ça en une soirée :)

                J’ai encore pas mal de bugs sur cette première version que je vais tenter de résoudre un par un ^^

                Mes questions, s’il y a des utilisateurs de SDL Basic :

                – J’ai créé plusieurs écrans ScreenOpen, j’y accède semble t-il pour les modifier, mais je n’arrive pas à les rappeler pour les affichers, je n’ai que le dernier écran créé qui apparait. Pour le moment, je suis obligé de fermer (ScreenClose) mon écran pour voir apparaitre l’écran créé en dessous… Donc, comment récupérer mon écran précédent ? J’ai essayé Screen(numéro écran) mais je reste sur l’autre écran… Serait-ce que ces écrans sont superposés et non séparés les uns des autres ? SI c’est cela, comment avoir deux écrans que je traite l’un après l’autre ?

                – les couleurs sont codées de 0 (noir) à 16777215 (blanc). Je veux tester un semblant de gouraud et j’aimerais calculer les valeurs des dégradés, comment je sépare les RGB pour cela ? A moins qu’il y ai une méthode de calcul pour cela ?

                Je m’amuse comme quand je codais en Amos !! Je vous tiens au courant pour la suite ! Quand j’aurais fini, je créerais un petit tuto si j’ai un peu de temps pour cela.

                Edit : 12 mai

                Quelques corrections plus tard mon moteur Towanda avance petit à petit. C’est pour le moment plus simple que je le pensais, même si le principe reste ultra minimaliste.

                Voilà où j’en suis :

                En gros, j’ai réglé mon problème de screens. C’était effectivement une superposition de plans qu’il suffit de passer en alpha comme on le désire. J’ai donc ajouté une fonction pour afficher la carte en surimpression en pressant la touche de tabulation.

                Bugs à regler :

                – Il semblerait que seul la moitié de mon champ de vision soit pris en compte…

                – mon moteur prend en compte les coordonnées de mon personnage sur la carte, mais pas l’angle de vision qu’il garde à 0°. Surement un pb de conversion Degrés/Radians…

                Roadmap à courte échéance (or correction des bugs) :

                – affichage d’une arme,

                – prévoir un champ de vision non éliptique, car celui-ci cause une déformation des murs en leur donnant une forme arondie,

                – Ajout d’un fog pour rendre le clipping plus joli,

                – Ajout d’un pseudo gouraud sur les murs,

                – Se déplacer dans cet univers en 3D,

                – Arme se balançant suivant les déplacements du joueur,

                – Carte avec rotozoom lié au sens de déplacement du joueur…

                Je filerais mon code quand j’aurais quelque chose de potable pour ceux qui veulent regarder 8-)

                Sinon, je viens de tester sous Morphos (actuellement je développe sous l’environnement inclus sous Ubuntu) et le resultat bugue carrément, il affiche n’importe quoi… Je regarderais pourquoi plus tard :sweat:

                Abonnez-vous à ma nouvelle chronique "En Route vers le Futur" sur Youtube !

                Towanda

                  #129926

                  Eh bien, que de projets !!! J’espère que tu arriveras à le mener à bien de manière à ce que tu puisses te balader avec dans ma maison !!! ;-)

                  Towanda, le cri de “guerre” qui mène toujours les choses au positif !!! :-) :clap:

                  Screetch

                    #129927

                    Faudra que tu me trouves les plans, cela me servira de base d’essai pour une première démo ^^

                    Abonnez-vous à ma nouvelle chronique "En Route vers le Futur" sur Youtube !

                    Elric

                      #129928

                      Salut!

                      Bravo Screetch de t’y (re)mettre!

                      Pour moi ce ne sera pas avant mon “décollage”! ;)

                      …A en juger par le nom de ton moteur, ainsi que par les deux derniers posts avant c’t’y là, l’arme devrait être une rose et la “guerre” dans une autre évolution du mot Latin “bella”? ;)

                      Amigalement!

                      Screetch

                        #129929

                        @Elric : Faudrait que je réfléchisse à tes propositions ;)

                        Je vais rebosser un peu sur mon moteur demain. J’ai déjà implanté une arme (reprise sur Doom premier du nom) en tant que sprite pour tester ^^.

                        Edit 15 mai :

                        Le moteur avance peu à peu :

                        – Mes bugs sur l’angle de vision sont réparés,

                        – Une arme provenant de Doom est affichée en surimpression,

                        – Le personnage peut tourner sur lui-même, mais l’image est pour le moment ultra-saccadée… Va falloir que je trouve comment rendre ça plus rapide.

                        Abonnez-vous à ma nouvelle chronique "En Route vers le Futur" sur Youtube !

                        Screetch

                          #129930

                          Cela faisait un petit moment que je n’avais pas touché à mon petit moteur 3D…

                          Amélioration de la version 0.04c :

                          – Déplacement réel dans la map à l’aide du clavier (OKLM)

                          Pour la suite :

                          – Enlever l’effet clipping horrible,

                          – Ne plus traverser les murs,

                          – Enlever l’effet oeil de poisson,

                          – Mettre la carte en surimpression (TAB) à jour,

                          – Ajouter un effet gouraud,

                          – Ajouter des textures basiques.

                          Edit : Et une petite vidéo : Towanda 0.04c sur Youtube

                          Abonnez-vous à ma nouvelle chronique "En Route vers le Futur" sur Youtube !

                          Screetch

                            #129931

                            Y a t-il des costaud en géométrie ici ? Je suis bloqué sur un problème mathématique…

                            J’ai besoin de connaitre la longueur de la ligne CD.

                            Je connais :

                            – les distances AC et CB (qui sont égales),

                            – Les angles D et E

                            Le point D est mobile, je cherche donc à calculer la distance entre chaque point situé sur la corde AB et le centre C du cercle…

                            Merci de votre aide, cela permettra d’enlever mon effet fish eye du moteur ^^.

                            Sinon, voici ma version 0.05a

                            J’ai juste rajouté un dégradé sur le sol et le plafond.

                            Abonnez-vous à ma nouvelle chronique "En Route vers le Futur" sur Youtube !

                            Yomgui

                              #129932

                              |CD| = [ |AC|.cos(d/2) ] / cos(e-d/2)

                              Attention à la division par 0 ici: cela arrive avec d = pi, impossible de donner un angle e dans ce cas.

                              AmiDARK

                                #129933

                                Salut :)

                                Pour ma part j’utilise ça en 3D :

                                float Distance3D( float X1, float Y1, float Z1, float X2, float Y2, float Z2 ){

                                float RealDist = sqrt( pow( X1 – X2, 2 ) + pow( Y1 – Y2, 2 ) + pow( Z1 – Z2, 2 ) );

                                return RealDist;

                                }

                                C’est utilisable en 2D aussi :p

                                @ +

                                AmiDARK

                                Yomgui

                                  #129934

                                  @AmiDARK: ca c’est la formule de la distance euclidienne dans l’espace R3. Mais encore faut-il avoir les coordonnées du points… ce qui n’est apparement pas le cas ici.

                                  Mais ceci étant je trouve très étrange la façon donc opere ce moteur (avec des angles), c’est pas le plus pratique.

                                15 sujets de 1 à 15 (sur un total de 40)

                                • Vous devez être connecté pour répondre à ce sujet.

                                Forums AmigaOS, MorphOS et AROS Développement [WIP] Moteur 3D Towanda en direct Live !

                                Amiga Impact