Saya menggunakan Java untuk menulis game dan saya telah menggunakan C ++ untuk menulis game dan telah menemukan Java baik-baik saja selama Anda tetap memperhatikan apa kekuatan dan kelemahan Java. Dua keuntungan besar bagi saya, pemrograman di Jawa adalah kecepatan pengembangan dan penyebaran / portabilitas. Waktu kompilasi jauh lebih cepat daripada di VC ++ (belum dapat berbicara untuk XCode atau Dentang) yang berarti saya dapat mengatasi masalah lebih cepat. Juga, karena Eclipse mengkompilasi secara konstan, saya membuat lebih sedikit kesalahan ketik ketik. Saya tidak pernah menulis sepotong kode C ++ yang 'hanya berfungsi' pada sistem atau kompiler lain. Di Jawa, ini adalah norma.
Di sisi lain, Jawa memiliki beberapa daya tarik utama. Efisiensi sering ditempatkan sebagai alasan untuk tidak menggunakan Java tetapi saya telah menemukan bahwa selama Anda membuat kode dengan cara tertentu, Java dapat berkinerja cukup baik. Masalahnya adalah, cara tertentu Anda harus membuat kode bertentangan dengan apa yang dianggap baik oleh banyak orang Jawa.
Di jantung Jawa adalah 'pengumpul sampah', itu sistem manajemen memori. Saat menulis kode efisien, Anda ingin menghindari membuat alokasi dinamis setiap frame dalam bahasa apa pun dan ini khususnya berlaku untuk Java. Jika Anda mengatur pengumpul sampah karena ceroboh baru maka Anda dapat mencium frame rate yang halus selamat tinggal. Kedua (dan yang paling menjengkelkan) Java tidak mendukung tipe data pengguna kelas 1. Setiap tipe data pengguna di Java pada dasarnya dipakai sebagai pointer ke kelas, dialokasikan pada heap. Ini mengerikan untuk cache konkurensi yang Anda tidak dapat memiliki hal-hal seperti array objek Vector3 dan memiliki mereka bersamaan dalam memori - Anda dapat memiliki array pointer Vector3 tetapi itu bukan hal yang sama sekali. Umumnya Anda harus menggunakan offset ke array besar tipe primitif sebagai gantinya.