Bonsoir a tous,
Voilà j´ai du mal a avoir le déclique sur la prog 3d avec python...
Prenon l´exemple d´un jeu baston 3D:
Je pense que pour comprendre il faut que je fasse la prog d´éléments petit a petit sans utiliser un moteur tout fait!
Commencer par afficher le perso, puis le faire avancer, lui faire donner un coup etc...
Mais comment faire???
Si quelqu´un pouvais me dire coment il s´y prendrais?? ça m´aiderais a mieux comprendre.
Pour commencer, imaginons que je veux afficher un cube et au mileux de l´écran un mur.
J´appui sur avant le cube a vance et quand il touche le mur il s´arrête. Comment le faire??
Sachant que je connais le python, m´expliquer en utilisant ce language m´aiderais.
En faite, la seul fois ou j´ai prog des truc qui bouge c´est avec flash mx. Donc c´était assé simple...
Mon premier conseil, c´est de separer les problemes. D´un coté tu as l´affichage et de l´autre la gestion du mouvement.
Donc dans un premier temps, apprends a afficher des objets.
Ensuite tu fera la gestion de ces objets. Pour gerer une collision, on utilise des formes geometriques simplifiées que l´on associe a l´objet graphique. On utilise des spheres ou des boites. Un perso par exemple a en general un ensemble de 5 ou 6 spheres qui sont repartis sur son corps. Ainsi les calculs de collisions sont plus simples.
Pour ton exemple de cube qui rentre dans un mur, utilise des boites pour representer les volumes de collision. Il va te falloir ecrire un algo de collision boite-boite.
La facon de proceder :
- Calculer le deplacement voulu des objets
- Calculer si avec la nouvelles position, ca collisionne, si oui, ne pas deplace, si non, deplacer
- Affiche les objets
C´est vrai commencer simple.
Pour les collision le plus simple etant evidement les calcule sur les sphere.
Ma premiere appli DirectX a été un trick shot. Avec collision et calcule du mementum.
http://www.froggies-team.info/images/Divers/Trickshot.rar
Merci pour ces renseignement.
Mais quoi utiliser? Comment?
A part créer des questions/réponses,et faire de petites interfaces graphiques, je fait pas grand chose en python.
Soya3d me servira a quoi par exemple?
Un editeur/compilateur comme visual studio, visual C++, dev C++.
Tu instal le SDK de directX, ou d´openGL, voir les deux.
Et tu commence par les tutoriaux d´Andy Pike pour directX http://www.andypike.com/Home.asp
Avec le python tu peux faire plein de choses maintenant.
Il existe Py Ogre (portage du moteur 3D OGRE sous python)
et Py Game, librarie pour aider a faire des jeux.
Voila, c´est surement ca qu´il te faut.
Bonjour,
Pygame c´est pour la 2d, pas la 3d, c´est un portage de la librairie sdl sous python.
http://www.pygame.org/
Il y a un wiki pyogre içi, mais je n´ai jamais essayé ce que çà donnait:
http://www.ogre3d.org/wiki/index.php/PyOgre
Sinon il y a aussi pyopengl, qui est un portage de la librairie opengl sous python:
http://pyopengl.sourceforge.net/
Sur le site nehe productions tu a des tutoriaux pour faire de la 3d sous opengl. C´est très bien expliqué et c´est du pas à pas (d´abord un tuto pour ouvrir une fenêtre opengl, puis pour créer une surface 2d, puis un volume 3d, application de textures, déplacement dans un labyrhinte 3d, effets spéciaux, etc etc) mais c´est en anglais et les tutos à la base sont pour du c++. Néanmoins tu a des versions de ce que donne le code en python disponibles en bas de chaque tuto jusqu´au tutorial 10, donc en étudiant à chaque fois les articles en comparant au code python tu peut voir quelles sont les différences entre de la 3d c++ et python afin de comprendre toi-même comment çà marche.
http://nehe.gamedev.net/
Sinon pour l´instant je ne fais que de la 2d sous python, donc pour la 3d je ne peut pas aider, j´ai fait les 10 premiers tutos de nehe pour voir comment çà marche mais il y a longtemps et sans faire de truc à ma sauce ce qui fait que j´ai du probablement tout oublier. Là où les autres parlent plus haut de sphère et de cubes moi je ne gère pour le moment que des carrés ![]()
Merci pour ces belles infos ![]()
Y a pas de quoi.
J´avais oublié Soya3d que je n´ai jamais regardé comme Pyogre dans le détail non plus:
http://home.gna.org/oomadness/en/soya/index.html
C´est un moteur 3d python, il y a une série de tutoriaux içi:
http://home.gna.org/oomadadness/en/soya_tuto/index.html
Apparemment il faut quand même pas mal de connaissances en 3d à côté pour pouvoir utiliser çà correctement, genre savoir faire ses propres modèles sous Blender, comme ils le disent avant l´import de l´épée dans le 2e tuto.
Merci a tous.
Soya3d je connais, mais les tutos n´en sont pas vraiment et j´ai jamais réussi a les faires! Si je lance les fichiers des tutos ça marche, mais si je l´ai recopie en copiant/colant ça marche pas!!!
Après pyogre connais pas et pyopengl j´ai jamais réussi a le mettre.
Le problème c´est que toutes les infos que vous lme doner je les connais déja plus ou moins...
Seulement j´ai pas le déclique, qui chez moi, me fait tout comprendre d´un coup!!!
C´est toujour comme ça, si j´ai pas le déclique je ne fait que "faire du par coeur", sans comprendre! Ce qui fait que je ne peu évoluer par moi même!
Les seul mini-jeux que j´ai fait c´est avec flah mx. Avec mx j´ai eu le déclique qui m´a permis d´apprendre seul sans tutos ou autre!
Je faisait simplement des trucs comme diriger un petit vaisseau sur l´écran. Je lui avait appliquer une force d´inertie. Je mettais des portes et des clés etc...
Mais là j´ai pas le déclique, le truc qui va me faire comprendre et donc avancer.
Je voudrais faire des trucs simple et leur en rajouter petit a petit.
Comme afficher un cube fait sous blender, puis le faire avancer, reculer, aller vers le fond et revenir etc...
Tout ça petit a petit et a mon rythme.
Je vois, je vois.
En fait le déclic comme tu dit çà ne vient pas forcément tout de suite, parfois il faut prendre la peine de tester différentes choses avant de finir par t´orienter vers la solution avec laquelle tu es le plus à l´aise. Quand j´ai voulu me mettre à la prog de jeu il y a déjà un bon paquet de mois (avant je faisais que des petites applis windows) j´ai commencé par pygame puisque je programmais déjà en python, j´ai eu des difficultés à faire quelque chose qui tournait bien, alors je me suis mit à tester d´autres solutions pour voir si je m´en sortais mieux. Je suis passé par quelques languages basic que j´ai laissé tomber car trop simplistes, puis je me suis mit plus longtemps au c++ couplé à différente librairies comme allegro, sdl et opengl. Au final j´ai laissé tomber rapidement la 3d car je préfère programmer sur de la 2d, avec allegro malgré des débuts encourageants à la longue j´ai obtenu des résultats pires qu´en python et puis après j´ai appris quelques trucs dans des tutos sdl en c++ qui m´ont permis de corriger ce qui n´allait pas dans ce que je faisait avec pygame. Résultats des courses puisque je préfère personnellement bosser avec la syntaxe du python que je trouve plus claire que le c++ (même si le c++ c´est plus puissant) j´ai laissé tomber le couple sdl/c++ pour revenir à ce que je faisais au début, sauf que je m´en sort maintenant beaucoup mieux et que je suis à l´aise parce que j´ai eu ce déclic dont tu parle. Seulement il a fallu attendre plusieurs mois à voir d´autres trucs avant de l´avoir, le déclic.
Je ne dis pas que çà và être aussi long pour toi, mais n´hésite pas si tu ne sais pas trop vers quoi t´orienter à tester un peu de tout sans te limiter au python, à force de faire le tri tu finira bien par trouver ce qui te convient. Même si ce serait effectivement bien que quand on nous dise "prend çà pour faire tes jeux" on se débrouille tout de suite comme un chef malheureusement ce n´est pas bien souvent le cas.
Pour en revenir à la 3d donc tu n´es pas obligé de le faire en python. Tu peut essayer de le faire en c++ pour vois si çà t´interpelle plus, les tutoriaux nehe que j´ai donné au-dessus sont d´ailleurs fait exprès pour çà. Il y a aussi le dark basic, mais çà je ne connais que pour y avoir jouer, pas programmer. Je suppose qu´il y a d´autres languages capables de faire de la 3d aussi. Et sinon pour tes pyopengl et soya3d qui ne marchent pas il ne faut bien évidemment pas se décourager trop vite et plutôt chercher pourquoi çà ne marche pas, et ce d´autant plus qu´en t´attaquant d´office à de la 3d il ne faut pas t´attendre à quelque chose de facile quand on sait que rien que la 2d parfois c´est pas trop évident non plus.
merci bcp.
C´est justement le truc, celà fait déja un moment que je tourne autour. Le c++ j´en suis pas fan du tout. J´ai essayé le dark basic et j´ai pas accrocher. Puis avec 3d game studio j´ai apprécier mais le c-script et l´interface j´aime pas trop.
Comme je suis pas un pro et que je veux, pour l´instant, seulement comprendre comment on manie des objets 3d, bien je vais essayer avec jamagic. J´ai vu des exemples qui sont sympa et même, certains, impréssionnant. Je sais que c´est limiter mais c´est juste pour faire des petit trucs histoire de comprendre.
Pour soya3d c´est completement illogique! Si je lance le script du tutos ça marche, mais quand je recopie le tutos a chaque fois l´épée ne veux pas aparaitre!!! Y´a aucune erreur ossible puisque j´ai fait que recopier! J´ai chercher pendant un long moment, poser des questions et rien! Opengl ne veux pas s´instalé là c´est autre chose et j´ai pas chercher plus loin...
Après le déclique donc je parle c´est celui qui fait comprendre comment ça fonctionne.
Il faut que je visualise le fonctionnement, c´est comme ça que je fonctionne. Si je n´arrive pas a visualiser le fonctionnement en général, j´aurrais beau apprendre ça ne fera pas avancer le chmilblic.
Par exemple, pour comprendre clairement le fonctionnement d´un ordi je le visualise come une auto-route avec des voitures.
t je ´arrive pas a mettre des images sur la prog 3d. Je ne vois pas le raisonnement.