Des exemples de jeux dont le code a été optimisé (bien programmé) ?

Réduire
X
 
  • Heure
  • Afficher
Tout nettoyer
nouveaux messages
  • Groovykid
    Banned

    • août 2001
    • 11165

    #1

    Des exemples de jeux dont le code a été optimisé (bien programmé) ?

    A l'heure des jeux qui s'appuient sur les performances matérielles et les routines logicielles tierces (comme les direct x) , je me demandais si les jeux d'aujourd'hui sont mieux ou moins bien programmé et optimisé que les jeux d'hiers ?

    En effet, a l'époque des 8/16 bits et ordis non évolutifs comme le Commodore 64, l'Atari ST et l'Amiga ; les programmeurs se devait de redoubler d'imagination pour pondre le code le plus optimisé qui pousserait les capacités de la machine dans ces derniers retranchements.

    Les démomakers allaient jusqu'a programmer les instructions non implémentés , en détourner d'autres ou se servir des bogues de la machine comme d'un avantage

    Alors aujourd'hui on se dit que les jeux ne sont pas aussi optimisé qu'hiers , et surtout qu'on est loin d'avoir des programmes qui exploitent toute les possibilités matérielles de nos machines !
    Avec le temps, on finit irrémediablement par avoir des nouveaux jeux qui rament (ce qui n'existait pas sur atari et amiga)

    A mon avis, les jeux ne sont pas moins bien programmé , au contraire, on a 100 programmeurs qui optimisent une seule routine pour par exemple avoir un effet de brouillard, et qui l'implémente dans les direct X
    ou alors on a 100 programmeurs qui ne travaillent que sur un moteur de jeux FPS et qui passent leur temps a l'optimiser pour avoir le moteur le plus performant et le revendre.

    Mais avec tout ca , on a des couches et des surcouches de programmes et on peux se demander si on perds pas un peu de la puissance initiale, par rapport a un programme entièrement écrit en assembleur ou se limitant a un type de carte ou de matériel.

    Il n'y a qu'a voir les consoles comme la Xbox qui ne tourne qu'avec une petite carte graphique et un petit processeur mais vu que c'est standardisé, les programmeurs ont la possibilité d'optimiser leurs codes pour le matériel.

    Quand on voit les portages xbox vers pc , il faut tjs un pc plus puissant (ex : halo)

    Certaines consoles comme la dreamcast ne sont tjs pas émulé, et il faut un monstre 10 fois plus puissant que l'original pour une émulation qui ne rame pas . C'est étrange ! du temps de l'amiga, il y avait un émulateur atari qui marchait sans trop de ralentissement sur amiga.

    Alors pour des exemples de jeux dont le code a été vraiment optimisé sur PC , je dirais qu'il faut voir du coté des jeux qui pèsent 4 ko comme le remake de rick dangerous, ainsi que celui de turrican ou encore magic carpet , issu de démomakers

    Par contre, c'est sur que c'est pas demain qu'un démomaker va s'amuser a réécrire et réoptimiser l'équivalent d'une démo utilisant toute les routines implémenté dans les direct X et rajouter a cela l'équivalent d'un moteur a la doom 3

    Mais théoriquement , si c'était possible , on gagnerait surement en vitesse plutot que toute ces couches de codes qui appellent des instructions qui appelent d'autres instructions avant de faire appel au processeur ou a la carte graphique (avec un windows tjs en sommeil)
    Dernière modification par Groovykid, 25 mars 2004, 19h11.
  • Guybrush02
    320x200x256


    • avril 2001
    • 6835

    #2
    Les jeux d'epic en général

    Epic Pinball, jazz jackrabbit, One must fall des jeux aussi beau que les 16 bits et ultra fluide sur des simple 386........et même encore maintenant UT2004 qui est fluide sur des machines très modestes

    Commentaire

    • gameslover
      Ojii-sama


      • septembre 2001
      • 21351

      #3
      C'est certain que les gens actuels sont plus optimisés, je dirais même peut-être un peu trop... y'a qu'à voir certains derniers titres, c'est vraiment impressionnant pis aussi faut regarder le système de base qui fait tourner tout ça, le directX... rien que ça c'est devenu d'une complexité affolante !!! Avant c'était vraiment un code tout simple, on pouvait le désinstaller facilement, etc... maintenant qui essaie de désinstaller directX 9 est un courageux

      Je pense vraiment que les jeux sont plus soignés qu'avant, surtout sur consoles, mais ils deviennent toujours plus lourds à gérer, et même sur consoles à mon avis... on donne à une console la durée de vie moyenne de 5 ans, ce n'est pas pour rien je crois... après elle n'est plus capable de tenir la route avec tout ce que les jeux récents lui demande...

      Pour le PC, je pense qu'il pourrait faire tourner efficacement les jeux consoles si il n'y avait pas tout le reste derrière... en fait la console tout ce qu'elle fait c'est faire tourner le jeu... le PC il a un paquet d'autres choses derrière, rien que justement le directX, c'est ce qui doit beaucoup bouffer des capacités et qui fait que pour faire tourner un jeu console sur PC, c'est plus tellement possible avec les consoles récentes... d'ailleurs rien que l'émulation NeoGeo n'est pas donnée à toutes les configurations... pourtant c'est pas une machine super récente...

      Je crois effacitvement que les jeux deviennent vraiment plus complexes au nivau de leur codification, personnellement je ne m'en plains pas tant que ça optimise les titres... mais si ça devient juste une habitude histoire de faire mieux que les autres ou tout simplement plus beau, là faudra arrêter... parce que devoir changer de machine tous les mois ce n'est de loin pas donner à tout le monde...

      Pour donner des exemples dont le code a bien été optimisé à mon avis je dirais sur console les FF, je crois qu'on peut difficilement faire plus optimisé... sur PC je n'en trouve pas vraiment, faut dire que les patchs simplifient quand même bien la vie des programmeurs...

      Commentaire

      • H***
        Compte archivé

        • avril 2003
        • 674

        #4
        Les démomakers allaient jusqu'a programmer les instructions non implémentés , en détourner d'autres ou se servir des bogues de la machine comme d'un avantage
        Gniii? Je me trompe peut-être, mais bon pour moi programmer une operation c'est reprogrammer la micromachine, et bon je savais pas que c'était possible sur les machines grand public
        Tu veux dire *utiliser* des instructions pas *documentées*?

        Sinon la différence entre maintenant et avant c'est que les problèmes bas niveau sont pris en charge par du matériel, des librairies, un bon compilo (et un vrai OS ). Et maintenant les jeux sont beaucoup plus complexes, ils nécessitent de l'optimisation haut niveau et un bon design. C'est quand même plus intéressant.
        Le gaspillage il peut être dans le fait que dans certains cas ces librairies qu'on utilise ne peuvent pas tirer profit d'un cas particulier où on pourrait optimiser. C'est un peu trop générique (et en ce moment je suis bien placé pour le savoir).
        Pour les bidouilleurs en manque ya les machin shaders

        Certaines consoles comme la dreamcast ne sont tjs pas émulé, et il faut un monstre 10 fois plus puissant que l'original pour une émulation qui ne rame pas . C'est étrange ! du temps de l'amiga, il y avait un émulateur atari qui marchait sans trop de ralentissement sur amiga.
        J'ai pas eu d'Amiga, mais bon avec le même CPU que le ST ça devait bien aider quand même...
        Pour les consoles il faut presque tout émuler... M'enfin je sais pas ce qu'il y a dans une Dreamcast... Et comment sais-tu si c'est un problème de performance? Il y a d'autre problèmes quand un type fait le 1er émulateur d'une console!

        Il n'y a qu'a voir les consoles comme la Xbox qui ne tourne qu'avec une petite carte graphique et un petit processeur mais vu que c'est standardisé, les programmeurs ont la possibilité d'optimiser leurs codes pour le matériel.
        Je ne sais rien de la xbox (si ce n'est que c'est proche d'un PC), mais ça affiche dans quelle résolution? Les jeux PC tout le monde semble trouver normal de les faire tourner en 1024x768 minimum, alors que ça fait une énorme différence avec du 640x480 (ou inférieur?).
        Mais sinon tu as peut-être raison car sur PC il parait qu'on sous-exploite certaines cartes graphiques qui sont plus sensibles à certains paramètres que d'autres (et quand tu vois que ton jeu va pas plus vite en désactivant un truc, tu vas pas te crever à optimiser l'utilisation du dit truc).

        Par contre, c'est sur que c'est pas demain qu'un démomaker va s'amuser a réécrire et réoptimiser l'équivalent d'une démo utilisant toute les routines implémenté dans les direct X et rajouter a cela l'équivalent d'un moteur a la doom 3
        Ca c'est sûr, surtout s'il n'en est pas capable et que c'est inutile
        Un clone de directx, c'est directx. Et les optimisations ceux qui écrivent les drivers s'en chargent.

        Mais théoriquement , si c'était possible , on gagnerait surement en vitesse plutot que toute ces couches de codes qui appellent des instructions qui appelent d'autres instructions avant de faire appel au processeur ou a la carte graphique (avec un windows tjs en sommeil)
        Hyper négligeable de nos jours.
        (instructions qui appelent des instructions??)

        Commentaire

        • M***
          Compte archivé

          • octobre 2001
          • 2429

          #5
          On perd en performance ce qu'on gagne en compatibilité, maintenant, plus de problèmes de mémoire conventionnelle ou autres drivers UniVBE.

          Ceci dit, en jeux très bien programmés, je pense aux jeux de Carmarck (Quake...), qui utilisent vraiment a fond la bécane, ce qui permet d'avoir de très bons jeux techniquement sans forcément avoir une machine de guerre.

          Il existe quand même quelques patchs pour optimiser un jeu pour un processeur ou une carte graphique (par exemple le patch Pentium 4 pour Black & White, ou certains jeux livrés en bundle avec des cartes graphiques).
          [URL=http://www.jokari.info]Jokari.info[/URL]

          Commentaire

          • Groovykid
            Banned

            • août 2001
            • 11165

            #6
            Edit : désolé pour toute les fautes d'ortho , j'ai la flemme de les corriger

            Provient du message de Hibernatus

            Gniii? Je me trompe peut-être, mais bon pour moi programmer une operation c'est reprogrammer la micromachine, et bon je savais pas que c'était possible sur les machines grand public
            Tu veux dire *utiliser* des instructions pas *documentées*?
            oui c'est ca que je voulais dire

            et je vais pas faire plein de quote mais ce que je voulais dire en gros, c'est que nous avons des bécanes surpuissantes et sous exploités pour des questions de facilité et des enjeux financiers (tel le renouvellement du matériel)

            Par exemple, dans n'importe quel jeu qui tourne sous windows , quand le processeur travaille il vérifie plusieurs choses dont l'état de l'os , ne serait ce que pour savoir par exemple si l'utilisateur a en cours de jeu appuyé sur la touche windows pour revenir sous windows. Rien que ca , ca prend une goutte de temps machine , tout comme windows XP est ultra lourd et demande au minimum une machine a 200 Mhz et 1Go de DD pour n'afficher au final qu'un bureau en 2d avec bcp de services supplémentaires.

            Pour un jeu qui tourne sous windows, et bien il y a toujours windows derrière avec de nbx services qui tournent en fond de tache et qui ne servent pas le jeu mais qui utilisent des ressources systèmes.

            Pour les direct x , les meilleurs FPS fonctionnent aussi sous open gl , dont s'est inspiré direct X ; et les jeux programmé sur consoles utilisent d'autres librairies que les direct x

            Pour les instructions qui appelent d'autres instructions, je veux dire par la que les programmeurs ne code plus en assembleurs et utilisent les langages objets et font appele a des routines qui appelent une routine direct X qui s'attaque au hardware.

            Tout cela fait que nous avons des programmes qui pesent lourd et qui ne sont pas forcément optimisé , quand on compare par exemple le magic carpet d'origine avec le magic carpet 4k recodé par des démomakers

            Alors maintenant, les jeux qui sortent comme farcry tournent de facon optimale sur le dernier monstre et ensuite retire les effets qui prennent le plus de temps machine pour s'adapter a ta machine.

            les programmeurs en viennent a attendre les nouvelles machines pour afficher une meilleure définition, en utilisant un max d'effets dispo dans les direct x ; pour avoir des jeux avec des modèles a 100.000 polygones, voir 200.000 polygone, ou pour avoir un champ de vision plus important (comme dans farcry).

            Mais pour tout ca, ou est le challenge pour le programmeur ?
            il n'a qu'a programmer un objet a 300.000 polygones et attendre la prochaine bécane suffisamment puissante pour faire tourner son programme plutot que d'essayer de se creuser le cerveau pour essayer d'afficher ces 300.000 polygones sur la machine actuelle (au contraire, il va utiliser une routine direct x pour que son perso a 300.000 polygone utilise 2 fois moins de polygones sur une machine 2 fois moins puissante)

            Je schématise , mais de nos jours , ya plus de petits génis comme eric chahi qui vont se pencher sur l'optimisation du code pour faire une intro entièrement en 3D animé pour un jeu , qui dure plus de 10mn , et qui tiens sur 40ko (comme l'intro d'another word)

            aujourd'hui, certains programmeurs attendent les nouvelles routines des cartes graphiques et direct x a implémenter dans leurs jeu de bagnole qui permettra d'avoir plein d'effets supers pour pas cher et sans forcément comprendre comment ca marche et se demander si par hasard ca pourrait pas etre encore plus rapide vu que c'est déja très rapide ! d'ou l'inutilité d'optimiser son code si ca marche déja bien comme ca sur un P4
            Dernière modification par Groovykid, 25 mars 2004, 23h31.

            Commentaire

            • x***
              Compte archivé

              • juin 2002
              • 376

              #7
              Elite 2 ( toutes machines confondues ) est aussi un bon exemple d'optimisation...Le jeu tient sur une DD de 720ko...

              Commentaire

              • Godcedric
                Bob le bio-couleur


                • mai 2001
                • 13354

                #8
                De toute manière, il est loin le temps ou les petits programmeurs faisaient des miracles sur des jeux commerciaux. Maintenant le but du jeu c'est de sortir des pompes à fric. Y à intérêt que ca pète bien sur le dernier joujou Intel à la mode du moment...

                Half life, avec le moteur remanié de Quake 1. Ca c'est de l'optimisation! Vous pouvez me dire quelle machine ne peut pas le faire tourner en 1024x768...?

                Comme on disait plus haut, des jeux comme Another World...ect sont de parfait exemple d'un code optimisé pour la machine. Ha la la, c'était quand même plus marrant le temps ou on jouait sur des jeux qui tenaient sur de simple disquette et sur des machines qui demandaient pratiquement aucun upgrade. :rolleyes:
                POUR LES CHANGEMENTS DE CD DANS UN JEU EN INSTALLATION FACILE (et pour Dosbox en général), IL FAUT FAIRE LA COMBINAISON DE TOUCHES CTRL F4.

                NOTEZ QU'A CHAQUE DÉMARRAGE D'UN JEU INSTALLATION FACILE, UNE AIDE S'AFFICHE. MERCI DE LIRE AVANT D'APPUYER DIRECTEMENT SUR UNE TOUCHE POUR JOUER. CA PREND 5 SECONDES A LIRE ET CA ÉVITE DE CHERCHER UNE DEMIE JOURNÉE POUR TROUVER LA RÉPONSE.

                Merci.

                Commentaire

                • M***
                  Compte archivé

                  • octobre 2001
                  • 2429

                  #9
                  Provient du message de Godcedric
                  Half life, avec le moteur remanié de Quake 1. Ca c'est de l'optimisation! Vous pouvez me dire quelle machine ne peut pas le faire tourner en 1024x768...?
                  ... la mienne :rolleyes:
                  Mais c'est pas le moteur de Quake 2 plutôt ?
                  [URL=http://www.jokari.info]Jokari.info[/URL]

                  Commentaire

                  • Rebel Knight
                    Citizen

                    • mars 2004
                    • 50

                    #10
                    Il est clair que le monde du PC est un monde à part.
                    Effectivement si certains jeux semblent être mal optimisés aujourd'hui, sur le long terme ses jeux tourneront parfaitement bien en vu la course effrénée de la puissance des PC. Mais le marché à évolué aussi, fini l'époque des programmeurs dans leur cave.
                    Quant aux consoles, la donne est extrêment différente dans la mesure où si le jeu est mal optimisé, il est très probable que ce dernier se vendra très mal. Il n'y a qu'à voir le problème récurrent sur la PS2 avec l'aliasing, alors que la solution existe.
                    Mais pour revenir sur les ordinateurs 16 bits plus particulièrement l'amiga, les seuls upgrades qui pouvaient devenir indispensables étaient les extensions de mémoires.

                    Rebel Knight

                    Commentaire

                    • Godcedric
                      Bob le bio-couleur


                      • mai 2001
                      • 13354

                      #11
                      Arfff

                      Je sais même plus maintenant moi. Je crois me souvenir que c'était le moteur de Quake1 revu et corrigé par Valve.

                      POUR LES CHANGEMENTS DE CD DANS UN JEU EN INSTALLATION FACILE (et pour Dosbox en général), IL FAUT FAIRE LA COMBINAISON DE TOUCHES CTRL F4.

                      NOTEZ QU'A CHAQUE DÉMARRAGE D'UN JEU INSTALLATION FACILE, UNE AIDE S'AFFICHE. MERCI DE LIRE AVANT D'APPUYER DIRECTEMENT SUR UNE TOUCHE POUR JOUER. CA PREND 5 SECONDES A LIRE ET CA ÉVITE DE CHERCHER UNE DEMIE JOURNÉE POUR TROUVER LA RÉPONSE.

                      Merci.

                      Commentaire

                      • M***
                        Compte archivé

                        • octobre 2001
                        • 2429

                        #12
                        C'est bien celui du 2 :

                        http://www.jeuxvideo.com/articles/00...00202_test.htm
                        [URL=http://www.jokari.info]Jokari.info[/URL]

                        Commentaire

                        • Godcedric
                          Bob le bio-couleur


                          • mai 2001
                          • 13354

                          #13
                          Mdr

                          J'ai cru pendant des années que c'était le moteur de Quake 1, du coup j'ai été encore plus souflé par le graphisme à la sortie du jeu. Je trouvais drôle aussi qu'ils aient réussi à pondre un truc plus beau que Quake 2 avec le moteur de Quake 1...

                          Le mag que j'avais du lire à l'époque devait avoir oublié de préciser de quel Quake il parlait.

                          POUR LES CHANGEMENTS DE CD DANS UN JEU EN INSTALLATION FACILE (et pour Dosbox en général), IL FAUT FAIRE LA COMBINAISON DE TOUCHES CTRL F4.

                          NOTEZ QU'A CHAQUE DÉMARRAGE D'UN JEU INSTALLATION FACILE, UNE AIDE S'AFFICHE. MERCI DE LIRE AVANT D'APPUYER DIRECTEMENT SUR UNE TOUCHE POUR JOUER. CA PREND 5 SECONDES A LIRE ET CA ÉVITE DE CHERCHER UNE DEMIE JOURNÉE POUR TROUVER LA RÉPONSE.

                          Merci.

                          Commentaire

                          • M***
                            Compte archivé

                            • octobre 2001
                            • 2429

                            #14
                            Je suis tombé aussi sur des trucs ou on dit que le jeu a d'abord été programmé avec le moteur du 1, puis avec la sortie du 2, les améliorations ont été ajoutées. Ca serait donc une sorte de mélange des deux...
                            [URL=http://www.jokari.info]Jokari.info[/URL]

                            Commentaire

                            • I***
                              Compte archivé

                              • mars 2004
                              • 1

                              #15
                              A mon avis, la cause principale du manque d'optimisation c'est le PC. Mais oui : le jeu X rame sur votre machine !? Evidemment, il vous faut une carte 3D plus puissante, plus de RAM... etc...
                              Alors qu'avant, on pouvait upgrader un peu sa machine, mais ce n'était rien de tel comparé à aujourd'hui.

                              Les programmeur doivent sans doute se dire que c'est pas la peine de passer des heures à optimiser le code, alors qu'il suffit à l'utilisateur de racheter un composant plus puissant pour que ça tourne comme il faut.

                              Pour reprendre le problème de l'os qui bouffe des ressources, je pense que ce serait une bonne idée pour qu'il y ait, dans windows( ou autre ), deux mode de fonctionnement, dont un serait un environnement light, qui prendrait très très peu de ressources, et ne permettrait que de jouer.

                              Enfin dans les anciens jeux bien optimisés, je citerais epic, qui ont réalisé les seuls jeu avec un scrolling qui ne ramait pas sur ma machine de l'époque ( un 386, pas prévu pour les jeux d'action ).
                              "Un trou noir c'est troublant !"

                              Commentaire

                              Chargement...