Saya ingin membuat game berbasis browser multi-pemain. Yang menyenangkan tentang menggunakan applet adalah saya dapat membuat klien dan server dalam bahasa yang sama (java / closure / scala / etc). Saya tahu ada html5 dan javascript, tetapi javascript sisi server tidak seatur platform jvm dan dukungan browser masih agak rapuh.
Applet tampaknya tidak digunakan secara luas (kecuali untuk Runescape), tetapi apakah ada alasan mengapa mereka tidak cocok atau hanya karena reputasi buruk yang mereka kembangkan sejak masih bayi?
Jawaban:
Mereka jelas tidak cocok untuk itu, seperti yang ditunjukkan oleh RuneScape dan Minecraft dan game applet Java kecil lainnya. Ada juga perpustakaan untuk grafis 3D akselerasi perangkat keras ( LWJGL , JOGL ). Hanya saja bukan bahasa populer di komunitas pengembangan game.
Anda harus mempertimbangkan platform yang didukung. Windows dan Linux memiliki plugin Java yang hebat, Mac memiliki yang layak (hanya bekerja dengan kecepatan penuh di Safari dalam pengalaman saya), tetapi jelas platform seperti iPad dan Google Chrome OS akan benar-benar terjawab karena tidak, dan mungkin tidak akan pernah, miliki Java VM pada mereka.
sumber
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.
sumber
Tidak ada yang salah dengan applet Java untuk game web. Saya menulis game roguelike open source ( Tyrant ) di Jawa dan berfungsi dengan sangat baik sebagai applet.
Beberapa poin plus besar Jawa dalam pengalaman saya:
Portabilitasnya luar biasa - mengingat kompleksitas Tyrant, cukup mengesankan bahwa saya berhasil mendapatkan kode terkompilasi yang sama persis agar berjalan dengan baik di Windows, Mac dan Linux.
Anda tidak perlu khawatir tentang kebiasaan browser.
Dengan sedikit kepintaran, Anda dapat membuat kode yang sama berjalan baik sebagai applet atau sebagai aplikasi desktop yang berdiri sendiri
Performanya bagus dengan asumsi JVM modern.
Semua poin plus biasa dari Java dalam hal array yang hebat dari perpustakaan open source / API dll.
Perhatikan hal-hal berikut:
Anda harus menandatangani applet / mendapatkan izin istimewa jika Anda ingin melakukan hal-hal seperti menyimpan data pada sistem file lokal atau mengakses perpustakaan asli. Ini bisa menjadi penghalang bagi sebagian pengguna.
Waktu mulai cenderung sedikit lebih lambat daripada Flash atau JavaScript. Di sisi lain, kinerja lebih baik setelah JVM aktif dan berjalan ......
Java adalah bahasa yang dikumpulkan dari sampah, jadi terkadang ada sedikit jeda GC. Tidak benar-benar masalah untuk game kasual / roleplaying / strategi, tetapi mungkin menjadi masalah untuk judul FPS 3D berkinerja tinggi di mana Anda mencoba untuk mempertahankan framerate 120 FPs yang bebas jitter ......
sumber
Jika Anda berencana membuat game menjadi freeware atau siap untuk menangani menghasilkan uang dari itu sendiri, baik-baik saja di Jawa. Namun, itu tidak memiliki model sponsor permainan yang mapan dan tersebar luas seperti Flash, jadi menghasilkan uang akan sedikit lebih sulit.
sumber