Est-il possible d'implémenter la fonctionnalité Steamworks dans un jeu Java? Comment?


11

J'ai un jeu de base que je veux éventuellement transformer en quelque chose de mieux. Le jeu est entièrement Java à partir de maintenant, mais je veux implémenter le SDK Steamworks dans mon jeu (afin qu'il puisse avoir des réalisations, et l'atelier, etc.). Mais Steamworks nécessite C ++. Est-il possible que mon jeu Java complet implémente le SDK Steamworks sans le réécrire en C ++? J'utilise actuellement jMonkey Engine 3 pour mon jeu.

Réponses:


11

Il est certainement possible, il vous suffirait de créer une couche mince enveloppant le SDK Steam (ou une partie de celui-ci) en java via l' interface native Java

Je ne suis au courant d'aucun effort pour avoir une bibliothèque open source pour cela.


Cela semble être une solution très viable. Mon seul hic avec cela maintenant, c'est que je ne sais pas comment implémenter cela dans mon code ou où. Je suppose que ce serait quelque part dans le fichier principal, non?
1Poseidon3

Je l'ai regardé plus en profondeur et je suis sûr que je serai en mesure de le comprendre. Cette réponse m'a vraiment aidé à me mettre sur la bonne voie.
1Poseidon3

1
Il y a steamworks4j , un wrapper Java autour de certaines des API C ++ steamworks utilisant JNI.
mucaho

6

JNI est un chemin à parcourir si vous souhaitez un accès complet, mais l' API Web Steamworks pourrait être un moyen plus facile de procéder. Il s'agit essentiellement d'un canal basé sur HTTP / HTTPS vers les fonctions Steamworks, conçu pour être instantanément compatible avec l'accès à partir de Java, Python, Ruby et tout ce qui n'est pas intrinsèquement C / C ++.

Bien sûr, vous savez que le problème avec JNI est que vous devrez le compiler séparément pour chaque système d'exploitation disponible, ce qui va à l'encontre de l'objectif de l'une de ces langues. Les méthodes Getter peuvent être exécutées avec HTTP de base; les programmeurs (comme définir un exploit), si je comprends bien, nécessitent HTTPS et un identifiant de développeur unique; mais l'interface est encore relativement simple.



En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.