Có thể thực hiện chức năng Steamworks trong trò chơi Java không? Làm sao?


11

Tôi có một trò chơi cơ bản mà cuối cùng tôi muốn biến thành một thứ tốt hơn. Trò chơi là tất cả Java ngay bây giờ, nhưng tôi muốn triển khai Steamworks SDK vào trò chơi của mình (để nó có thể có thành tích và Workshop, v.v.). Nhưng Steamworks yêu cầu C ++. Có thể để trò chơi Java đầy đủ của tôi triển khai Steamworks SDK mà không cần viết lại trong C ++ không? Tôi hiện đang sử dụng jMonkey Engine 3 cho trò chơi của mình.

Câu trả lời:


11

Chắc chắn là có thể, bạn chỉ cần tạo một lớp mỏng bao bọc Steam SDK (hoặc một phần của nó) cho java thông qua Giao diện gốc Java

Tôi không biết bất kỳ nỗ lực nào để có một thư viện mã nguồn mở cho việc này.


Đây dường như là một giải pháp rất khả thi. Điều khó khăn duy nhất của tôi bây giờ là tôi không biết cách thực hiện điều này vào mã của mình hoặc ở đâu. Tôi sẽ cho rằng nó sẽ ở đâu đó trong tập tin chính, phải không?
1Poseidon3

Tôi đã nhìn sâu hơn vào nó và tôi chắc chắn rằng tôi sẽ có thể tìm ra nó. Câu trả lời này thực sự hữu ích trong việc đưa tôi đi đúng hướng.
1Poseidon3

1
steamworks4j , trình bao bọc Java xung quanh một số API steamworks C ++ bằng JNI.
mucaho

6

JNI là một cách để đi nếu bạn muốn truy cập đầy đủ, nhưng API Web Steamworks có thể là một cách dễ dàng hơn để đi. Về cơ bản, đây là kênh dựa trên HTTP / HTTPS cho các chức năng Steamworks, được thiết kế để tương thích ngay lập tức với quyền truy cập từ Java, Python, Ruby và thực sự là bất cứ thứ gì không thực sự là C / C ++.

Tất nhiên bạn biết rằng vấn đề với JNI là bạn sẽ cần phải biên dịch nó một cách riêng biệt cho mỗi hệ điều hành có sẵn, loại nào đánh bại mục đích của bất kỳ ngôn ngữ nào. Các phương thức Getter có thể được chạy với HTTP cơ bản; setters (như thiết lập một thành tích), như tôi hiểu, yêu cầu HTTPS và một định danh nhà phát triển duy nhất; nhưng giao diện vẫn tương đối đơn giản.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.