Возможно ли реализовать функциональность Steamworks в Java-игре? Как?


11

У меня есть базовая игра, которую я хочу превратить в нечто лучшее. На данный момент игра полностью на Java, но я хочу внедрить Steamworks SDK в свою игру (чтобы он мог иметь достижения, и Мастерскую, и так далее). Но Steamworks требует C ++. Возможно ли, чтобы моя полная Java-игра реализовала Steamworks SDK, не переписывая его на C ++? В настоящее время я использую jMonkey Engine 3 для своей игры.

Ответы:


11

Это определенно возможно, вам просто нужно создать тонкий слой, оборачивающий Steam SDK (или его часть) в Java через собственный интерфейс Java

Я не знаю о каких-либо попытках создать для этого библиотеку с открытым исходным кодом.


Похоже, это очень жизнеспособное решение. Моя единственная загвоздка с этим сейчас в том, что я не знаю, как внедрить это в мой код или где. Я бы предположил, что это будет где-то в главном файле, верно?
1Посейдон3

Я посмотрел на это глубже, и я уверен, что смогу понять это. Этот ответ был действительно полезен, чтобы направить меня на правильный путь.
Посейдон3

1
Есть steamworks4j , Java-оболочка для некоторых API C ++ steamworks с использованием JNI.
Мукахо

6

JNI - это путь, если вам нужен полный доступ, но веб-API Steamworks может быть проще. По сути, это канал на основе HTTP / HTTPS для функций Steamworks, предназначенный для мгновенной совместимости с доступом из Java, Python, Ruby и всего, что по сути не является C / C ++.

Конечно, вы знаете, что проблема с JNI заключается в том, что вам нужно будет скомпилировать ее отдельно для каждой доступной ОС, что в некоторой степени противоречит цели любого из этих языков. Методы получения могут быть запущены с базовым HTTP; сеттеры (например, установка достижений), насколько я понимаю, требуют HTTPS и уникальный идентификатор разработчика; но интерфейс все еще относительно прост.



Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.