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 :

Developpement JV :plateformes et infos diverses


Sujet :

Développement 2D, 3D et Jeux

  1. #1
    Membre confirmé Avatar de Aizen64
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    561
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 561
    Points : 462
    Points
    462
    Par défaut Developpement JV :plateformes et infos diverses
    Bonjour!

    Pour commencer je ne compte pas devenir développeur (même si je suis en BTS infor option développeur) mais j'aimerai comprendre certaines choses concernant les plateformes de développement et certains mécanismes utilisés dans les jeux vidéos.

    J'ai pas mal de questions :

    - Comment fonctionne un algoritme d'inteligence artificielle ? Celui qui voudra bien se lançer dans une explication évitera les notions matématiques, je suis une merde en maths (3/20 en STT). Je suis sur que quelqu'un arrivera a expliquer ça simplement.

    - Quel est l'intêret d'utiliser des matrices dans les jeux vidéos ? Je me rappelle d'avoir fait un peu d'exercices sur les matrices en maths mais je ne comprend pas comment ça pourrait être utilisé dans un JV.

    Maintenant les questions sur les platesformes de développement (X360 - PS3 et PC avec processeurs multi-core), je pose ces questions ici parce que je pense que seul un développeur en jeux vidéos peut me donner une vrai réponse :

    - Est ce que développer des heux en multi-thread est si compliqué ?

    - Pour ce qui est de la X360 et PS3 : Est il fondamentalement plus complexe de développer un jeu vidéo sur une plateforme ayant 7 cores utilisables (7 SPUs utilisables de la PS3 sans le PPU) que sur un processeur avec 2 ou 4 cores ?

    Là encore je pourrais poser la question sur un forum généraliste mais bien peu de personnes seront capables de donner une réponse claire, la plupart des jeux se contenteront de dire : "la PS3 et son processeur sont difficiles a utiliser" sans être capable d'expliquer pourquoi.

    Merci d'avance!
    Exprimer une différence d'opinion vaut mieux que :

  2. #2
    Membre habitué
    Lycéen
    Inscrit en
    Juillet 2007
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 32

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juillet 2007
    Messages : 148
    Points : 145
    Points
    145
    Par défaut
    Citation Envoyé par Aizen64 Voir le message
    - Comment fonctionne un algoritme d'inteligence artificielle ? Celui qui voudra bien se lançer dans une explication évitera les notions matématiques, je suis une merde en maths (3/20 en STT). Je suis sur que quelqu'un arrivera a expliquer ça simplement.
    Ben il y a rien de très spécial, il faut juste lui dire quoi faire quand il retrouve telle configuration. Par exemple, pour un RTS :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if (ressources_sont_basses())
           envoyer_travailleur_miner()
    else 
           construire_guerriers()
    (en très simplifié).


    Citation Envoyé par Aizen64 Voir le message
    - Quel est l'intêret d'utiliser des matrices dans les jeux vidéos ? Je me rappelle d'avoir fait un peu d'exercices sur les matrices en maths mais je ne comprend pas comment ça pourrait être utilisé dans un JV.
    D'après ce que j'en sait, les matrice ça sert surtout pour les déplacements d'objets dans l'espace.


    Citation Envoyé par Aizen64 Voir le message
    - Est ce que développer des heux en multi-thread est si compliqué ?

    - Pour ce qui est de la X360 et PS3 : Est il fondamentalement plus complexe de développer un jeu vidéo sur une plateforme ayant 7 cores utilisables (7 SPUs utilisables de la PS3 sans le PPU) que sur un processeur avec 2 ou 4 cores ?
    J'y connais pas grand chose, mais le fait de devoir synchroniser les coeurs ne doit pas être une tâche facile.

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 537
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 537
    Points : 2 548
    Points
    2 548
    Par défaut
    Bon, si deja tu est pas bon en math, ca sent le sapin. Faire un jeux video sans utiliser de matrice de produit vectoriel, changement de referenciels c'est pas vraiment possible a part si tu vises un pacman (mais la bon, tu a pas forcement besoin que ca marches sur ps3 ).

    Pour ce qui est des cores, et bien bonne chance. En effet, si tu veux faire travailler les 7 cores (je croyais que c'etait 3 sur la ps3 d'ailleur, tu es sur de toi ?) Il va te falloir utiliser du code multithread, et qui plus est qui utilise des ressources partagées.

    Au final, problemes de partges entres le thread, difficulté du debogage, et resultats non constant d'un essai sur l'autre t'attendent. Le multi core etant recent dans le domaine des appli grand public type jeu video, peu d'outils sont concu pour te faciliter la tache.

    Si tu veu que ca tourne sur Xbos et ps3, il va falloir creer un moteur capable de fournir aussi bien en opengl qu'en directX. la encore tu as un gros piege . . .

    Pour l'ia, pareil sans les math, ca va etre tres tendu de faire un truc potable. je te conseille la theaorie des graphes, car la plupars des script d'ia sont basés dessus. la principale difference entre les script etant souvent les fonction d'heuristique, mais l'idee de parcour de graphe est presque toujours la.

  4. #4
    Membre averti Avatar de Kujara
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    262
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 262
    Points : 358
    Points
    358
    Par défaut
    En effet, si tu veux faire travailler les 7 cores (je croyais que c'etait 3 sur la ps3 d'ailleur, tu es sur de toi ?)
    1 controlleur, 7 workers.

    - Comment fonctionne un algoritme d'inteligence artificielle ? Celui qui voudra bien se lançer dans une explication évitera les notions matématiques, je suis une merde en maths (3/20 en STT). Je suis sur que quelqu'un arrivera a expliquer ça simplement.
    Les maths s'appuient sur la logique, l'IA aussi. Si tu est mauvais en maths, tu sera mauvais en IA, et en prog mais ça c'est une autre histoire.

    - Quel est l'intêret d'utiliser des matrices dans les jeux vidéos ?
    Ca permet de representer l'etat spacial d'un objet ( rotation + position + scale ).
    Hautement utilisé quand tu t'occupe des moteurs 3D. Tu peux t'en passer si tu ne fait pas le moteur du jeu.

    Est ce que développer des heux en multi-thread est si compliqué ?
    C'est très simple de bosser en multithreads.
    Par contre, c'est très très compliqué de creer un system multithread qui soit rellement optimisé ( notemment, il faut equilibrer les calculs a faire entre les coeurs, synchroniser les threads, etc ...).

    Pour ce qui est de la X360 et PS3 : Est il fondamentalement plus complexe de développer un jeu vidéo sur une plateforme ayant 7 cores utilisables (7 SPUs utilisables de la PS3 sans le PPU) que sur un processeur avec 2 ou 4 cores ?
    7 cores contre 4, non.
    7 cores contre 2, oui.
    Etrange ? explication : avec 2 cores tu peux separer les modules de ton jeu, d'un coté le graphisme, de l'autre coté, la physique du jeu.Simple.
    7 cores, ça fait plusieurs cores pour le même module, genre 2 cores graphiques, 3 cores physiques, 2 cores IA, un truc du genre. Donc equilibrage des calculs ( "load balancing" ), et tous les problemes qui s'en suivent.

    A noter que la quasi totalité des jeux actuels n'utilisent qu'un seul coeur.
    Donc, si tu a un quadricore chez toi, sache qu'il ne sert a rien pour l'instant ^^( en jeu en tout cas, car certains programmes l'utilise).

  5. #5
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Février 2006
    Messages
    943
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 943
    Points : 1 156
    Points
    1 156
    Par défaut
    Mauvais en maths ? oubli l'IA !

  6. #6
    Membre confirmé Avatar de Aizen64
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    561
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 561
    Points : 462
    Points
    462
    Par défaut
    Attention j'ai pas dit que je comptais me lançer dans le développement d'un jeu vidéo, je tiens simplement à savoir comment certains mécanismes fonctionnent, dont l'IA.

    Revenons en au multi-thread, j'ai du mal à imaginer Sony se lançer dans le développement d'un processeur très puissant comme le Cell sans avoir abordé la question de la difficulté de développement dans le cadre d'un jeu vidéo.

    De toute façon je ne pense pas me tromper si je dis que tous les développeurs de "gros" jeux vidéos sont maintenant obligés de se lançer dans le multi-thread parce que les processeurs de PC et consoles actuelles (X360 - PS3) ont été crées dans cette optique.

    Plus le temps passe plus je me demande si Sony n'a pas pris la mauvaise décision en développant un processeur très puissant (le Cell pulvérise tous les PCs tournant sur Folding@Home) que les développeurs auront bien du mal à exploiter.

    Il me semble l'avoir déjà dit au début du topic, je fais une formation de développeur (BTS IG) mais je ne compte pas devenir développeur pour quelques raisons :

    1. Boulot stressant
    2. Pas si bien payé a ce niveau de qualification
    3. Un niveau Bac +2 suffit vraiment actuellement pour devenir développeur ()

    D'ailleurs j'ai eu la semaine dernière un cours sur les pointeurs, putain ça donne mal au crane.

    C'est dommage le métier de développeur a ces avantages, ça fait travailler les méninges.
    Exprimer une différence d'opinion vaut mieux que :

  7. #7
    Membre averti Avatar de Kujara
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    262
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 262
    Points : 358
    Points
    358
    Par défaut
    Pour le multi coeur, tu confond les causes et les consequences ^^.

    Personne ne s'est jamais dit "Tiens, on va faire des proc multicoeurs parceque c'est bien".

    Ils n'ont pas le choix.

    3-4 Ghz c'est la limite technique actuel pour les puces en silicium.
    Limite theorique max @ 20 Ghz.

    Dooonc, personne ne peut gagner de la puissance en montant la frequence, comme c'etait le cas jusqu'a present.

    Du coup, la seule façon de gagner en puissance, c'est le multi coeur / multi proc, d'ou la generalisation des dual core/ quad core, et l'apparition des moteurs de jeux multithreads pour utiliser cette puissance.

    La ps3 de sony est basée sur ce principe. Un pari osé sur le futur assez prévisible des ordinateurs.

  8. #8
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 537
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 537
    Points : 2 548
    Points
    2 548
    Par défaut
    En fait, je vais faire mon electronicien la, mais monter plus haut en frequence est possible.

    Le probleme est en fait lié au courrant de fuite, qui est proportionnel a la frequence, et qui du coup fait consomer la puce => consomation/chaleur/bruit. C'est deja genant dans un pc de bureau, mais immaginez sur un portable (le temp de batterie), ou sur un machine qui doit etre de taille reduite (console).

    Et puis, si on regarde l'evolution de la puissance de calcul des CG, on peut se dire que la calcul parrallele a plus d'avenir que le calcul serie. D'ou des multi-cores.

    C'est par contre le devellopeur qui trinque.

    Pour l'ia, je t'ai deja donné tous les outils dont tu as besoin pour faire tes recherches : graphes/heuristique/etc . . .

  9. #9
    Membre confirmé Avatar de Aizen64
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    561
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 561
    Points : 462
    Points
    462
    Par défaut
    La programmation de l'IA necessite l'utilisation de fonctions récursives ?

    EDIT

    Heu... maintenant que j'y pense on parle beaucoup de multi-thread et du temps qu'il faut aux développeurs pour adapter lles logiciels mais je crois qu'on oublie un truc fondamental : très peu d'applications tireraient vraiment parti du multi-thread : a part les logiciels comme photoshop, 3DsMax et l'encodage vidéo, bien peu de logiciels gagneraient à être réécrits.

    Pourquoi ne pas commencer par faire des applis beaucoup moins gourmandes ? Ah j'oubliai ça va complètement à l'encontre de l'optique de beaucoup de développeurs (faire toujours plus lourd) c'est pour ça qu'on a besoin de 1Go voire 2Go de RAM maintenant contre moins de 128 il y a quelques années.

    Désolé je suis un peu hors sujet mais j'avoue que c'est un truc qui à tendance à m'aggacer.
    Exprimer une différence d'opinion vaut mieux que :

  10. #10
    screetch
    Invité(e)
    Par défaut
    1) pour l'IA en general on utilise des machines a etats. En gros, lorsqu'une unité ne fait rien elle est Idle (etait j'ai rien a faire).
    lorsque tu lui dis de bouger, elle se met dans l'etat Move.
    Lorsqu'elle est attaquee elle passe dans l'etat Defense.

    Tous ces etats permettent de dire ce que l'unité doit faire lors de son prochain droit a la reflexion.

    A chaque frame, la machine a etat recoit un "update" qui lui permet soit de changer d'etat, soit d'effecturer les taches liees a son etat (mode move => deplace toi)


    2) Les matrices representent les positions et orientations des objets et de la camera dans l'espace. ce sont en general des vecteurs a 4 composantes, et des matrices 4x4

    3) developper en multi thread est toujours plus chiant que developper en mono thread. Les difficultes sont tres nombreuses, comme =>
    - eviter les acces concurrents
    - eviter de bloquer des threads qui se disputent la meme ressource; si tu as deux threads mais pour tourner, l'un doit empecher l'autre de tourner, autant dire qu'ils ne tournent pas en parallele.
    - puree ca crashe des fois quand je fais ca mais des fois pas......
    on devrait se retrouver avec une tripotee de jeux next gen qui se plantent des fois sans raison.

    4) il n'est pas plus difficile de trvailler sur 2,3,4 ou 7 cores. le plus difficile ensuite est de trouver de quoi occupper tous ces cores.
    une difficulte vient du fait que la xbox a 3 cores hyperthreades soit 6 threads hardware, et la PS3 en a un ou deux de plus, qu'il faut occupper. alors soit tu laisses des cores rien faire sur PS3, soit tu a deux threads se partageant des cores deja occuppes. quoi qu'il arrive, c'est relou

  11. #11
    Membre confirmé Avatar de Aizen64
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    561
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 561
    Points : 462
    Points
    462
    Par défaut
    Quand tu parles d'état, tu veux dire un évènement ?
    Exprimer une différence d'opinion vaut mieux que :

  12. #12
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 537
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 537
    Points : 2 548
    Points
    2 548
    Par défaut
    Pour l'ia, les graphes, les machines a etat :

    http://www.google.fr/search?q=machin...ient=firefox-a
    http://www.google.fr/search?hl=fr&sa...graphe&spell=1
    http://www.google.fr/search?hl=fr&sa...chercher&meta=
    http://www.google.fr/search?hl=fr&sa...chercher&meta=

    Pour les matrices en 3d :
    http://www.google.fr/search?hl=fr&sa...%A8nes&spell=1

    pour ce qui est des logiciel toujours plus gros, c'est n'est pas si anodin. Tu crois que firefox (qui est tres bon exemple de gros logiciel) le fait expres pour t'embeter ou parceque les devellopeurs sont feneants ?

    Et bien non, c'est pour que tu puisse utiliser un systeme d'extension sur et performant, ce qui a fait entre autres le succes du navigateur en question.

  13. #13
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 361
    Points : 20 381
    Points
    20 381
    Par défaut
    Citation Envoyé par Aizen64 Voir le message
    La programmation de l'IA necessite l'utilisation de fonctions récursives ?
    les fonctions récursives c'est le BA à BA de la programmation et de l'algorithmie.
    Si tu en as besoin oui sinon aucun intérêt.
    C'est à toi d'adapter en fonction des cas.
    C'est utilisé dans les arbres binaires de recherches et BSP.
    Heu... maintenant que j'y pense on parle beaucoup de multi-thread et du temps qu'il faut aux développeurs pour adapter lles logiciels
    Fait un bon jeu avant de faire du multi thread.....
    depuis que ce forum de développement de jeu vidéo existe je vois des tas de personnes qui parle de programmation multiprocessus.
    Mais au vu des propositions de projets postés c'est tout juste si les gens sont capables de mener à bien un projet de tétris...( là je sens que je vais faire hurler)
    attention je ne mets pas tout le monde dans le même panier il ya des gens très capables mais y'a peu de projets qui soient vraiment avancés.
    Alors avant de faire de la programmation multithreading...
    Pourquoi ne pas commencer par faire des applis beaucoup moins gourmandes ? Ah j'oubliai ça va complètement à l'encontre de l'optique de beaucoup de développeurs (faire toujours plus lourd) c'est pour ça qu'on a besoin de 1Go voire 2Go de RAM maintenant contre moins de 128 il y a quelques années.
    Est-ce que tu as déjà bossé en milieu professionel en équipe ?
    Tu verras qu'un projet informatique le client il demande toujours et sans cesse de rajouter des fonctionnalités... ce qui évidemment alourdit le projet.

    Donc un jeu c'est exactement pareil en plus il y a une surenchère commerciale et technique.
    Tu as réussi à programmer un bonhomme en 3D qui marche et tire.
    Bien mais maintenant il faut faire mieux parce que le studio de JV concurrent le bonhomme il peut le programmer pour s'agenouiller, ramper par terre ce qui évidemment complexifie les choses.

  14. #14
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 361
    Points : 20 381
    Points
    20 381
    Par défaut
    Citation Envoyé par Aizen64 Voir le message
    Revenons en au multi-thread, j'ai du mal à imaginer Sony se lançer dans le développement d'un processeur très puissant comme le Cell sans avoir abordé la question de la difficulté de développement dans le cadre d'un jeu vidéo.
    Ils savent ce qu'ils font Sony !
    S'ils se lancent dans le développement d'un nouveau processeur c'est qu'il y a des équipes de R et D qui ont pu réussir à le mettre au point.


    Il me semble l'avoir déjà dit au début du topic, je fais une formation de développeur (BTS IG) mais je ne compte pas devenir développeur pour quelques raisons :

    1. Boulot stressant
    2. Pas si bien payé a ce niveau de qualification
    3. Un niveau Bac +2 suffit vraiment actuellement pour devenir développeur ()

    D'ailleurs j'ai eu la semaine dernière un cours sur les pointeurs, putain ça donne mal au crane.

    C'est dommage le métier de développeur a ces avantages, ça fait travailler les méninges.
    Si les pointeurs te donnent mal au crane c'est pas la peine de continuer.
    Moi ça me donne pas mal au crâne parce que je vais t'expliquer pourquoi :
    je suis passionné par la programmation j'ai pas fait bcp d'études mais je cherche toujours à en savoir plus et à apprendre les domaines les plus complexes.
    Si tu ne fais pas cette démarche tu auras des difficultés à t'investir dans la programmation professionnellement.

    Citation Envoyé par Aizen64 Voir le message
    - Quel est l'intêret d'utiliser des matrices dans les jeux vidéos ? Je me rappelle d'avoir fait un peu d'exercices sur les matrices en maths mais je ne comprend pas comment ça pourrait être utilisé dans un JV.
    ? Un personnage ou un objet en 3D c'est représenté comment ?
    Tu as le WE pour méditer j'attends la réponse lundi

  15. #15
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 294
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 294
    Points : 1 543
    Points
    1 543
    Par défaut
    Citation Envoyé par Mat.M Voir le message
    Un personnage ou un objet en 3D c'est représenté comment ?
    Avec des 0 et des 1 ?

    MAT.

  16. #16
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Février 2006
    Messages
    943
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 943
    Points : 1 156
    Points
    1 156
    Par défaut
    Je crois que Mat.M à résumer la situation, ce sujet n'a pas lieu, si tu ne veux pas faire de maths et si tu ne veux pas programmer a rien a dire de plus.

    Juste une infos, la parralellisation intra process à montrer ses limites. Les pipelines deviennent trop nombreux ce qui engendre un certain probleme.

    Du coup on garde des coeur de taille resonnable, mais on en met plusieurs.

    L'idée vient du faite que tout et n'importe quoi peut être parralelliser ... suffit de regarder les IHM qui garde la main pendant les temps de chargements ...
    cf: superscalaire

    Pour résumer ... rien ne sert de penser IA ou developpement et encore moins multi thread si si tu ne veux pas programmer.

  17. #17
    Futur Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 3
    Points : 9
    Points
    9
    Par défaut
    Salut Aizen64

    pour l'IA Screetch et Deadalnix ont tout dit, les machines à etat "this is the way to go", Si tu veux un peu plus d'info "vulgarisé", Kamron a fait un article interessant sur son blog >>http://jeremy.chatelaine.name/blog/?p=4

    Pour les matrices et de leurs utilitées dans un jeu, un autre lien interessant sur Onversity. http://www.onversity.net/cgi-bin/pro...bgteob&P=a1405

    En ce qui concerne les consoles PS3 et xbox je n'ai aucune experience en la matiere mais je te renvoie sur le site precedent (onversity) qui possede quelques articles interessants sur les dites consoles et les proc.

    C'a fait pas mal de lecture mais ces articles sont à la portés d'une personne "allergique" aux maths.

  18. #18
    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
    ma version à moi :
    Citation Envoyé par Aizen64 Voir le message
    - Comment fonctionne un algoritme d'inteligence artificielle ? Celui qui voudra bien se lançer dans une explication évitera les notions matématiques, je suis une merde en maths (3/20 en STT). Je suis sur que quelqu'un arrivera a expliquer ça simplement.
    en fait, toute IA se base sur un principe simple : la boucle perception -> descision -> action.
    en gros, pour pouvoir pretendre avoir un comportement qui resemble à quelque chose d'autonome (donc sembler intelligent), il faut mettre en oeuvre ces 3 fonctionnalitées.
    la perception consiste à recolter des information sur le "monde" dans un sens très général. Pour un FPS, ca sera savoir si le monstre voit le joueur par exemple. Dans un rts, ce sera déterminer quelles unités vois l'armée de l'IA... En gros, on determine les données auquels l'IA a accès. Souvent, dans cette partie, pour faciliter le developpement de l'IA, on lui permet d'avoir accès à plus de données que ce qu'elle devrait réellement avoir si c'etait un joueur humain. Ca permet de compenser son manque de memoire des evenements et son manque d'intelligence réelle.
    La descision consiste, en utilisant les données de la perception, à choisir ce qu'on va faire. Par exemple, dans un FPS, quand l'ennemi voit le joueur, il passe en mode attaque. Dans un RTS, quand mon armée est plus puissante que le joueur, j'attaque, sinon, je me replis.
    La phase action consiste à réaliser effectivement l'action décidé precedemment. Dans le FPS, l'ennemi va contourner un poteau pour tirer, dans le RTS, les unités vont choisir une cible et l'attaquer.

    Une fois tout ceci fait, on recommence à la phase de perception.

    Bien entendu, dit comme ca, ça semble très simple, mais en fait, chaque partie est complexe. Comment faire pour faire une bonne perception dans un FPS, qui ne soit pas trop puissante, ni completement myope ? comment faire pour que, lors de la prise de descision, l'IA puisse prendre en compte le passé (j'ai vu un ennemi a tel endroit il y a 5 secondes, la probabilité qu'il soit proche est donc forte) ?
    Comment faire pour que la réaction d'une decision ne soit pas toujours la même pour une configuration donnée ?
    C'est la généralement que les maths entrent en compte, en utilisant des systèmes à base de probabilitées, de logique floue, de machine à états plus ou moins complexes.
    Citation Envoyé par Aizen64 Voir le message
    - Quel est l'intêret d'utiliser des matrices dans les jeux vidéos ? Je me rappelle d'avoir fait un peu d'exercices sur les matrices en maths mais je ne comprend pas comment ça pourrait être utilisé dans un JV.
    en faite, les matrice nous simplifient beaucoup le travail. elle permettent de stocker dans une même matrice plusieurs transformation (translation, rotation, scale) en une seule matrice.
    Citation Envoyé par Aizen64 Voir le message
    Maintenant les questions sur les platesformes de développement (X360 - PS3 et PC avec processeurs multi-core), je pose ces questions ici parce que je pense que seul un développeur en jeux vidéos peut me donner une vrai réponse :

    - Est ce que développer des heux en multi-thread est si compliqué ?
    oui.
    en fait, il existe deux grande familles de parallelisme :
    - le parallelisme sur les taches
    - le parallelisme sur les données

    Le parallelisme sur les taches consiste à faire tourner les grandes partie du moteur sur un thread chacune. En gros, on a avoir un thread pour la 3D, un thread pour l'IA, un thread pour la physique. Le problème de cette méthode, c'est qu'on atteind assez rapidement les limites de découpage du moteur et donc, un moteur qui tourne avec 4 grande partie ne profitera pas des processeurs octo-cores par exemples.

    Le parallelisme sur les données consiste à appliquer des traitement à un ensemble de données sur un thread à part à chaque fois. Ceci permet de profiter beaucoup plus facilement de l'augmentation du nombre de cores. Un moteur qui tourne sur ce principe la peut profiter aussi bien d'un dual core que d'un octo-core. Le problème ici est surtout les synchronisation. Que doit faire le moteur 3D si le calcul qu'il a demandé sur un mesh n'est pas encore terminé ? Il attend. Ce problème de synchro est très complexe à gérer et impose un diciple de programmation que peut de programmeurs ont.

    Dans les deux cas, comme ca a été dit avant, il y a aussi le probleme de balance de la charge de calcul. Si on a un thread qui a très peut de travail et qu'un autre est lui surchargé, le premier se trouvera à attendre le second et donc, on perd une grande partie de l'nteret du parallelisme.
    Citation Envoyé par Aizen64 Voir le message
    - Pour ce qui est de la X360 et PS3 : Est il fondamentalement plus complexe de développer un jeu vidéo sur une plateforme ayant 7 cores utilisables (7 SPUs utilisables de la PS3 sans le PPU) que sur un processeur avec 2 ou 4 cores ?
    ca depend surtout du mode de parallelisme que tu utilise. De plus, pour la PS3, ce ne sont pas des core généralistes, mais plutot des core spécialisé dans les traitement vectoriels. Pour en profiter au maximum, il faut donc réussir à découper ses thread de façon à utiliser au maximum les possibilitées de ces SPU. c'est donc un challenge suplementaire en plus de la programmation parallele.
    * 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

  19. #19
    Membre confirmé Avatar de Aizen64
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    561
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 561
    Points : 462
    Points
    462
    Par défaut
    Merci Bafman pour ces informations interessantes, ça permet de bien comprendre la difficulté de la tâche. Il semblerai donc que les développeurs prendront pas mal de temps à savoir réellement utiliser aussi bien le processeur de la PS3 que celui de la X360 ou des processeurs multi-core sur les PC actuels.

    En tout cas, je leur souhaite bien du courage, le développement d'un gros jeu vidéo est déjà particulièrement compliqué et demande de très grosses compétences techniques (maths physique), alors devoir changer la façon de programmer risque de prendre pas mal de temps.

    Je vais jetter un oeil sur ces articles.
    Exprimer une différence d'opinion vaut mieux que :

  20. #20
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Points : 9 818
    Points
    9 818
    Par défaut
    Citation Envoyé par Aizen64 Voir le message
    - Quel est l'intêret d'utiliser des matrices dans les jeux vidéos ? Je me rappelle d'avoir fait un peu d'exercices sur les matrices en maths mais je ne comprend pas comment ça pourrait être utilisé dans un JV.
    J'avais donné des éléments de réponse ici : http://www.developpez.net/forums/sho...d.php?t=395693

    Mais si t'es mauvais en maths, je ne sais pas si tu comprendras grand chose.

    Sache que c'est un outil qui permet de faire des manipulations d'objet dans un espace de 3 dimensions.

    Et quand je dis matrice, j'entend pas tableau à deux dimensions. Mais manière de représenter des applications linéaires (donc avec somme, produit, division...)
    Je ne répondrai à aucune question technique en privé

Discussions similaires

  1. Réponses: 3
    Dernier message: 18/08/2011, 17h02
  2. developpement des plateforme microcontroleur
    Par karmio dans le forum Embarqué
    Réponses: 2
    Dernier message: 09/03/2011, 14h54
  3. Cherche infos sur le developpement multi-plateforme
    Par vtuning.net dans le forum Langages de programmation
    Réponses: 9
    Dernier message: 03/09/2009, 23h19
  4. Beosin d'infos diverses sur Crystal Reports
    Par Bmwz4magic dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 14/06/2006, 14h04

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