Ist es möglich, Steamworks-Funktionen in einem Java-Spiel zu implementieren? Wie?


11

Ich habe ein einfaches Spiel, das ich irgendwann in etwas Besseres verwandeln möchte. Das Spiel ist ab sofort nur noch Java, aber ich möchte das Steamworks SDK in mein Spiel implementieren (damit es Erfolge und den Workshop usw. haben kann). Steamworks benötigt jedoch C ++. Ist es möglich, dass mein vollständiges Java-Spiel das Steamworks SDK implementiert, ohne es in C ++ neu zu schreiben? Ich verwende derzeit die jMonkey Engine 3 für mein Spiel.

Antworten:


11

Es ist definitiv möglich, dass Sie nur eine dünne Schicht erstellen müssen, die das Steam SDK (oder einen Teil davon) über die Java Native Interface in Java einwickelt

Mir sind keine Bemühungen bekannt, eine OpenSource-Bibliothek dafür zu haben.


Dies scheint eine sehr praktikable Lösung zu sein. Mein einziger Nachteil dabei ist, dass ich nicht weiß, wie ich das in meinen Code implementieren soll oder wo. Ich würde annehmen, dass es irgendwo in der Hauptdatei sein würde, oder?
1Poseidon3

Ich habe es mir genauer angesehen und bin mir sicher, dass ich es herausfinden kann. Diese Antwort war wirklich hilfreich, um mich auf den richtigen Weg zu bringen.
1Poseidon3

1
Es gibt Steamworks4j , einen Java-Wrapper um einige der C ++ Steamworks-APIs mit JNI.
Mucaho

6

JNI ist ein guter Weg, wenn Sie vollen Zugriff wünschen, aber die Steamworks-Web-API ist möglicherweise ein einfacher Weg. Es handelt sich im Grunde genommen um einen HTTP / HTTPS-basierten Kanal zu den Steamworks-Funktionen, der so konzipiert ist, dass er sofort mit dem Zugriff von Java, Python, Ruby und wirklich allem kompatibel ist, was nicht an sich C / C ++ ist.

Natürlich wissen Sie, dass das Problem mit JNI darin besteht, dass Sie es für jedes verfügbare Betriebssystem separat kompilieren müssen, was den Zweck einer dieser Sprachen zunichte macht. Getter-Methoden können mit einfachem HTTP ausgeführt werden. Setter (wie das Festlegen einer Leistung) erfordern nach meinem Verständnis HTTPS und eine eindeutige Entwicklerkennung. Die Schnittstelle ist jedoch noch relativ einfach.


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.