Penerapan Java dan Steam JVM

10

Saat ini saya sedang mempertimbangkan opsi saya untuk pengembangan game dan penggunaan untuk Steam Greenlight. Saya sangat suka Java dengan libGDX, terutama untuk potensi lintas platform Android, dan saya mengerti bahwa adalah mungkin untuk menggunakan game Java di Steam. Saya juga sangat nyaman dengan harus membuat semacam pembungkus sehingga permainan Java saya bisa memanggil C ++ Steamworks API.

Pertanyaan saya adalah tentang masalah penempatan yang mungkin saya hadapi. Khususnya, dengan pemasangan JRE dari mesin klien. Saya telah melihat banyak pemasang Steam memeriksa runtime .NET. Haruskah saya melakukan pemeriksaan dan pemasangan serupa untuk JRE?

Apakah ada alasan mencolok mengapa penyebaran Java di Steam akan menjadi mimpi buruk untuk digunakan dan dipertahankan vs sesuatu seperti C # menggunakan Monogame?

spektakulerbob
sumber

Jawaban:

15

Sebagai seseorang yang baru-baru ini merilis game libGDX di Steam, tidak seperti .NET dan DirectX, Steam tidak menyediakan opsi dengan aplikasi Anda untuk secara otomatis memeriksa dan mengunduh versi yang Anda butuhkan dari perpustakaan tersebut.

Sangat mengganggu bagi pengguna untuk membuat mereka menginstal Java sebagai pustaka sistem, karena sebagian besar masih melihat JRE, terutama Oracle, sebagai semacam lubang adware / keamanan dan tidak ingin menginstalnya pada mesin mereka. Masih ada stigma terhadap aplikasi Java di desktop, jadi Anda harus memperhatikan pengguna.

Apa yang saya sarankan adalah menggunakan aplikasi paket libgdx , yang secara otomatis akan mengemas stoples dan sumber daya Anda dengan OpenJDK pribadi yang sesuai, yang terbuka untuk digunakan dan didistribusikan dengan perangkat lunak Anda. Atau, Anda dapat melakukannya secara manual dengan meraih bangunan OpenJDK tidak resmi yang mereka gunakan dalam paket dan memasukkannya ke proyek Anda.

Saya, secara pribadi, melakukan opsi terakhir karena saya telah mengunduh versi terbaru dan mengemas semuanya, termasuk mendistribusikan ke steam, semua termasuk dalam skrip gradle build proyek saya.

Termasuk JRE / JDK Anda sendiri ringan, hanya menambahkan sekitar 80mb ke gim Anda, dan non-invasif. Ini juga memastikan bahwa versi Java yang Anda gunakan untuk menjalankan aplikasi selalu merupakan versi yang Anda butuhkan, alih-alih bertentangan dengan apa yang dimiliki sistem.

Sunting: 13 Maret 2017

Selama kurang lebih satu tahun sekarang saya telah menggunakan OpenJRE Azul alih-alih build tidak resmi dari alexkasko. Mereka banyak digunakan dan didukung bahkan di lingkungan perusahaan. Selain itu, mereka mendukung Java 8 dan lebih tinggi, di mana pada saat pergantian saya versi repositori build tidak resmi macet di Java 7.

Sejak saya beralih, sekarang ada repositori open-source juga, yang terus menyediakan versi openjdk / jre yang dibuat komunitas, jika Anda ingin menggunakannya. Keduanya bagus.

nhydock
sumber
1

Saya pikir benar-benar OK untuk memeriksa runtime pengguna, mengingat bahasanya membutuhkan satu. Saya berpikir bahwa dalam. NET, Java, Python, Lua, atau bahasa pemrograman lain yang memerlukan lingkungan runtime, hanya karena permainan tidak dapat berjalan tanpanya.

Jika Anda memiliki masalah UX, jangan khawatir, penginstal JRE tidak terlalu mengganggu, dan banyak game lolos dengan instalasi runtime, atau bahkan beberapa dependensi.

Dalam hal masalah hukum, saya tidak percaya bahwa Anda berada di zona hukum abu-abu atau merah. Menurut FAQ Lisensi , Anda dapat dengan mudah mendistribusikan Java Environment dengan perangkat lunak Anda, sesuai dengan item yang menyatakan:

Bisakah saya mendistribusikan Java dengan perangkat lunak saya?
Ya, Anda dapat memberikan Java dengan perangkat lunak Anda asalkan Anda mematuhi syarat dan ketentuan lisensi kode biner Java

Itu harus semua informasi yang Anda butuhkan untuk membuat keputusan yang berpendidikan.

Tetesan-tetesan
sumber
2
Jika pengguna harus menginstal JRE terlebih dahulu, Anda tidak akan mendapatkan sertifikasi Steam OS. Sumber: t.co/cEboMGAR2O Anda dapat menggabungkannya dengan OpenJDK.
Benedikt S. Vogler
Tidak seperti lingkungan runtime lainnya, Java tidak menangani banyak instalasi dengan sangat baik. Jika pengguna menginstal Java 7 dan membutuhkan versi itu tersedia untuk salah satu aplikasi mereka, dan Anda menjalankan installer Java 8 ... maka Anda baru saja merusak aplikasi itu. Distribusi JRE yang ditargetkan adalah opsi yang jauh lebih baik pada saat ini.
Cypher
0

Beberapa pengguna mungkin tidak menginstal Java dan saya tidak percaya bahwa Steam memiliki cara asli untuk memeriksa / menginstal Java karena itu akan menjengkelkan bagi pengguna dan hanya sebagian kecil game di Steam memerlukan Java.

Coba sertakan Java Runtime Environment portabel sehingga Anda akan selalu memiliki bangunan Java yang konsisten untuk menjalankan game, saya yakin ada beberapa yang sesuai dengan kebutuhan Anda.

Syd Lambert
sumber
0

Pembangunan Jawa bisa menjadi mimpi buruk sejauh penyebaran; tetapi, ada alat untuk membuatnya lebih mudah.

Misalnya, Anda dapat menggunakan alat seperti Launch4juntuk mengemas game terakhir Anda; secara opsional, Anda dapat memerintahkannya untuk memasukkan JRE (atau tidak) untuk membuat biner yang lengkap.

Dengan cara ini, Anda tidak peduli jika atau apa JRE yang telah dipasang klien; Anda hanya mengemas aplikasi Anda, dan mengirimkannya. Kelemahannya adalah biner akhir Anda akan jauh lebih besar.

ashes999
sumber