Apakah mungkin untuk mengimplementasikan fungsionalitas Steamworks di game Java? Bagaimana?

11

Saya memiliki permainan dasar yang saya ingin akhirnya berubah menjadi sesuatu yang lebih baik. Gim ini semuanya Java pada saat ini, tetapi saya ingin menerapkan Steamworks SDK ke dalam gim saya (sehingga dapat memiliki prestasi, dan Lokakarya, dan sebagainya). Tetapi Steamworks membutuhkan C ++. Mungkinkah game Java saya sepenuhnya mengimplementasikan Steamworks SDK tanpa menulis ulang di C ++? Saat ini saya menggunakan jMonkey Engine 3 untuk game saya.

1 Posidon3
sumber

Jawaban:

11

Pasti mungkin, Anda hanya perlu membuat lapisan tipis yang membungkus Steam SDK (atau bagian dari itu) ke java melalui Java Native Interface

Saya tidak mengetahui adanya upaya untuk memiliki perpustakaan opensource untuk ini.

Elva
sumber
Ini tampaknya menjadi solusi yang sangat layak. Satu-satunya halangan saya dengan ini sekarang adalah bahwa saya tidak tahu bagaimana menerapkan ini ke dalam kode saya atau di mana. Saya akan berasumsi itu akan berada di suatu tempat di file utama, kan?
1Poseidon3
Saya melihat lebih dalam dan saya yakin saya akan bisa mengetahuinya. Jawaban ini sangat membantu dalam menempatkan saya di jalan yang benar.
1Poseidon3
1
Ada steamworks4j , pembungkus Java di sekitar beberapa C + + steamworks API menggunakan JNI.
mucaho
6

JNI adalah cara untuk pergi jika Anda ingin akses penuh, tetapi Steamworks Web API mungkin cara yang lebih mudah. Ini pada dasarnya saluran berbasis HTTP / HTTPS ke fungsi Steamworks, yang dirancang agar langsung kompatibel dengan akses dari Java, Python, Ruby, dan benar-benar apa pun yang tidak secara intrinsik C / C ++.

Tentu saja Anda tahu bahwa masalah dengan JNI adalah bahwa Anda harus mengkompilasinya secara terpisah untuk setiap OS yang tersedia, yang jenisnya mengalahkan tujuan bahasa-bahasa tersebut. Metode pengambil dapat dijalankan dengan HTTP dasar; setter (seperti menetapkan prestasi), seperti yang saya mengerti, membutuhkan HTTPS, dan pengidentifikasi pengembang yang unik; tetapi antarmuka masih relatif sederhana.

Michael Eric Oberlin
sumber
-3

Gunakan Steam SDK dan U dapat menggunakan Jar jika mereka menyediakan. periksa masalah mereka dan API. dan setelah memikirkan implementasi. http://steamcommunity.com/dev/

Dalam
sumber