¿Es posible implementar la funcionalidad Steamworks en un juego Java? ¿Cómo?

11

Tengo un juego básico que quiero convertir en algo mejor. El juego es todo Java a partir de ahora, pero quiero implementar el SDK de Steamworks en mi juego (para que pueda tener logros, y el Taller, etc.). Pero Steamworks requiere C ++. ¿Es posible que mi juego Java completo implemente el SDK de Steamworks sin reescribirlo en C ++? Actualmente estoy usando jMonkey Engine 3 para mi juego.

1Poseidon3
fuente

Respuestas:

11

Definitivamente es posible, solo necesitaría crear una capa delgada que envuelva el SDK de Steam (o parte de él) a Java a través de la interfaz nativa de Java

No conozco ningún esfuerzo para tener una biblioteca de código abierto para esto.

Elva
fuente
Esto parece ser una solución muy viable. Mi único inconveniente con esto ahora es que no sé cómo implementar esto en mi código o dónde. Supongo que estaría en algún lugar del archivo principal, ¿verdad?
1Poseidon3
Lo examiné más a fondo y estoy seguro de que podré resolverlo. Esta respuesta fue realmente útil para ubicarme en el camino correcto.
1Poseidon3
1
Hay steamworks4j , un contenedor de Java alrededor de algunos de la API de C ++ steamworks usando JNI.
mucaho
6

JNI es un camino a seguir si desea acceso completo, pero la API web de Steamworks podría ser un camino más fácil. Básicamente es un canal basado en HTTP / HTTPS para las funciones de Steamworks, diseñado para ser instantáneamente compatible con el acceso desde Java, Python, Ruby y cualquier cosa que no sea intrínsecamente C / C ++.

Por supuesto, usted sabe que el problema con JNI es que necesitaría compilarlo por separado para cada sistema operativo disponible, lo que frustra el propósito de cualquiera de esos idiomas. Los métodos Getter se pueden ejecutar con HTTP básico; los definidores (como establecer un logro), según tengo entendido, requieren HTTPS y un identificador de desarrollador único; pero la interfaz sigue siendo relativamente simple.

Michael Eric Oberlin
fuente