J'ai decider de me lancer dans la création d'un jeux video - C++ - Programmation
Marsh Posté le 05-08-2013 à 03:06:42
Alors, pour ce qui est de l'IDE, choisis un IDE C++ (Eclipse c'est java only je crois, et game develop je connais pas ), CodeBlocks fera très bien l'affaire.
Ensuite, il faut que tu choisisses une API pour le rendu graphique (j'entend par là, communication avec la CG), t'en a deux bien connus : OpenGL et DirectX.
Si tu souhaites que ton jeu soit dispo pour Mac & Linux, alors oubli tout de suite DirectX, c'est Windows only
Côté performance, c'est kif-kif même s'il me semble que DirectX est légèrement supérieur en terme de rapidité, et tu peux "pré-compiler" tes shaders (ça va te permettre de réduire un peu les temps de compilations, et ton code source est protégé si tu le souhaites).
Pour ce qui est de la gestion du fenêtrage et des entrées clavier/souris/manette, tu peux sois le faire comme un grand (API Windows / X11 pour Linux / jesaispasquoi pour Mac), soit tu peux télécharger une lib qui te fait ça. (dans ce cas, je te recommanderais la SFML )
Maintenant, faut savoir un peu dans quoi tu t'engages :
- Tu vas te manger beaucoup, beaucoup, beaucoup de mathématiques (matrices de transformations,quaternions, formules des BRDF pour les matériaux, tests de collisions,...)
- Tu vas devoir bien connaître tout ce qui est pipeline de ton API graphique (ce qui se passe quand tu veux dessiner ton modèle à l'écran)
- Tu vas devoir apprendre l'optimisation avec des trucs comme les octrees
- La modélisation / rigging / animation / skinning / texturing qui est un gros truc et requiert quelques années d'entraînements
- Et pas mal d'autre trucs
En somme, si tu veux te lancer dans la création d'un jeu solo, c'est loin d'être impossible mais il va falloir que tu progresses pas à pas, surtout si tu es débutant dans toutes ces matières et ça va te prendre pas mal de temps.
Ce que je te recommande, c'est de commencer par utiliser un moteur tout fait dans le style d'UDK / Unity, pour d'abord te concentrer sur la partie haut-niveau, qui est plus simple à prendre en main que le bas-niveau, et ensuite si ça te chante faire ton moteur comme un grand.
Pour ce qui est du choix des logiciels, Blender fera l'affaire (même si de nos jours, on développe le modèle sur ZBrush / autre logiciel de sculpt, ensuite on fait la version low-poly + développement UVs + baking des textures) et The Gimp aussi.(Même si je peux pas me blairer son interface )
Aussi, il faut penser à un autre truc, l'éditeur pour les niveaux qui est aussi un assez gros morceaux , dans ce cas je te recommande d'utiliser Qt (qui a été utilisé entre autre pour Photoshop ), c'est une Lib + IDE C++ vraiment génial.
Marsh Posté le 05-08-2013 à 11:37:19
Pour ce qui est de l'IDE, si tu développes sous windows, va prendre la version gratuite (appelée Express, je crois) de Visual Studio. Même si elle ne permet pas d'installer de plugins sympa, ca reste un outil assez génial.
Si tu n'es pas programmeur de profession, cela dit, effectivement, tu t'engages vers quelques nuits blanches
Marsh Posté le 07-08-2013 à 19:31:59
Si je veut vraiment tous bien connaitre sans faire de formation et sans créer un véritable jeux près à vendre il me faut 2 ans ? ou plus ? car le temps ne me dérange pas.
Au sujet de directX, sa sert à quoi plus précisément ?
Marsh Posté le 07-08-2013 à 19:45:09
en général, quand on parle de DirectX, on pense surtout à Direct3D, qui est une interface pour utiliser un accélérateur matériel pour faire du rendu 3D au même titre qu'OpenGL
DirectX fait un peu plus que ca, ca te permet aussi de gérer tes sons (DirectSound), tes vidéso (DirectShow) tes périphériques (DirectInput) ...
Mais bon, tu n'es pas obligé de tout utiliser, c'est juste un ensemble de trucs relativement cohérents et qui, du coup, se trouvent pratiques à utiliser de concerts quand tu fais une application multimédia.
Le temps que ca va prendre, comme toujours, dépend de ton ambition. Si tu veux faire un pong, que ce soit avec DirectX ou OpenGL, ca devrait pas te prendre deux ans ... Ca devrait être de l'ordre de : une journée pour programmeur C++, deux ou trois jours pour programmeur qui apprend C++, ou quelques semaines, peut-être, si tu n'es pas programmeur.
Cela dit, donc, c'est juste le dessus de l'iceberg, en arriver là ...
Marsh Posté le 07-08-2013 à 19:51:08
En programmation je ne m'y connais rien, je vais apprendre par le biais du net, trouver se qu'il faut pour les bases, ensuite je me demande par quoi commencé à apprendre ? apprendre le langage C++ tout de suite, ou bien apprendre a gérer correctement blender avec directX ?
Marsh Posté le 07-08-2013 à 20:05:32
Non, tu ne gères pas Blender avec DirectX.
En gros, une fois ton modèle fait sur Blender,tu l'exporte dans un format (existant ou fais par toi-même) qui sera ensuite exploitable avec ton jeu.
Direct3D va te permettre de dessiner ton modèle sur l'écran, de gérer des shaders, etc mais c'est à toi de lui "expliquer" comment tout ton rendu est fait.
Tu devrais commencer par un petit programme console, ensuite évoluer vers un petit jeu en 2D (avec la SDL par exemple), et une fois que tu es prêt, tu pourras te lancer dans la 3D, mais commencer la prog avec la 3D c'est du suicide
L'apprentissage de Blender se fera en parallèle, de manière général (les techniques de modélisation / skinning / rigging), et lorsque tu seras prêt tu pourras commencer à exploiter tes modèles mais pas avant.
Pour ce qui est du temps, ça dépend vraiment de toi, mais être capable de pondre un truc tout niquel (en prenant en compte le côté programmation + artistique), ça prend du temps, pas mal de temps...
Rien que l'apprentissage de la 3D est un gros mangeur là-dessus, compte facilement 3-4 ans avant de pondre des modèles dignes de ce nom, et pareil pour la prog, mais encore une fois tout dépend de ton investissement personnel et de ta capacité à apprendre et comprendre.
Marsh Posté le 07-08-2013 à 20:09:03
je compte bien y passer environs 300 heures par ans.
Donc pour bien débuter est ce que j'ai les logiciel qu'il faut ?
Blender prend la 2D il me semble.
Marsh Posté le 07-08-2013 à 20:57:52
Non, pour la 2D il te faut The Gimp (ou Photoshop ou autre), après ça dépend aussi de ce que tu souhaites faire.
300 heures par ans c'est très peu, ça fait moins d'une heure par jour, donc à ce rythme ça va vraiment te prendre 80 ans
Pour être franc avec toi, si tu veux juste faire "comme ça" pour essayer, mais que ça n'a pas vraiment de finalité, tu t'engages dans un sacré périple sans fin.
C'est pas tellement le genre de chose qu'on peut faire une fois de temps en temps si on espère aboutir à un truc concret, il te faudra un certain investissement personnel.
Marsh Posté le 07-08-2013 à 21:36:01
Mouais, chuis un peu du même avis. On ne cherche pas à te décourrager, mais autant être clair dans quoi tu t'embarques.
Tu as choisi la pente la plus raide: langage et API ultra bas niveau. Il y aura un sacré décalage entre ce qu'il est possible de faire +/- directement avec cette API et ce que tu aimerais faire. La différence se comble avec des tartines +/- bitables de code, spécialement pour tout ce qui touche à la 3D. Je ne pense pas que tu réalise à quel point OpenGL/DirectX sont bas niveau. Tu es a des années lumières d'avoir un moteur 3D fonctionnel (comprendre: attends toi à devoir écrire des milliers de ligne de code avant d'avoir autre chose qu'un cube qui bouge à l'écran). Des tartines de codes, ce n'est pas spécialement intéressant à écrire, pour ne dire ultra-chiant.
Aussi, je te déconseille fortement d'utiliser des sites internet pour comme formation initiale. Sur le net, il y a de grande chance que tu vas tomber sur du code moisi, mal foutu, qui utilise une API désuette et que tu vas en chier pour adapter à tes besoins. Commence par prendre un bon bouquin: ça te donnera une vision globale de ce qu'une techno peut (ou ne peut PAS) faire. Le net, c'est bien quand on sait plus ou moins ce qu'on veut, mais qu'on ne connait pas trop les détails.
Histoire de donner un truc un peu plus concret, il y a quelques mois, je me suis "amusé" à refaire un moteur 3d voxel à la minecraft en C, juste histoire de voir ce ça pouvait donner. Bah, ça m'a pris plusieurs mois, environ 6000 lignes de code (dont au moins 4000 rien que la gestion de la carte), pour un résultat franchment bof (ie: graphiquement je trouve ça moche, mais bon, la programmation 3d, ce n'est pas vraiment mon domaine: tout ce que j'avais sous la main était un bouquin sur opengl 2.1).
Marsh Posté le 08-08-2013 à 14:06:03
Je rejoins l'avis de Terminapor et tpierron. Pareil, c'est pas pour te décourager, mais si t'as très peu de connaissances en programmation, te lancer dans la 3D, c'est même pas la peine.
Déjà, va falloir te coder ton moteur 3D. Si t'en trouve un disponible gratuitement, faudra apprendre ses primitives et rentrer dans sa logique de fonctionnement, ce qui te prendra du temps, surtout si t'as jamais fait de 3D.
Faire de la 3D, sa suppose déjà avoir connaissance des algos de base : traçage de lignes/cercles, remplissage de triangles, Z-buffer, illumination (Lambert ou Phong pour les plus simples, ray-tracing ou autre méthode sinon), application de textures.
Pour l'animation, là, on attaque le calcul matriciel. Si t'as pas fait de robotique avant, ça va être chaud Enfin, les joies du calcul de détection de collisions ou de déformation.
En école d'ingé, en TP de CAO, on nous a fait coder un petit moteur 3D en C (sous Ms Visual C++ 5, autant dire que c'est pas jeune ) juste chargé d'afficher des objets (stockés dans de simples fichiers txt). On n'avait pas à coder la lecture des fichiers, juste de les afficher. La rotation de ces objets était aussi déjà coder. On devait donc juste coder les fonctions chargées de tracer une ligne (puis un triangle), de remplissage de ces triangles puis d'illumination par du Lambert puis du Phong. Ben rien que ça, j'y ai passé du temps.
Marsh Posté le 10-08-2013 à 21:21:06
Je te conseille d'utiliser un moteur existant, par exemple celui-ci: http://www.coffee3d.net/ qui est idéal pour apprendre le C++.
Dans tous les cas il vaut mieux apprendre à en utiliser plusieurs, tu as une liste là si tu veux : http://devmaster.net/devdb/engines
Marsh Posté le 17-10-2013 à 06:56:20
Je me suis moi même lancé il y'a quelques temps dans le jeu vidéo (le défi probablement)
Pour ma part, j'y vais un peu hardcore (développeur et électronicien de formation) en commencant par obtenir des morceaux de code utilisable en apprenant à utiliser les différentes API (pour l'instant, je me débrouille avec OpenAL, les codecs audio et ai commencé OpenGL et DirectX11)
Ce que je peux te conseiller, c'est de lire déjà,
- de te trouver des bouquins ou ebook qui sauront te guider et te convenir en fonction de ton niveau en tant que développeur. (Car par exemple pour directx, la doc microsoft est pas des plus intuitive pour quelqu'un ne connaissant pas l'api Win32 ou débutant dans le domaine.)
- De bien connaitre ton matériel
- un bon logiciel de graphisme
- de commencer humble (pas t'imaginer sortir un crysis ou un NFS dans l'année qui viens)
- d'essayer de faire régulièrement des petites démo au fil de ton avancée (afin d'avoir un résultat et de ne pas te décourrage avec du code à ne plus savoir qu'en faire et ne pas avoir de palpable pour te remotiver)
- et enfin, de ne pas hésiter à mettre ton envie de faire des jeux en standby si tu sature, parfois laisser le projet un ou deux jours (voir semaines) peu aider à aborder le projet différemment et à le reprendre plus efficacement
optionnel:
- UML si tu as un projet précis pour limiter la casse à la conception si tu ne sais pas par où commencer
- Du matériel de qualité, car tu va pas optimiser dès le début, et ton premier jet ne sera JAMAIS fluide, donc une grosse config ou une bien équilibré te seront utile.
Pour les ouvrages, je te recommande
=> Introduction to 3D Computer Graphics, Stereoscopic Image, And animation in OpenGL and C/C++ de Fore June (2008 réédition en 2011)
=> Chez Oreilley il y'a un livre sur le codage d'un moteur physique adaptés aux développeurs (ils ne te foutrons pas une couche de maths supérieurs à ce qui est utile, ils vont droit à l'essentiel)
=> practical rendering and computation with direct3d 11 pour les infos sur le fonctionnement interne de d3d11 (très détaillé ce bouquin d’ailleurs)
Pour les sources d'info, je te suggererais d'abord
- la FAQ de chez développez sur les mathématiques dans le jeu vidéo
- les tutos RasterTek qui proposent des cours pas à pas DirectX 10, 11 et OpenGL 4, en utilisant l'api Win32 le tout dans un petit framework (assez bon pour acquérir de bonnes pratiques)
- et enfin de te fixer des objectifs réguliers et échelonnés (les petites démo, je me répète mais c'est important, seront la base de ton travail au début, et c'est des ses démos que découlerons tes compétences et les avancés techniques te menant aux plus gros projets)
Pour la technique, DirectX est brut de décoffrage, c'est pas son abstraction qui te fera avancer rapidement, opengl permet d'avoir des résultat beaucoup plus vites et avec bien moins de code.
Si tu veux du multiplateformes => OpenGL, SDL ou ClanLIB pour le fenêtrage et les inputs, OpenAL pour le son (ou FMOD pour la simplicité), Bullet ou un autre moteur pour la physique pour avoir quelque chose de correct et maintenu.
Voilà, j'espère avoir pu t'aider pour ta demande de base, mais je te conseille plutôt unity ou un UDK plus adapté aux expérimentations et beaucoup moins frustrant car tu ne partira pas de rien et tu aura bien plus de doc que pour tout le reste (et plus en français aussi)
@tpierron
Tu as raison, sans compté que les API de bases ne gèrent aucun format de fichier nativement pour les objets 3d et donc il faut coder un parser
Marsh Posté le 05-08-2013 à 00:59:07
Bonsoir à tous, depuis petit, j’envisagé de créer un jour un jeux vidéo, et voila que je me suis lancer dedans, aillant des bases en conception du a mon métier, sur autocad ou solidworks, pour le reste je ne m'y connais pas grand chose, je sais qu'il faut que je me lance dans le langage C++ pour faire un jour un bon jeux, le jeux que je souhaite faire ne demandera pas autant de détails que pour un GTA mais plutot du genre tycoon, comme beaucoup de jeux de gestion de ce type.
J'ai donc télécharger et suis en train d'apprendre ces logiciels:
Pour la programmation: lequel choisir ? game develop, Eclipse ou codeblocks ?
Pour la conception 3D/2D : Blender
Pour le son : LMMS
Pour l'infographie : The Gimp
Donc est ce le bon choix ? je vais sans tarder apprendre le langage C++, une fois que je saurais tout sur tout, du logiciel de programmation jusqu'à la compréhension du langage C++ y aurait il autre chose que j'ai oublier ?
Certains vont certainement que c'est impossible de créer un jeux tout seul, certes mais je ne pense pas rester seule tout aux long, j'aimerais bien être épaulé par un pro qui puisse m'irriguer sur le bon ruisseaux.
Merci de bien vouloir donner votre avis mes chères Forumeurs.
---------------
mon site: http://lemondedelapierre.e-monsite.com/