IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement 2D, 3D et Jeux Discussion :

[Etude] Outils gratuits pour le développement de jeux vidéo


Sujet :

Développement 2D, 3D et Jeux

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juin 2004
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 42
    Points : 31
    Points
    31
    Par défaut [Etude] Outils gratuits pour le développement de jeux vidéo
    Bonjour,


    Je pars du principe qu'un projet sérieux (plusieurs personnes aux commandes) est lancé, en C++ et DirectX (ou OpenGl). Je cherche avant tout des technologies gratuites, mais il n'est pas interdit de comparer, voire de proposer des voies moins démocratiques.

    1) Quels sont les outils "externes" à envisager ?
    Pour ma part, j'en recense déjà deux :
    - Inno Setup, installeur solide et perfectionné, gratuit même pour les entreprises.
    - Doxygen, générateur performant de documentation, idéal pour faciliter les passerelles (de compréhension) entre différentes tâches, et utile dans la durée.
    -> D'autres idées ? Dev-C++ (et son successeur Code::Blocks) sont-ils à la hauteur d'un projet à envergure professionnelle ?

    2) Quels sont les outils "internes" à envisager ?
    -> Des librairies comme QT, ou OpenAl et OpenGl (pour un support de différentes technologies) ? Qu'en pensez-vous ? Ou d'autres librairies incontournables ? Dans quels domaines (3D, gestion des ressources du jeu, systèmes de scripts comme LUA) ?

    3) Les outils de gestion ?
    -> Y a-t-il des interfaces web orientées serveurs, qui permettent de stocker (par numéro de versions) les différentes versions du projet, en les classant par catégorie (les tâches - ex: gestion des ressources, moteur 3D, gestion du son et de la musique, ...). Il faudrait une technologie à peu près fiable, avec des fonctions rudimentaires, comme des commentaires et une indispensable protection (mots de passe, cryptage).

    Le principe de ce sujet est simple : il suffirait que chacun fasse part de son expérience, en indiquant par 1), puis 2) puis 3) la/les questions auxquelles il répond partiellement, en se justifiant, en mettant en gras les outils qu'il soutient inconditionnellement, et en normal ceux qu'il suggère simplement. Si les expériences pouvaient ainsi être partagées, ce serait l'idéal. Merci d'avance pour vos renseignements !

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    1) Inno Setup et Doxygen sont de bons outils, mais là je crois que tu vois un peu loin, ça ce sera plus pour la fin
    Quoique, comme tu l'as dit, Doxygen peut servir à générer de la doc interne intérmédiaire. Enfin selon moi le plus pratique pour ça c'est un wiki, indéniablement.
    Je n'utilise que Visual Studio, mais je pense que Code::Blocks peut faire l'affaire très largement pour un projet d'envergure. Note que si tu veux faire dans le portable, tu peux aussi utiliser un utilitaire de plus haut niveau du genre scons ou CMake.

    2) Il existe des tas de très bonnes bibliothèques gratuites, encore faudrait-il savoir ce que tu veux faire...

    3) Ce que tu cherches s'appelle SVN.

  3. #3
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 132
    Points : 89
    Points
    89
    Par défaut
    Visual studio C++ Express + DirectX

    NSIS pour l'install est pas mal aussi, mais bon t'as le temps de voir venir

    Autre chose que SVN ? Mercurial. Mais SVN est très bien (sauf pour le merge de branches).

  4. #4
    Rédacteur
    Avatar de Bakura
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    1 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 386
    Points : 2 640
    Points
    2 640
    Par défaut
    J'ai jamais fait de projet d'envergure mais les bibliothèques de boost peuvent aider peut-être. Notamment shared_ptr. J'en ait vu d'autres qui m'ont l'air pas mal non plus (array, pour avoir des tableaux de type C et la "sémantique" (je sais plus si c'est comme ça qu'on dit) du C++).

    Sinon si tu fais du C++, bien te renseigner sur la STL, je te sur-conseille le livre Effective C++ (que je n'ai pas encore lu d'ailleurs :p), mais pour avoir vu quelques extraits, il explique des choses, donne des conseils et déconseille plein de mauvaises pratiques qu'on prend...

  5. #5
    Invité
    Invité(e)
    Par défaut
    Les bibliothèques de boost, oui, bien pour gagner du temps de dev, mais à utiliser tout de même avec précaution, c'est fortement templatisé là dedans, et ça va très vite de se retrouver avec des temps de compilations assez barbares si on ne fait pas gaffe.

    Comme outils "externes", ne pas oublier tous les outils de génération de contenu (oui, un jeu, y'a pas uniquement du code...) autant pour les modèles 3d que pour les textures (dans le cas d'un jeu 3d) à ce niveau, j'aimerait cité MapZone ( http://www.mapzoneeditor.com/ ) qui permet de creer des textures procédureales très simplement. Il y a d'autres outils dans le même genre, mais je ne suis pas sur ma machine là, je n'ai donc pas accès à mes bookmarks (FXGen si je me souvient bien, par les mecs qui ont fait kkigger).

    Autrement, Pour totu ce qui est création de shaders, il existe des petits ide qui permettent d'editer/debugger/visualiser les shaders. FXComposer de Nvidia (c'est mon petit préféré), RenderMonkey d'ATI, et ShaderDesigner.

    Le premier ne marche que pour HLSL, mais les 2 autres fonctionnent avec HLSL et GLSL, et ShaderDesigner tourne sous linux (si c'est ce nom là, je me souvient plus exactement).

    On pourrait parler pendant des heures des différents outils disponibles, bibliothèques et autres accessoires, il en sort des tas, qui sont tous plus ou moins bien, et qui ne font pas les même choses.

    Personnellement, je suis un peu la sortie de ce genre d'outils, mais j'essaye de ne pas trop chercher dans tous les sens de nouveaux outils, c'est le meilleur moyen de ne se servir vraiment d'aucuns.

    Tant que je suis sur un thread de ce genre, je cherche pour ma part 3 plugins pour Visual Studio, à savoir un pour le refactoring, un pour doxygen qui marcherait à peu près (generation auto des templates de commentaires, et integration des commandes de compilations de la doc), et un pour SVN (je suis en train de tester VisualSVN, mais si une solution gratuite qui marche existe, je suis preneur)

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 58
    Points : 66
    Points
    66
    Par défaut
    pour le bug tracking, il y a mantis qui est vraiment bien pratique...
    pour la liste des moteurs de jeu, il faut faire un tour ici pour trouver son bonheur: http://www.devmaster.net/engines/

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    366
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 366
    Points : 440
    Points
    440
    Par défaut
    Si tu veux utiliser LUA (c est bien) pour faire des script alors tolua++ est ton amis car il genere du code de bind a partir de tes proto de classe C++.

    Note que lua peut permettre de faire une tone de truc :

    -initialiser le programme (plutot que d utiliser un .ini , utiliser un .lua)

    -perso, je fais de recherches pour permettre dans du code LUA de definir des shaders "enrichies" (permettre de preciser les uniforms, soit comme constant, soit comme dynamiques (fonctions lua))

    Sinon, la bibliotheque ACE (que je ne connais pas bien je l avoue) permet de faire pas mal de chose cote reseau (note : verifier ses droits)

    Personnellement, j'ai quelques bouquins qui ont pas mal changer ma conception de la conception:

    -code generation in action : l idee est de generer le code (C , C++ ou nimporte quoi) repetitif sur un projet (ex : acces bdd, ihm, reseau ...) de maniere procedural (ici grace a ruby)

    -metaprogramming, with boost mpl (titre exacte a rechercher) : permet de faire des miliiers de choses etonnantes avec des template C++

    -beyond the standard library (titre exacte encore a rechercher) : introduction a certaines bibliotheques de boost



    RenderMonkey est ton ami pour le developpement de Shader, ...

    ainsi que bien sur Blender pour la 3D.


    Dans les formats intermediaires 3D, collada commence a tire son epingle du jeu. Il te permet d exporter en XML un peu pres tout ce qui est imaginable sur un objet 3D. Et donc une librairies de parse XML est necessaire (libxml2 , tinyXML) a moins que tu ne preferes utiliser du XSLT pour extraire les donnees que tu utilises vraimment.

    Cotes Shader , Nvidia propose le CGFX qui a l avantage d etre utilisable sous DirectX comme OpenGL, de permettre de mentionner les changement etats de rendu directement (contrairement a GLSL) ainsi que le multipasse. De surcroit, l utilisation de Cg permet d'utiliser les Interface (qui permet de customiser proprement ton code a la volee).



    Pour la compilation, je vote SCONS

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    366
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 366
    Points : 440
    Points
    440
    Par défaut
    enfin, MakeHuman est un outils qui permet d obtenir des meshs humains par actions sur un certains nombre de parametres

  9. #9
    Rédacteur
    Avatar de bafman
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    2 574
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Points : 5 323
    Points
    5 323
    Par défaut
    bon alors, je vais faire ma petite liste :

    - visual C++ (express) pour la code, a cause de l'excelent debugger
    - Lua pour le script (mais je vait peut être regarder du coté de python car le model objet y est bien meilleur)
    - luabind pour definir le binding entre lua et c++ facilement et en C++
    - Blender pour faire des model 3D de test
    - SVN pour le versionning
    - notepad++ pour plein d'autre truc
    - http://glintercept.nutty.org/ pour debugger le code opengl et voir les textures generees
    * Il est infiniment plus simple de faire rapidement un code qui marche que de faire un code rapide qui marche
    * pour faciliter les recherches, n'oubliez pas de voter pour les réponses pertinentes
    Mes articles

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    366
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 366
    Points : 440
    Points
    440
    Par défaut
    Citation Envoyé par bafman
    - Lua pour le script (mais je vait peut être regarder du coté de python car le model objet y est bien meilleur)
    si on veut faire du bind avec python il faut ajouter swig a la liste !

    Cependant, pour un projet de jeu, mieux vaut a mon avis preferer lua a python:

    -lua est plus rapide (a l execution et en developpement*)

    -les scripts sont destinue a etre petit ... alors le model objet c'est pas forcement indispensable (d ou rapidite du developpement)

    -il est vraimment tres facile, quand necessaire de faire des appels lua depuis le C et de recuperer des valeurs en retour (avec python c'est plus complexe)


    notes:

    -si les scripts doivent etre plus chiade alors effectivement python offre une bibliotheque tres riche contrairement a lua = un peu neant je crois

    -il existe une lib dans BOOST pour faire du bind python (peut etre a considerer)

  11. #11
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    -il existe une lib dans BOOST pour faire du bind python (peut etre a considerer)
    luabind est l'équivalent de boost.python pour Lua (d'ailleurs elle utilise boost).

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    366
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 366
    Points : 440
    Points
    440
    Par défaut
    Citation Envoyé par Laurent Gomila
    luabind est l'équivalent de boost.python pour Lua (d'ailleurs elle utilise boost).
    Ca signifie donc qu'il faut "coder" (meme si ca ce limite a quelques declarations) soit meme le bind ? (tolua++ prend un entree un fichier .h et retourne le code de bind directement)

  13. #13
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Citation Envoyé par smashy
    Ca signifie donc qu'il faut "coder" (meme si ca ce limite a quelques declarations) soit meme le bind ? (tolua++ prend un entree un fichier .h et retourne le code de bind directement)
    Oui, par contre là où c'est puissant c'est que ce n'est pas intrusif. Tu peux donc avoir une séparation complète entre la classe et son binding Lua. Du coup tu peux aussi binder des classes d'autres bibliothèques.

  14. #14
    Membre averti
    Homme Profil pro
    Game Graphics Programmer
    Inscrit en
    Août 2006
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Game Graphics Programmer
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 408
    Points : 392
    Points
    392
    Par défaut
    1) Visual Studio (C++) Pro + Visual Assist, je veux plus travailler sans.
    Eclipse CDT n'est pas mal non plus, il a surtout une très bonne fonction de refacturing, puis j'utilise Eclipse pour d'autres trucs (XML, etc...)
    oXygen, meilleur éditeur XML à ce jour (avis perso).
    notepad++ pour tout le reste.

    Ah oui, je plussoie pour Doxygen.

    Boost.Jam pour les builds automatiques.

    2) OpenGL, SDL et OpenAL pour tout ce qui est API de base.
    KAGEfx pour gérer les shaders.
    Boost et Loki pour les templates. STLport aussi.
    Arabica pour charger du XML via une API SAX. Xerces et libxml2 m'ont posés plus de problèmes. TinyXML si on tient à passer par une API DOM.

    3) CVS ou Subversion pour le versionage. (Ya des frontends HTML pour le web).
    Des simples repertoires et des libs séparées pour diviser le code.
    Mantis ou Bugzilla pour la collection des bugs.

    Scripts perso en Perl/PHP/Python/Ruby pour certaines tâches automatisées (génération de code, etc...)

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 58
    Points : 66
    Points
    66
    Par défaut
    C'est vrai que Visual Assist ça tabasse!
    par contre, ça n'est pas un outil gratuit

  16. #16
    Rédacteur
    Avatar de Bakura
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    1 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 386
    Points : 2 640
    Points
    2 640
    Par défaut
    Kurisu > Ca fait la deuxième fois que j'entends parler de ce STLPort. Qu'est-ce que ça apporte de plus par rapport à l'implémentation faite dans mon GCC ou le compilo de Visual ?

  17. #17
    Nouveau membre du Club
    Inscrit en
    Juin 2004
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 42
    Points : 31
    Points
    31
    Par défaut
    Merci pour ces réponses, beaucoup d'indications très utiles sont déjà apportées, j'ai l'impression que ce sujet ne sera pas utile qu'à moi !

    1) J'ai oublié de mentionner les outils livrés avec le DirectX SDK, qui permettent d'aider à de nombreuses tâches de base, tant dans le debuggage qu'autre chose (mipmapping, etc...).

    2) Il faut également mentionner les moteurs physiques, de plus en plus répandus et utiles (bientôt indispensables ?). Je citerais Newton et Havok.

    PS : je ne sais pas non plus pour le STLPort.

  18. #18
    Membre averti
    Homme Profil pro
    Game Graphics Programmer
    Inscrit en
    Août 2006
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Game Graphics Programmer
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 408
    Points : 392
    Points
    392
    Par défaut
    Bakura> L'avantage de STLport, c'est qu'il n'y a qu'une implementation testée et avérée qui fonctionne sur tous les systèmes/compilos. L'avantage que tu peux en retirer, c'est que ton appli agira de facon identique quelque soit la plateforme.
    Je tiens à rappeller que même si la STL est un standard, il y a certaines différences entre les compilateurs. Par exemple, VC utilise une version retouchée par Kro, ou alors CodeWarrior utilise une version dediée.
    Le problème que tu peux avoir, c'est que ton source que tu croyais multi-plateformes agit de facon différente selon le compilo. Va essayer de debugger ca.

    Selon ce que j'ai lu sur un newsgroup, il y a plusieurs entreprises qui produisent du code multiplateforme (à comprendre PSP, PS2, PS3, Wii et XBox) utilisent STLport parce que ca leur facilite la vie.



    à mon tour de poser une question:
    Scons apporte quoi par rapport à Jam ou à Make?

  19. #19
    Membre averti
    Homme Profil pro
    Game Graphics Programmer
    Inscrit en
    Août 2006
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Game Graphics Programmer
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 408
    Points : 392
    Points
    392
    Par défaut
    Citation Envoyé par Heliopraetor
    Merci pour ces réponses, beaucoup d'indications très utiles sont déjà apportées, j'ai l'impression que ce sujet ne sera pas utile qu'à moi !

    1) J'ai oublié de mentionner les outils livrés avec le DirectX SDK, qui permettent d'aider à de nombreuses tâches de base, tant dans le debuggage qu'autre chose (mipmapping, etc...).

    2) Il faut également mentionner les moteurs physiques, de plus en plus répandus et utiles (bientôt indispensables ?). Je citerais Newton et Havok.

    PS : je ne sais pas non plus pour le STLPort, désolé.
    Havok est loin d'être OpenSource ou libre.

    Je dirais plutôt Bullet ou PhysX ou encore ODE si on veut rester dans l'opensource. Sinon Tokamak et Newton ne sont pas mauvais non plus, ceci dit.

  20. #20
    Rédacteur
    Avatar de Bakura
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    1 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 386
    Points : 2 640
    Points
    2 640
    Par défaut
    En effet j'avais oublié les moteurs physiques, en effet ça me paraît carrément indispensable, coder le sien, outre avoir des connaissances très solides en physique et en prog, c'est une perte de temps pour pas grand chose alors qu'il en existe plein avec chacun leurs propres objectifs (PhysX utilise leur carte physique que personne n'a acheté mais est aussi super performant avec plein de fonctionnalités, Newton privilégie largmeent le réalisme plutôt que les perfs - l'auteur se vante d'être le seul à utiliser les vrais lois de Newton plutôt que des trucs s'en approchant, enfin j'y connais pas grand chose là-dessus -...), et Havok, mais il a l'air plus compliqué à obtenir.

Discussions similaires

  1. Réponses: 0
    Dernier message: 28/03/2014, 14h01
  2. Réponses: 0
    Dernier message: 14/12/2010, 09h36
  3. Quel livre pour le développement de jeux vidéos SDL + OpenGL en US ?
    Par Valter dans le forum Développement 2D, 3D et Jeux
    Réponses: 2
    Dernier message: 06/11/2009, 11h33
  4. Réponses: 0
    Dernier message: 17/09/2009, 18h04
  5. [Logiciel] Outil pour développer des jeux vidéos
    Par Kiri dans le forum EDI et Outils pour Java
    Réponses: 4
    Dernier message: 16/06/2004, 20h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo