È possibile implementare la funzionalità Steamworks in un gioco Java? Come?


11

Ho un gioco base che voglio eventualmente trasformare in qualcosa di meglio. Al momento il gioco è tutto Java, ma voglio implementare l'SDK di Steamworks nel mio gioco (in modo che possa avere risultati, Workshop e così via). Steamworks richiede C ++. È possibile avere il mio gioco Java completo implementare Steamworks SDK senza riscriverlo in C ++? Attualmente sto usando jMonkey Engine 3 per il mio gioco.

Risposte:


11

È sicuramente possibile, dovrai solo creare un sottile strato che avvolge Steam SDK (o parte di esso) su Java tramite Java Native Interface

Non sono a conoscenza di alcuno sforzo per avere una libreria opensource per questo.


Questa sembra essere una soluzione molto praticabile. Il mio unico problema con questo ora è che non so come implementarlo nel mio codice o dove. Suppongo che sarebbe da qualche parte nel file principale, giusto?
1Poseidone3,

L'ho esaminato più da vicino e sono sicuro che sarò in grado di capirlo. Questa risposta mi è stata davvero d'aiuto nel mettermi sulla buona strada.
Poseidone 3

1
C'è steamworks4j , un wrapper Java attorno ad alcune API Steamworks C ++ che usano JNI.
mucaho,

6

JNI è una strada da percorrere se si desidera l'accesso completo, ma l' API Web di Steamworks potrebbe essere una strada più semplice da percorrere. È fondamentalmente un canale basato su HTTP / HTTPS per le funzioni di Steamworks, progettato per essere immediatamente compatibile con l'accesso da Java, Python, Ruby e qualsiasi cosa che non sia intrinsecamente C / C ++.

Ovviamente sai che il problema con JNI è che dovresti compilarlo separatamente per ogni sistema operativo disponibile, che tipo di sconfigge lo scopo di una di quelle lingue. I metodi getter possono essere eseguiti con HTTP di base; i setter (come impostare un risultato), a quanto ho capito, richiedono HTTPS e un identificatore sviluppatore univoco; ma l'interfaccia è ancora relativamente semplice.



Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.