Pourquoi quake 3 a été programmé en C et non en C++

Pour le C++ vers le C, moi aussi ca m’étonne, mais bon pour moi, un compilateur c’est comme une boite noire, et comme je n’ai aucune idée de la structure d’un fichier exécutable, je ne sais pas trop non plus ce qu’on donne à manger à un processeur, ou quelle partie du fichier ne sont que traitées par l’OS.

Meme si j’ai fait de l’assembleur en terminale, c’etait pas sur du x86.

Voici le lien de ma question sur Yahoo Answers:
http://answers.yahoo.com/question/index?qi…23103234AAZ6kQq

J’ai tendance à vouloir rester sur du C, je n’arrive pas a trouver d’utilité a l’héritage et au fait que les objets cachent leur données, et a comprendre quel en est l’utilité (performance ? sécurité ?): le compilateur sait il mieux optimiser du code qui utilise des classes que du C classique ? Un programmeur qui sait se passer des classes peut déjà faire quelque chose qui se rapproche de l’héritage avec des struct : pourquoi rajouter de l’abstrait si un programmeur sait comment résoudre un problème et passer directement a la programmation concrète ? Pourquoi faire compliqué (C++) quand on peut faire simple © ?

J’essaie de m’initier a la programmation 3D/jeu vidéo, et je suis beaucoup plus enthousiaste a utiliser quelque chose comme panda3d que OGRE, ou meme a apprendre a modder quake3 plutot que apprendre a utiliser un moteur 3D qui fait tout ce qui est possible ou imaginable, alors que je veux me contenter de refaire ce qui existe deja, en photo realiste.

L’assembleur RISC en embarque c’est super simple aussi. Y a vraiment pas beaucoup d’instructions.

/stabs himself with fork

Faut faire de l’ASM 8086, le seul vrai langage d’homme avec du poil aux pattes.

Pour faire de l’informatique de Gestion, le COBOL avec carte perforée est quand largement supérieur à de l’ASM, d’ailleurs, je ne comprend pas pourquoi on a inventé tous ces nouveaux langage depuis le COBOL dans l’industrie, faire de l’objet, c’est vraiment de la branlette intellectuelle.

Blague a part Jokoon, t’es gentil mais quand meme un peu penible. J’ai rechecke ton historique de sujets (ton pseudo me disait quelque chose) et tu es coutumier du fait. Si tu souhaites faire du C, fait du C. Si tu souhaites argumenter des heures que C c’est mieux que C++, va sur Developpez.com . Maintenant, dans les faits, aucune techno n’est en soit plus “puissante” qu’une autre. C’est le projet, les personnes, et les buts que tu cherches a atteindre qui vont driver ton choix de techno, et donc ton orientation pro. Fais comme tu veux, nous ici on s’en fout, on est assez malin pour etre agnostique quand on doit reflechir a ce qu’on doit faire, et a faire les choix qui dependent de la plateforme que l’on vise, de l’experience des equipes, et de l’etat de l’art sur le sujet.

Je laisse le sujet encore ouvert, mais avec un risque non negligeable que ca ferme en cas de debordement supplementaires.

Ok, désolé de poster des questions ennuyeuses, c’etait juste pour savoir quelle etait la solution la plus a meme de recolter le plus d’avantages, surtout niveau performances…

Evidemment, je suis plus attiré par le C, mais je pensais ne pas savoir ou cpmprendre certaines choses qui touchaient à la POO, c’est tout.

Mes excuses !

Bah, comme tout, il faut comparer ce qui est comparable. Si tu veux parler de 98, cite d’autres jeux de 98, produit des benches de moteurs de 98. Evidemment, l’id tech 3 est un excellent moteur, sur plein de points de vue. Si tu voulais un “vrai” comparatif, tu prendrais l’id tech 3, tu le referais en Cpp, et tu comparerais les 2 (memes capacites d’affichage, memes effets, etc etc). La question n’est pas ennuyeuse, elle est stupide.

Pour y repondre, en reprenant mes indications du post precedent c’est :
Quelle est l’experience de l’equipe ? : principalement C
Que cherche-t-on a atteindre ? : un niveau de rendu excellent, dans de bonnes performances, et une portabilite accrue (q3 a ete porte sur consoles, linux, win, etc)
A-t-on un budget illimité pour réaliser ca ? : non, les budgets illimités ca n’existe pas
Que reste-t-il comme choix pour obtenir ce que l’on souhaite dans les temps ? : capitaliser sur notre expertise technique, et developper ca en C

“Although id Tech 3 was derived from the id Tech 2, a large portion of code was new or re-written.” [page wiki] - travailler sur du code legacy permet de gagner du temps et de capitaliser sur ce passif.

J’ai pas lu le code de Quake, mais si ils utilisent le C, à mon avis il y’a 100% de chance qu’ils utilisent une approche objet.
Une maniére de faire cela est de mettre les attributs dans un struct, et pour chaque méthode de classe, rajouter un paramétre à la fonction qui pointe vers la structure. Cependant, implémenter toutes les fonctionalités de la POO en C, ca prend du temps, et du coup, c’est pas intelligent.

Aussi, aujourd’hui, et même depuis un bon moment, compiler du C n’est pas plus performant que le C++. Il ne faut pas croire tout ce qu’on dit sur Yahoo Answers, faire du C++ to C to code compilé ne sert strictement à rien!

A mon avis, ils ont utilisé du C car le chef de projet en a décidé ainsi, pour un tas de raison possible : ils avaient déjà beaucoup fait en C, ou alors c’étaient des quiches en C++. (d’ailleurs +1 Ravine ^^)

Moi j’aurais quand même codé en C++, ca permet beaucoup plus de choses coté fonctionnalités, sans compter que le code est plus propre et plus facile à maintenir/faire évoluer.

@jokoon : crois moi, la POO est BEAUCOUP plus simple! Se passer d’objets est très, très difficile, et augmente beaucoup ton temps de travail.

MDR :smiley:

Tu lis deja pas les posts precedents…

C’est paradoxal voire un peu bizarre que quake, un des meilleurs jeux, soit codés par des quiches… comme quoi les bons programmeurs sont pas toujours avec les bons game designers…

Pour ma réticence, c’est juste que je me demandais pourquoi à l’époque de l’invention du C on avait pas besoin de programmation objet, que les subtilités de l’héritage etc sont pas toujours super faciles (et ca empire quand on comprend pas tout de suite l’intérêt), et encore quand on lit que des chercheurs veulent nous subduer avec un autre truc… le D.

Bref tout ça pour dire, j’attends impatiemment la réponse de Crea Jeux…

Va pour microsoft, fallait bien se faire avoir un jour ^^

Euuh, ya des baffes qui se perdent quand même, traiter des mecs qui ont fait un moteur relativement bien optimisé, portable, dans le langage qu’il connaissent le mieux pour être sur maitriser au maximum leur création, de QUICHE, non mais sérieux faut arrêter.

Un développement n’est pas « mieux » parce qu’il est en C++ plutôt qu’en C.

This is …

C’est moi où plus les années passent et plus les trolls perdent en qualité de répartie ? Au moins, avant, on avait du troll érudit et ça c’était sport.

Bon allez, trêve de plaisanteries… Ravine avait déjà menacé de le faire, mais ce coup-ci je ferme, tu iras trouver tes réponses ailleurs.