Antes de mais, gostaria de ter uma resposta real, estou sempre tentando obter mais informações de várias fontes e artigos, e quando leio coisas como C ++ é lento porque possui funções virtuais e, por isso, C é melhor , realmente não sei o que dizer e pensar como um ser humano com um cérebro. Portanto, evite atingir esse nível em suas respostas.
Minha pergunta é sobre uma grande mudança para C ++ que foi concluída, mais ou menos, com o Doom 3.
O interessante para mim é que, antes desse marco, a maioria dos mecanismos de jogos e os jogos em si eram escritos em C, exatamente como era desde a era do Quake . Também é interessante notar que o software de ID decide reescrever completamente a base de código do IdTech 4 em C ++, uma quantidade enorme de trabalho que honestamente não consigo entender sem uma lista muito boa de razões.
Estou focado no Doom 3 porque estou interessado principalmente no mundo OpenGL e, em minha jornada, tento me manter focado nesse tópico, por isso leio muito sobre isso, mas acho que uma pergunta como essa pode ser render-API -agnóstico sem muitos problemas.
Por que, em determinado momento, o setor mudou massivamente para C ++? Quais são os motivos da escolha que o ID fez?
A última coisa que eu gostaria de dizer é que a linguagem C é muito mais simples de implementar e fornece um número menor de recursos, porque isso tem muito menos chance de ser "fragmentado" em pedaços, como o C ++ realmente costuma fazer. Em termos mais simples, tenho muito mais chances de encontrar um compilador C realmente bom do que um bom compilador C ++ com todos os recursos implementados de uma maneira boa.
Por exemplo, o NDK para Android ainda não possui um bom suporte a C ++ (com a versão r8b) com todos os recursos melhores e mais recentes, e é o kit de ferramentas nativo para o sistema operacional móvel mais popular do mundo!
Se eu tivesse escrito meu código em um C ++ moderno, provavelmente estaria sofrendo agora porque um dos sistemas operacionais mais populares do mundo estaria fora dos limites para mim. E, como o Android, muitos outros compiladores não são tão bons assim.
Devo escrever código C ++ referindo-se a uma versão C ++ com 2-3 anos de idade?