Saya seorang Pemrogram Game 2D. Beberapa bahasa pemrograman yang saya kuasai adalah C, Java, C #. Saya juga tahu Actionscript 2.0,3.0 dan beberapa javascript. Saya tertarik mempelajari pemrograman Game 3D. Sejauh ini dari penelitian yang saya kumpulkan dengan googling dan membaca berbagai forum dan artikel pengembangan game. Saya telah memperhatikan bahwa kebanyakan programmer cenderung lebih suka C ++. Juga dalam kursus pengajaran pemrograman game online saya perhatikan mereka lebih suka mengajar C ++ dan Visual C ++ sebagai kursus awal. Alasan saya mengajukan pertanyaan ini karena saya ingin tahu perbedaan "kekuatan" dari C ++, C # dan Java untuk pemrograman game 3d.
Juga termasuk tautan ke artikel pemrograman game 3d yang bagus untuk programmer game yang sudah 2d.
PS: IMHO, saya juga menemukan C ++ menjadi samar.
sumber
Jawaban:
Ya, C ++ adalah bahasa yang paling sering digunakan (meskipun beberapa orang masih menggunakan C).
Ada banyak alasan untuk ini. Momentum tipis adalah satu - itu hanya bahasa yang telah digunakan selama bertahun-tahun, banyak teknologi sudah ada dan orang-orang merasa nyaman dengan itu, sehingga perubahan tidak akan terjadi dalam semalam.
Lalu ada masalah kontrol. Pengembang game adalah orang-orang aneh yang mengendalikan, dan kami ingin mengetahui semua yang terjadi dalam kode kami. C ++ memberi kita kendali itu, C # dan Java (untuk memilih dua alternatif yang Anda sebutkan) mengambil kendali. Dalam banyak hal itu mungkin hal yang baik, tetapi pembuat kode permainan tidak menyukainya :)
Akhirnya ada masalah praktis sederhana bahwa SDK untuk berbagai platform sangat C ++ centric. Menggunakan bahasa lain pasti melibatkan penulisan pembungkus, kompilasi silang ke VM, dan mungkin (dalam kasus beberapa pengembangan konsol) itu tidak diizinkan oleh pemegang platform (mereka benar-benar tidak suka orang yang melakukan kompilasi JIT, untuk permulaan).
sumber
C ++ masih disukai karena Anda dapat melihat hampir semua publikasi tentang topik pengembangan game. Saya pribadi saat ini menggunakan C untuk menyelam ke dalam pengembangan game karena alasan sederhana bahwa kode C ++ yang saya tulis menyalahgunakan fitur templating, menggunakan RAII secara luas, alokasi memori dinamis dan hal-hal lain yang tidak boleh Anda lakukan dalam kode game dari apa yang telah saya lihat sejauh ini.
Berpegang teguh pada C memaksa saya untuk bersikap minimalis dan berpikir tentang apa yang saya lakukan. Mungkin lebih sulit ketika Anda harus mengimplementasikan sesuatu yang diberikan STL secara gratis, tetapi pada sisi baiknya saya merasa saya menulis kode bersih dan memiliki waktu yang lebih baik untuk men-debug hal itu.
sumber
Saya pribadi bukan penggemar C ++, dan saya lebih suka Java. Namun, sebagian besar orang di industri menggunakannya dan ini adalah bahasa yang paling mudah untuk dikonversi ke platform lain tanpa pembungkus dan mesin virtual.
Namun, terkadang bahasa lain bekerja cukup baik untuk pengembangan game. Saya menggunakan Java dengan LWJGL dan itu luar biasa. Jadi jika Anda ingin memulai dengan pemrograman 3D dan OpenGL tanpa harus belajar C ++, coba LWJGL dengan Java, karena sangat ringan dan saya pikir itu sebenarnya kode C ++ yang berjalan melalui JNI.
Mungkin dalam jangka panjang Anda mungkin ingin beralih ke C ++, tetapi Anda bisa mulai dan berlatih dengan C # atau Java. Karena sebagian besar kode permainan berasal dari pengalaman dengan bahasa, tetapi Anda harus mencoba dan berlatih OpenGL dengan bahasa yang Anda sukai. Selain itu, saat Anda berlatih grafik, Anda juga harus mencoba GLSL dengan OpenGL, ia memiliki sintaks yang sangat mirip C
sumber