Pertama-tama saya ingin memiliki jawaban yang nyata, saya selalu berusaha untuk mendapatkan lebih banyak dari berbagai sumber dan artikel, dan ketika saya membaca hal-hal seperti C ++ lambat karena memiliki fungsi virtual dan karena C ini lebih baik , saya benar-benar tidak tahu harus berkata apa dan berpikir sebagai manusia dengan otak. Jadi tolong hindari untuk mencapai level ini dalam jawaban Anda.
Pertanyaan saya adalah tentang perpindahan besar-besaran ke C ++ yang selesai, kurang lebih, dengan Doom 3.
Hal yang menarik bagi saya adalah bahwa sebelum tonggak sejarah ini, sebagian besar mesin game dan game itu sendiri ditulis dalam bahasa C, seperti itu sejak era Gempa . Menarik juga untuk dicatat bahwa perangkat lunak ID memutuskan untuk sepenuhnya menulis ulang basis kode untuk IdTech 4 di C ++, sejumlah besar pekerjaan yang sejujurnya tidak dapat saya pahami tanpa daftar alasan yang sangat bagus.
Saya fokus pada Doom 3 karena saya terutama tertarik pada dunia OpenGL dan dalam perjalanan saya mencoba untuk tetap fokus pada topik ini, jadi saya banyak membaca tentang ini, tetapi saya pikir pertanyaan seperti itu dapat di-render-API -agnostik tanpa terlalu banyak masalah.
Mengapa pada titik waktu tertentu industri beralih besar-besaran ke C ++? Apa alasan untuk pilihan yang dibuat ID?
Hal terakhir yang ingin saya katakan adalah bahwa bahasa C jauh lebih sederhana untuk diimplementasikan dan menyediakan sejumlah fitur yang lebih sedikit, karena ini memiliki peluang jauh lebih kecil untuk "terfragmentasi" dalam bentuk yang tidak seperti C ++ yang sebenarnya sering terjadi. Dalam istilah paling sederhana saya memiliki lebih banyak peluang untuk menemukan kompiler C yang benar-benar baik daripada kompiler C ++ yang baik dengan semua fitur yang diimplementasikan dengan cara yang baik.
Misalnya NDK untuk Android masih tidak memiliki dukungan C ++ yang baik (dengan rilis r8b) dengan semua fitur terbaru dan terhebat, dan itu adalah toolkit asli untuk OS seluler paling populer di dunia!
Jika saya telah menulis kode saya dalam C ++ modern saya mungkin akan kesakitan sekarang karena salah satu OS paling populer di dunia akan terlarang bagi saya. Dan seperti Android, banyak kompiler lain tidak begitu bagus.
Saya harus menulis kode C ++ mengacu pada versi C ++ yang 2-3 rilis lama?