Prima di tutto vorrei avere una vera risposta, cerco sempre di ottenere di più da varie fonti e articoli, e quando leggo cose come C ++ è lenta perché ha funzioni virtuali e grazie a questa C è migliore , davvero non so cosa dire e pensare come un essere umano con un cervello. Quindi, per favore, evita di raggiungere questo livello nelle tue risposte.
La mia domanda riguarda un enorme passaggio al C ++ che è stato completato, più o meno, con Doom 3.
La cosa interessante per me è che prima di questo traguardo, la maggior parte dei motori di gioco e dei giochi stessi erano scritti in C, proprio come lo era dall'era del Quake . È anche interessante notare che il software ID decide di riscrivere completamente la base di codice per IdTech 4 in C ++, un'enorme quantità di lavoro che onestamente non riesco a capire senza un buon elenco di motivi.
Mi sto concentrando su Doom 3 perché sono principalmente interessato al mondo OpenGL e nel mio viaggio cerco di rimanere concentrato su questo argomento, quindi ho letto molto su questo, ma penso che una domanda del genere possa essere render-API -agnostico senza troppi problemi.
Perché a un certo punto l'industria è passata massicciamente al C ++? Quali sono i motivi della scelta dell'ID?
L'ultima cosa che vorrei dire è che il linguaggio C è molto più semplice da implementare e fornisce un numero inferiore di funzionalità, per questo ha molte meno possibilità di essere "frammentato" in pezzi a differenza del C ++ che spesso fa. In parole povere ho molte più possibilità di trovare un compilatore C davvero buono piuttosto che un buon compilatore C ++ con tutte le funzionalità implementate in modo positivo.
Ad esempio, NDK per Android non ha ancora un buon supporto C ++ (con la versione r8b) con tutte le funzionalità più recenti e più grandi, ed è il toolkit nativo per il sistema operativo mobile più popolare al mondo!
Se avessi scritto il mio codice in un moderno C ++, probabilmente avrei sofferto ora perché uno dei sistemi operativi più popolari al mondo sarebbe off-limits per me. E come Android, molti altri compilatori non sono così grandi.
Dovrei scrivere il codice C ++ facendo riferimento a una versione C ++ che è 2-3 vecchia versione?