Zunächst möchte ich eine echte Antwort haben, ich versuche immer, mehr aus verschiedenen Quellen und Artikeln herauszuholen, und wenn ich Dinge wie C ++ lese, ist das langsam, weil es virtuelle Funktionen hat und weil C deshalb besser ist Ich weiß nicht, was ich als Mensch mit Gehirn sagen und denken soll. Vermeiden Sie es daher, diese Stufe in Ihren Antworten zu erreichen.
Meine Frage bezieht sich auf eine massive Umstellung auf C ++, die mehr oder weniger mit Doom 3 abgeschlossen wurde.
Das Interessante für mich ist, dass vor diesem Meilenstein die meisten Spiele-Engines und die Spiele selbst in C geschrieben waren, genau wie es seit der Quake-Ära war . Interessant ist auch, dass die ID-Software beschlossen hat, die Codebasis für IdTech 4 vollständig in C ++ umzuschreiben. Dies ist eine Menge Arbeit, die ich ehrlich gesagt ohne eine wirklich gute Liste von Gründen nicht verstehen kann.
Ich konzentriere mich auf Doom 3, weil ich mich hauptsächlich für die OpenGL-Welt interessiere und auf meiner Reise versuche ich, mich auf dieses Thema zu konzentrieren, also lese ich viel darüber, aber ich denke, dass eine solche Frage eine Render-API sein kann -Agnostiker ohne zu viele Probleme.
Warum ist die Branche zu einem bestimmten Zeitpunkt massiv auf C ++ umgestiegen? Was sind die Gründe für die Wahl, die ID gemacht hat?
Das Letzte, was ich sagen möchte, ist, dass die C-Sprache viel einfacher zu implementieren ist und eine geringere Anzahl von Funktionen bietet, da dies viel weniger Chancen hat, in Teile "fragmentiert" zu werden, als es C ++ wirklich oft tut. Im einfachsten Sinne habe ich viel mehr Chancen, einen wirklich guten C-Compiler zu finden als einen guten C ++ - Compiler, der alle Funktionen auf gute Weise implementiert hat.
Zum Beispiel hat das NDK für Android immer noch keine gute C ++ - Unterstützung (mit dem r8b-Release) mit den neuesten und besten Funktionen, und es ist das native Toolkit für das beliebteste mobile Betriebssystem der Welt!
Wenn ich meinen Code in einem modernen C ++ geschrieben hätte, würde ich jetzt wahrscheinlich Schmerzen haben, weil eines der beliebtesten Betriebssysteme der Welt für mich tabu wäre. Und wie Android sind viele andere Compiler nicht so toll.
Ich sollte C ++ - Code schreiben, der sich auf eine C ++ - Version bezieht, die 2-3 Jahre alt ist.