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 :

Linux, le C++ et les jeux.


Sujet :

Développement 2D, 3D et Jeux

  1. #21
    Expert confirmé
    Avatar de shenron666
    Homme Profil pro
    avancé
    Inscrit en
    Avril 2005
    Messages
    2 524
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 524
    Points : 5 184
    Points
    5 184
    Par défaut
    un exemple de moteur commercial utilisant les 2 apis que sont directx et opengl : le unreal engine 2.x
    à mon avis l'UE3 également, je ne sait pas si Gears of War sorti sur PC permet de choisir entre DX et GL ?
    autres exemples :
    > ogre est un renderer open source utilisant les 2 apis
    > irrlicht est un moteur open souce utilisant également les 2 apis
    ces exemples sont plutot performants si tu vois ce que je veux dire

    en résumé, si la couche d'abstration du renderer est bien conçue tu ne sera pas pénalisé
    par contre, ajouter une fonctionnalité te demandera 2 fois plus de travail

    edit : rainbow 6 vegas utilise aussi l'UE3, si quelqu'un qui a l'un de ces jeux pouvait regarder
    Tutoriels OpenGL
    Je ne répondrai à aucune question en MP
    - Si c'est simple tu dis que c'est compliqué et tu le fait
    - Si c'est compliqué tu dis que c'est simple et tu le sous-traite ou le fait faire par un stagiaire.

  2. #22
    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
    Citation Envoyé par LapinGarou Voir le message
    Je viens mettre mon grain de sel, mais les moteurs cross plateformes ne sont ils pas moins performants ?
    Puisque non optimisés (ou du moins pas autant) pour une API spécifique, du fait que le code doive être un tantinet "générique", j'aurai tendance à dire que oui . (souvent les jeux qui proposent 2 APIs ne sont optimisés que pour une, l'autre n'étant là que pour les cas difficiles d'utilisation de la principale) Mais je me trompe peut-être ?
    effectivement, sur un moteur permettant de switch de renderer, il faut bien, a un moment ou a un autre, favoriser une API ou une autre.
    un exemple simple : openGL et D3D ne stockent pas les couleurs de la même façon. Il faut donc créer une classe qui va abstraire la couleur, et convertir dans le bon format. quel est le format par défaut de notre abstraction ? Ce choix va forcement favoriser une des deux API (ou alors, on peut choisir un troisième format pour penaliser les deux, mais c'est juste le choix le plus stupide au monde
    * 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

  3. #23
    Membre éclairé
    Avatar de Happy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2005
    Messages
    665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Autre

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2005
    Messages : 665
    Points : 875
    Points
    875
    Par défaut
    Même s'ils stockent pas de la même façon, il suffit qu'une transformation aie lieu au moment où on choisis l'api ( par exemple, au début du jeu; où obligation de redémarrer le jeu. ) De ce fait il y a moins de perte, mais c'est grave car, ce n'est pas le seul point.

    Alors ce qui est favorisé, ce n'est que le temps de chargement avec une certaine api ( mais ça peut être négligeable des fois ).

    Dans ce cas, les moteurs cross-platform sont moins performant que dans le cas où ils ont plusieurs API pour le rendering et encore d'autres choses.
    ( ils peuvent bien être optimisés pour échapper à ce problème ).

  4. #24
    Membre expérimenté

    Profil pro
    Programmeur
    Inscrit en
    Août 2002
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Programmeur

    Informations forums :
    Inscription : Août 2002
    Messages : 1 091
    Points : 1 679
    Points
    1 679
    Par défaut
    Il y a toujours un surcout d'abstraction inévitable (qui peut être plus insidieux que le simple appel de fonctions virtuelles). Ceci dit les développeurs de jeux qui ont le choix de leur plateforme sont très peu nombreux donc la question ne se pose meme pas pour eux !

    Pour ce qui est des choses comme stockage des données, ce n'est pas forcément un problème puisque rien n'interdit les assets de pouvoir être converti lors du build (ce qui est généralement le cas sur console).

    LeGreg

    Mon site web | Mon blog | Mes photos | Groupe USA
    > BONJOUR, JE SUIS NOUVEAU SUR CE FORUM
    > presse la touche caps lock, stp
    > OH.. MERCI C EST BEAUCOUP PLUS FACILE COMME CA

  5. #25
    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
    bafman, de toute facon, directX utilise du code dans des DLL => branchement indirect tout comme pour les fonctions virtuelles.

    Il en va de meme pour openGL.

    PIRE ! Le pc doit passer en mode noyau pour executer le code des driver et balancer la purée a la carte graphique. Au final, le cout d'un branchement indirect est bien faible devant tout ca, et je pense pas que ca soit un point critique dans une application bien concue (je pense au modele MVC).

Discussions similaires

  1. Linux : performances faibles pour les jeux vidéo
    Par Amine Horseman dans le forum Linux
    Réponses: 58
    Dernier message: 21/11/2014, 23h51
  2. Réponses: 30
    Dernier message: 25/06/2014, 14h41
  3. Faire tourner les jeux récents sous Linux
    Par TocTocKiéLà? dans le forum Applications et environnements graphiques
    Réponses: 1
    Dernier message: 20/02/2007, 18h34
  4. Réponses: 4
    Dernier message: 10/11/2005, 11h45
  5. Du réseau dans les jeux
    Par Mathieu.J dans le forum Développement
    Réponses: 3
    Dernier message: 07/05/2004, 16h33

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