C ou C++? - Programmation
Marsh Posté le 29-11-2001 à 16:56:20
nospher a écrit a écrit : Ma question concerne la programmation de jeux en temps réel. Je vois beaucoup de sources qui sont écrits en C. Je voudrais savoir si il est préférable d'écrire ce genre de programmes en C que en C++. Les accès aux classes du C++ sont ils plus lents que les accès à de simples structures? |
non mais certains mecanismes du C++ (copies d'objets) peuvent ralentir des appli mal ecrites...
Il faut savoir que tout code C++ peut etre ecrit en C (au prix de bcp de travail).
Marsh Posté le 29-11-2001 à 17:45:19
j'apprends un peu le C++ en école d'ingénieur et bon d'après ce que dis le prof, le C++ apporte une facilité d'écriture dans certains domaines (notamment les pointeurs)
donc autant utiliser directement le C++ !
Marsh Posté le 29-11-2001 à 17:56:04
j'suis pas spécialiste des jeux en temps reel en C/C++, mais il me semble que le C est plus approprié à cette tache.
L'avantage du C++ est la possibilité de faire du langage objet, hors, ce n'est peu etre pas ce que tu recherches au niveau d'un jeu video. Si par exemple du veux ajouter de l'assembleur, ca se ferra surement plus simplement (dans la logique d'ecriture en C qu'en C++) meme si c'est la meme chose au final.
Enfin, c'est ce que je pense, et j'suis pas un expert.
Marsh Posté le 29-11-2001 à 18:02:08
Doom 3 sera bien en temps reel nan?
Marsh Posté le 29-11-2001 à 18:02:41
nospher a écrit a écrit : Ma question concerne la programmation de jeux en temps réel. Je vois beaucoup de sources qui sont écrits en C. Je voudrais savoir si il est préférable d'écrire ce genre de programmes en C que en C++. Les accès aux classes du C++ sont ils plus lents que les accès à de simples structures? |
Sur le papier, C est plus rapide que C++. En pratique, les performances d'un jeu sont bien plus dépendantes de la manière dont c'est programmé (et des optim) que de la différence C/C++.
L'avantage du C++ permet de faire du code plus réutilisable/structuré/clair.
Quel API graphique veux tu utiliser ? Par exemple, le C++ est plus adapté avec DirectX.
Marsh Posté le 29-11-2001 à 18:22:29
C++ Mieux pour travailler en équipe
C Mieux pour bidouiller à la maison
Pour faire de la vraix programation objet faut pas mal planifié son travaille avant de mettre les main dans le cambouis et écrire le code.
Marsh Posté le 29-11-2001 à 19:03:40
Si on regarde les sources des vrai jeux, souvent c'est un melange des deux.
On utilise plus le C++ pour decrire le fonctionnement du jeux, les interactions entre elles etc ...
Par contre pour le moteur de jeux, ce qui se trouve au plus bas, on utilise plutot le C
Marsh Posté le 30-11-2001 à 10:37:00
n0mad a écrit a écrit : Sur le papier, C est plus rapide que C++. En pratique, les performances d'un jeu sont bien plus dépendantes de la manière dont c'est programmé (et des optim) que de la différence C/C++. L'avantage du C++ permet de faire du code plus réutilisable/structuré/clair. Quel API graphique veux tu utiliser ? Par exemple, le C++ est plus adapté avec DirectX. |
non le C++ est traduit par le compilo en C. Donc dire que le C est plus rapide est faux...
ce qui est plus lent c'est la conception meme du projet...
L'objet induit des copies qui ralentissent l'execution... Mais ces copies ne sont pas obligatoires, mais il faut savoir les eviter...
Le C++ fournit des outils comme les fonctions inlines qui font gagner beaucoup de temps par exemple... plus sures que des macros, et presque aussi rapides...
Marsh Posté le 30-11-2001 à 21:48:50
Non le C++ n'est pas plus lent que le C.
Non le compilateur ne traduit pas le C++ en C (?peut etre les premiers compilos C++ mais apres c'est une idee incongrue?)
Non l'objet n'est pas plus lent que le procedural.
Oui certaines abstractions apportees par le C++ induisent un cout. (au hasard: heritage, fonctions virtuelles, operateur ++ postfixe, etc..). Mais elles viennent avec un gain pour le programmeur qui met en place plus facilement des solutions qu'il n'aurait pas pu mettre en oeuvre en procedural. (une fonction virtuelle est souvent mieux qu'un switch).
Oui il est possible d'inliner de l'ASM dans du code C++
Oui il est possible d'ecrire des jeux en C++. De plus en plus de jeux le sont et les API cross platforms supportent toutes le C++ (peut-etre Renderware a encore un Core en C). Certains utilisent meme des langages encore plus high level.
Donc C/C++ faux debat. j'ai plutot l'impression que le pur C est demode.
A+
LEGREG
Marsh Posté le 29-11-2001 à 16:24:36
Ma question concerne la programmation de jeux en temps réel.
Je vois beaucoup de sources qui sont écrits en C.
Je voudrais savoir si il est préférable d'écrire ce genre de programmes en C que en C++.
Les accès aux classes du C++ sont ils plus lents que les accès à de simples structures?