[Moteur de jeu] Comment ca marche ?

Répondre
Partager Rechercher
Super sujet!
En attendant de dresser tout le schéma UML de ton projet, tu devrais poser les premières bases que tu comptes écrire pour ton projet ou voir même joindre les membres de projet Open Source pour apprendre les bases dans ce domaine et envisager comment eux ils ont fait et comment tu pourrais t'en inspirer

Bon courage!
Citation :
Publié par Meyleen Neoryl
Tentes Unity moi je te dirais.
Tout à fait, ca aide beaucoup mais si vraiment tu veux passer par le C++, alors faire de l'OpenGL et voir le moteur OGRE, et penser à la partie modélisme 3D, d'ailleurs c'est cool tu peux toujours piquer des modèles sur ceux de Ryzom, voir même reprendre le code du client server etc... vu que c'est Open Source, apparement, il faut voir pour le contenu du jeu lui même où sont les limitations par rapport aux licenses.
Citation :
Publié par elmonki
Tout à fait, ca aide beaucoup mais si vraiment tu veux passer par le C++, alors faire de l'OpenGL et voir le moteur OGRE, et penser à la partie modélisme 3D, d'ailleurs c'est cool tu peux toujours piquer des modèles sur ceux de Ryzom, voir même reprendre le code du client server etc... vu que c'est Open Source, apparement, il faut voir pour le contenu du jeu lui même où sont les limitations par rapport aux licenses.
C'est bon à savoir et ça me conforte dans le choix du C++.
Avant d'entrer dans une communauté de passionés, je préfère avoir un minimum de compétences, histoire de pas être démotivé par le premier surdoué venu...
Ah ben justement ca tombe mal en fait, car si vraiment tu veux t'investir dans ce genre de choses, je te conseille pas le C++, prends un livre pour apprendre le C++ tu vas voir c'est très indigeste, ca pourrait te rester à travers la gorge, par contre faire du Python s'amuser avec Blender, le Blender Game Engine, tester Unity 3D, le C# pour comprendre les bases de la programmation et à quoi ca correspond dans un développement de trucs 3D, ca pourrait être très enrichissant, ensuite tu passes au C++, tu fais un travail avec OpenGL et ensuite sur OGRE par exemple ou ce genre de choses, tu testes de nombreux outils, bibliothèques etc... et tu sauras trouver ta voie, déjà avec ces conseils tu peux partir pour 2 ans de programmation amateur dans ce domaine et on en reparlera...

Passe faire un tour sur le projet sourceforge WorldForge (mmorpg ou rpg), jette un oeil sur la documentation aussi ca peut t'inspirer, etc..

Tu peux toujours me contacter et je te donnerais des bons liens pour des tutoriels, pour Python, Blender, C#, Unity3D, C++, OpenGL, OGRE, etc...
Citation :
Publié par Keeth
Avant d'entrer dans une communauté de passionés, je préfère avoir un minimum de compétences, histoire de pas être démotivé par le premier surdoué venu...
Bah y a pas de soucis, tout le monde est le bienvenue dans ce genre de projets, il s'agit d'apprendre et de contribuer...

Pour les ressources, suis le lien de mon site dans mon profil, je suis en train de construire des pages web en ce qui concerne les tutos et autres infos sur le développement "games".

Laisse moi quelques jours encore pour remplir ces pages, je vais ce soir travailler sur le menu qui concerne Unity3D ca pourra aider des gens!

A bientôt
Heu...

Conseiller à quelqu'un de voir de l'openGL pur pour ensuite passer à Ogre: wtf?
Même chose pour le fait de faire du python pour utiliser le blender engine: wtf?

Un render engine c'est des années pour apprendre à en maitriser un seul, là tu lui conseilles à la chaine d'aller faire du python pour blender, du c# pour unity, et du c++ pour de l'OGL pur puis ogre (qui est l'un des plus chauds à maîtriser).
C'est pas 2 ans qu'il lui faudra mais 5.

Aucun intérêt de voir OpenGL pour ensuite passer sur un moteur comme Ogre, vu qu'Ogre s'occupe de tout ce qui est bas niveau.
OpenGL est utile uniquement pour comprendre sa pipeline et pour les shaders.
Et franchement plutôt qu'Ogre, mieux vaut conseiller Irrlicht: les tutoriaux sont clairs, la communauté est présente et active, la documentation est ultra complète (et c'est ce que j'utilise).
http://irrlicht.sourceforge.net/

Faire des modèles 3D c'est pas un seul métier, y'a le modeleur/sculpteur, y'a la texture, le rigging/animation. MAIS.
http://opengameart.org/ < modèles tout faits
http://www.makehuman.org/ < création assistée de modèle humanoïde (basé sur Blender)
https://www.mixamo.com/ < rigging et animations automatisé (basé sur Unity)
Disons que je lui donne des pistes pour tester des trucs, je pense pas qu'il va rester sur ces moteurs, frameworks, etc... et comme il comptait particulièrement faire des choses en C++...
Mais c'est pas les moteurs, les solutions Open Source qui manquent, Irrlicht ou autres, tant mieux que tu interviennes pour l'orienter vers une communauté forte.

En ce qui concerne Python, c'est facile à apprendre, et ça permet de rentrer dans le modélisme 3D avec Blender, aspect important de la création d'un jeu avec le moteur de rendu... Même si c'est pas indispensable pour Unity3D, ca lui permettra de goûter à autre chose, d'assez accessible et de voir, de comparer avec l’expérience qu'il aura en C# sur Unity ou quoi.

Mais perso, je lui conseille pas de commencer en C++, c'est lourd comme démarche, il risque de vite être découragé par la complexité du langage. Pour ça en particulier que je lui conseillais de voir Python ou même C# dans Unity, ça passe encore.

Quand j'ai commencé le C++, j'avais 20 ans et j'ai coulé de grosses larmes, j'en garde un très mauvais souvenir, alors que python tu peux faire mususes dans Blender, faire du web, c'est très polyvalent, C++, vaut mieux en faire un métier qu'un hobby pour faire des jeux, surtout les 2 premières années!

Pour terminer Keeth, si tu veux faire du C++ ton métier alors c'est une valeur sure en tant qu'analyste programmeur et affiliés, sinon c'est pas le joujou le plus accessible

Je dis ca pour que tu gardes la motivation sur les 2 ans qui viennent, j'ai croisé un jeune allemand qui faisait du C# dans unity3D, mais il lui manquait la maîtrise des outils logiciel de modélisme et animations 3D, par contre en 2 ans, il maitrisait vachement bien le truc sur Unity, il a crée un truc en FPS pas mal, alors qu'il est encore dans les études et qu'il dispose de peu de temps, c'est juste une passion (qui peut payer un jour).
https://www.mixamo.com/ c'est génial, les possibilités de ce truc pour faire un jeu sont incroyables, tu as d'autres outils pour les textures etc dans l'unity store en licence propriétaire, qui simplifie énormément la charge globale, reste le travail sur les maps, les AI, les scripts etc...

Faut compter 150$ par moi pour avoir accès à l'ensemble des solutions de Mixamo, et tu disposes de personnages 3D et leurs animations disponibles pour n'importe quel jeu et ad vitam eternam, c'est pas cher pour faire du travail de pro!

(tu as des démos et des trucs gratos venant de cette boîte, voir unity store...)

Rien qu'une équipe amateur pourrait se le payer, et faire des merveilles!
Je crois qu'il faut faire sa route dans la matière mais si on faisait un tuto sur le sujet ça serait plus utile pour ces gens qui ont soif d'apprendre...?

par contre en Python, c'est cool tu envois ca dans la console, tandis qu'en C++ tu pourras pas écrire le code comme ca et faire un test de ce genre est plus complexe...

D'ailleurs tu peux amener le code C++ et on verra déjà que c'est plus la même affaire... D'où l'utilité de Python pour comprendre simplement des mécanismes de programmation...

Mdr Xotrax attends je vais agrandir le pic
Citation :
Publié par Xotraz
Sans titre.png
Il semble que non.
Ben si je vois 2 après 5 non dans la console là? Oops ah oui tu as raison Xotrax, peut être qu'il pensait à b et pas à a...
hmm l'embrouille là
Il faudrait remettre les choses dans un contexte, pourquoi tu voudrais attribuer à b la valeur de la variable a, je te dis vaut mieux faire un petit tuto pour Keelt, sinon ca lui servira à rien cette discussion...?

D'ailleurs Neirdan il faut faire le code C++ sinon c'est pas très clair... (il va voir que là tu tapes pas juste une serie d'instructions qui vont être interprétées et qu'il faut créer un fichier dans un éditeur blabla, le compiler pour voir le résultat, faire le test quoi!

Dernière modification par elmonki ; 31/07/2014 à 00h30.
Keeth, pour trouver un juste milieu dans tout ca, il vaut mieux aller direct dans Unity3D tu t'éclateras bien plus, car tu vas voir les liens entre les différents composants dont tu as besoin pour faire un jeu, ensuite tu peux faire en parallèle du C++, du Python dans Blender etc... Tu as le temps je dirais pour avancer!

C++ et Python c'est vaste, alors que Unity3D et C# c'est faire des jeux tout de suite sans tourner autour d'un tas de bazzar qui sera qu'un apprentissage, tu auras des résultats concrets avec ces technologies dans Unity3D, et passez à la pratique direct!

Dernière modification par elmonki ; 31/07/2014 à 00h32.
Vous êtes en train de me filer la gerbe avec cette overdose d'infos.

Mon choix s'est porté sur le C++. C'est avec ce langage que je me sens le plus à l'aise. En plus il se situe à peu près à mi-chemin entre l'assembleur et le C#. Tant pis si c'est long et difficile, mon but n'est pas de foncer pour avoir des résultats le plus vite possible. De toute façon vu que j'ai arrêté de jouer assez brutalement, j'ai du temps à tuer tous les soirs pour m'occuper ! 3615 MALIFE

Je me connais et j'ai pas envie de me démotiver avant d'avoir commencé parce que j'ai raisonné en termes de productivité et de délais.

Ça fait toujours plaisir de lire vos interventions de passionnés mais doucement car bobo tête.....

Dernière modification par Keeth ; 31/07/2014 à 00h53.
arf dommage tu sais pas ce que tu rates avec Unity3D, quand je me suis mis dessus j'ai eu un choc sur l'évolution de la "technologie", c'est dingue la facilité que ca apporte au développement d'un truc... On peut faire bcp de choses et pas que des jeux d'ailleurs...

Maintenant, vas y lance toi et surtout accroche toi car tu vas en chier à mon avis, essaye les bases du C++ sans vouloir commencer à faire un jeu puis ensuite tu passes sur un truc simple, jeu de cartes ou quoi, puis tu testes le moteur http://irrlicht.sourceforge.net/ comme disait l'autre, la communauté la bas t'attend!
voilà c'est plus clair, ca peut aider notre ami, par exemple trouve une doc en C++ qui parle de ces subtilités ou genre, tu verras la compléxité est pas la même, c'est lourd le C++, la syntaxe est complexe, Python tu rentres tes instructions dans la console pour tester des trucs, et ca permet de toucher aux concepts de programmation orienté objet et ensuite basculer dans plus complexe, avec la compilation etc...

D'ailleurs Keeth si tu lis la doc qu'il vient de donner, tu verras que tu peux transformer ton code python vers le C, ou même faire du Cython (ou Jython pour le java), ça ouvre plein de perspective, et tu peux apprendre plein de choses à partir de ça: cf
How can I create a stand-alone binary from a Python script?

Mais je vais éviter de te perdre dans ces méandres car le C est différent du C++ car ce dernier fonctionne différemment vu qu'il est orienté objet, l'exécution du programme est pas le même, du coup je sors du sujet C++ et évite le C ou fais les 2 si ça te tente vraiment les langages de bas niveau, on parlera pas d'assembleur au risque de te donner des maux de tête mdr

Dernière modification par elmonki ; 31/07/2014 à 01h56.
Le C++ c'est pas si lourd que ça. C'est pas bien compliqué (comme pour n'importe quel autre langage d'ailleurs) de comprendre des rudiments de syntaxe et de programmer quelque chose qui fonctionne à peu près (au début même si tu sais pas ce qu'est un template, une fonction virtuelle, la surcharge, et d'autres détails syntaxiques, tu peux quand même faire un truc). Bon, ensuite, programmer proprement et faire du bon code (qui plante pas, bien découpé, et sans grosses erreurs de conception/d'algorithme), c'est autre chose (personnellement, je ne considère pas écrire du bon code en général).

Je ne dis pas que c'est une bonne idée de commencer à programmer en C++ (ni une mauvaise, je ne me permets pas de jugement de ce coté). Par contre je peux dire ce que je pense du langage, et d'où vient à mon sens la "difficulté".
Le C, et le C++ dans une (légèrement) moindre mesure ont l'avantage d'être largement répandus et de permettre un contrôle conséquent sur les opérations réellement effectuées par la machine (un de mes professeurs disait du C que c'est un excellent assembleur de haut niveau). Pour moi, ce sont des langages parfaitement adaptés à l'optimisation.
À l'inverse, on sera plus tenté en programmant en C ou C++ à se laisser embarquer dans des détails d'implémentation d'importance négligeable, de même certains outils d'autres langages ne sont pas naturellement présents en C++ (et on peut difficilement les ajouter avec une bibliothèque tierce sans avoir l'impression d'un hack dégueulasse), et pour certains usages il sera bien plus facile d'aboutir à quelque chose de fonctionnel avec autre chose. Par exemple, en OcamL, il y a un instruction "match with" pour faire du pattern-matching, et je peux vous assurer que rien que pour ça, il est vraiment beaucoup plus simple d'écrire un parser en OcamL qu'en C++.

Ici, on parle de jeux, donc la comparaison avec OcamL est peu intéressante, en revanche, beaucoup d'autres outils plus spécialisés ont été cités plus haut.
Si tu fais le choix de programmer en C++ (ou un autre langage relativement bas niveau), tu aboutiras beaucoup plus lentement à un résultat, mais tu auras une prise plus forte sur les rouages de ton jeu.
Si tu fais le choix d'utiliser des outils plus spécialisés, il te sera beaucoup plus simple d'expérimenter, et tu n'auras pas à te poser des questions d'optimisation inutiles (de même, la plupart du temps ça marchera mieux que si tu l'avais codé à l'arrache en C++, dans de rares cas en revanche il se peut que ça merde totalement auquel cas c'est là que le C++ se justifie).
Objectivement, pour un game designer, la seconde option me semble la meilleure. Mais personnellement je choisis souvent la première parce que j'aime savoir exactement ce que je fais et reprogrammer ce que d'autres ont déjà fait (soyons clairs, c'est une perte de temps, mais ça m'amuse).

Bref, tout ça pour dire que, le C++ n'est pas "dur" à appréhender, en revanche, aboutir à quelque chose de "satisfaisant" est long, et aboutir à quelque chose de réellement rapide est dur (d'ailleurs la plus grosse partie de l'optimisation vient de l'algorithme plus que de l'implémentation, le C++ permet juste une implémentation plus efficace, pas forcément de meilleurs algorithmes, sauf si tu innoves de ce coté).
Mmmmm.... Je ne suis pas d'accord.
Le C++ demande une gestion manuelle de la mémoire, dans son attribution, sa libération, comme dans la manipulation de certains de ces objets.
Le C++ est une sainte horreur à compiler. Même sur plate-forme unique, tout les projets, toute les libs utilisent des systèmes de build différents, dont certains ne prennent pas en charge certains OS, certains IDE. Dès que tu passes à du multi-plateformes, tu t'arraches les cheveux, là ou c'est trivial pour d'autre langages.
Le C++ a énormément de concepts différents, compliqués, et les avis sur leurs cas d'utilisation ne font pas toujours l'unanimité (le plus basique : quand utiliser des pointeurs, quand utiliser des références ? Ou alors : doit-on utliiser l'héritage multiple ? Quand ?)
Le C++ génère des erreurs de compilation totalement imbuvables, en particulier dès qu'on commence à utiliser des templates.
Le C++ est ultra chatouilleux sur l'ordre de ses déclarations.

Je pourrais continuer longtemps comme ça. Par rapport à Java ou Python, C++ est réellement compliqué. Celui qui suivra des cours aura des instructions claires sur quoi utiliser, quoi laisser de côté dans un premier temps. L'autodidacte risque de prendre vite de très mauvaises habitude avec ce langage, là où un langage mieux encadré lui permettra d'apprendre des bases qu'il pourra réutiliser comme un phare dans la nuit quand il passera sur du C++.
Citation :
Publié par 'Az
Mmmmm.... Je ne suis pas d'accord.
Le C++ demande une gestion manuelle de la mémoire, dans son attribution, sa libération, comme dans la manipulation de certains de ces objets.
Le C++ est une sainte horreur à compiler. Même sur plate-forme unique, tout les projets, toute les libs utilisent des systèmes de build différents, dont certains ne prennent pas en charge certains OS, certains IDE. Dès que tu passes à du multi-plateformes, tu t'arraches les cheveux, là ou c'est trivial pour d'autre langages.
Le C++ a énormément de concepts différents, compliqués, et les avis sur leurs cas d'utilisation ne font pas toujours l'unanimité (le plus basique : quand utiliser des pointeurs, quand utiliser des références ? Ou alors : doit-on utliiser l'héritage multiple ? Quand ?)
Le C++ génère des erreurs de compilation totalement imbuvables, en particulier dès qu'on commence à utiliser des templates.
Le C++ est ultra chatouilleux sur l'ordre de ses déclarations.

Je pourrais continuer longtemps comme ça. Par rapport à Java ou Python, C++ est réellement compliqué. Celui qui suivra des cours aura des instructions claires sur quoi utiliser, quoi laisser de côté dans un premier temps. L'autodidacte risque de prendre vite de très mauvaises habitude avec ce langage, là où un langage mieux encadré lui permettra d'apprendre des bases qu'il pourra réutiliser comme un phare dans la nuit quand il passera sur du C++.
Le C++ demande un apprentissage de plus de notions, et c'est aussi ce qui le rend intéressant. Une fois que tu sais faire des new et des delete, tu pourra te mettre à un langage plus simple qui n'en demande pas mais tu pourra aussi passer à un langage plus contraignant (we love malloc <3).
Et puis ce n'est pas une notion compliquée à apprendre !
Pour ce qui est des "erreurs de compilation imbuvables", ça n'a pas à voir avec le langage mais le compilateur que tu utilise. Personnellement, j'aime beaucoup les tonnes de messages d'erreur de GCC, ça permet de comprendre exactement l'erreur.
Citation :
Pour ce qui est des "erreurs de compilation imbuvables", ça n'a pas à voir avec le langage mais le compilateur que tu utilise. Personnellement, j'aime beaucoup les tonnes de messages d'erreur de GCC, ça permet de comprendre exactement l'erreur.
C'est GCC qui peut balancer 40 lignes incompréhensible pour juste un symbole non déclarer dans une classe templété.
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés