Przede wszystkim chciałbym mieć prawdziwą odpowiedź, zawsze staram się uzyskać więcej z różnych źródeł i artykułów, a kiedy czytam rzeczy takie jak C ++ jest powolny, ponieważ ma funkcje wirtualne i z tego powodu C jest lepsze , naprawdę nie wiem, co powiedzieć i myśleć jak człowiek z mózgiem. Dlatego unikaj osiągania tego poziomu w swoich odpowiedziach.
Moje pytanie dotyczy ogromnego przejścia na C ++, które zostało ukończone mniej więcej w Doom 3.
Interesujące jest dla mnie to, że przed tym kamieniem milowym większość silników gier i same gry były napisane w C, tak jak to było od czasów Quake'a . Warto również zauważyć, że oprogramowanie ID decyduje się całkowicie przepisać bazę kodu dla IdTech 4 w C ++, ogromną ilość pracy, której szczerze mówiąc, nie rozumiem bez naprawdę dobrej listy powodów.
Skupiam się na Doom 3, ponieważ interesuję się przede wszystkim światem OpenGL. W swojej podróży staram się skupić na tym temacie, więc dużo o tym czytam, ale myślę, że takie pytanie może być renderowane API -agnostyka bez większych problemów.
Dlaczego w pewnym momencie branża masowo przeszła na C ++? Jakie są przyczyny wyboru dokonanego przez siebie dokumentu tożsamości?
Ostatnią rzeczą, którą chciałbym powiedzieć, jest to, że język C jest o wiele prostszy do wdrożenia i zapewnia mniejszą liczbę funkcji, ponieważ ma to znacznie mniejsze szanse na „fragmentację” na części, w przeciwieństwie do tego, co naprawdę często robi C ++. Mówiąc najprościej, mam znacznie większe szanse na znalezienie naprawdę dobrego kompilatora C niż dobrego kompilatora C ++ ze wszystkimi funkcjami zaimplementowanymi w dobry sposób.
Na przykład NDK dla Androida wciąż nie ma dobrej obsługi C ++ (z wydaniem r8b) ze wszystkimi najnowszymi i najlepszymi funkcjami, a jest to natywny zestaw narzędzi dla najpopularniejszego mobilnego systemu operacyjnego na świecie!
Gdybym napisał mój kod w nowoczesnym C ++, prawdopodobnie bolełbym teraz, ponieważ jeden z najpopularniejszych systemów operacyjnych na świecie byłby dla mnie niedostępny. I podobnie jak Android, wiele innych kompilatorów nie jest tak świetnych.
Powinienem napisać kod C ++ odnoszący się do wersji C ++, która ma starą wersję 2-3?