[WIP] Moteur 3D Towanda en direct Live !
-
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 !
ModJe profite du topic de screetch
Qqn aurait-il des liens pour des tuto genre les algo pour les nuls.
/me aimerait se culturer la cervelle
@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ûrementJe sais pas si ça pourra aider, j’ai trouvé ça il y a quelques temps :
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
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
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
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 !
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 !
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!
@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 !
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 !
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 !
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
@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.
- Vous devez être connecté pour répondre à ce sujet.
› Forums › AmigaOS, MorphOS et AROS › Développement › [WIP] Moteur 3D Towanda en direct Live !