เป็นไปได้หรือไม่ที่จะใช้ฟังก์ชั่น Steamworks ในเกม Java? อย่างไร?


11

ฉันมีเกมพื้นฐานที่ฉันต้องการที่จะกลายเป็นสิ่งที่ดีกว่าในที่สุด เกมเป็นจาวาทั้งหมดในตอนนี้ แต่ฉันต้องการใช้ Steamworks SDK ในเกมของฉัน (เพื่อให้สามารถมีความสำเร็จและเวิร์กช็อปและอื่น ๆ ) แต่ Steamworks ต้องใช้ C ++ เป็นไปได้ไหมที่เกม Java เต็มของฉันใช้ Steamworks SDK โดยไม่ต้องเขียนใหม่ใน C ++? ขณะนี้ฉันใช้ jMonkey Engine 3 สำหรับเกมของฉัน

คำตอบ:


11

เป็นไปได้แน่นอนคุณจะต้องสร้างเลเยอร์บาง ๆ ห่อ Steam SDK (หรือส่วนหนึ่งของมัน) เพื่อ java ผ่านทางJava Native Interface

ฉันไม่ได้ตระหนักถึงความพยายามที่จะมีห้องสมุด opensource สำหรับสิ่งนี้


นี่ดูเหมือนจะเป็นทางออกที่ดีมาก อุปสรรค์อย่างเดียวของฉันในตอนนี้คือฉันไม่ทราบวิธีการนำสิ่งนี้ไปใช้ในโค้ดของฉันหรือที่ไหน ฉันจะสมมติว่ามันจะอยู่ที่ไหนสักแห่งในไฟล์หลักใช่มั้ย
1Poseidon3

ฉันมองลึกลงไปและฉันแน่ใจว่าฉันจะสามารถหาได้ คำตอบนี้มีประโยชน์จริง ๆ ในการตั้งฉันบนเส้นทางที่ถูกต้อง
1Poseidon3

1
มีsteamworks4j , เสื้อคลุม Java รอบบางส่วนของ C ++ Steamworks API ที่ใช้ JNI
mucaho

6

JNI เป็นวิธีที่จะไปหากคุณต้องการเข้าถึงแบบเต็ม แต่Steamworks Web APIอาจเป็นวิธีที่ง่ายกว่า โดยพื้นฐานแล้วมันเป็นช่องทางที่ใช้ HTTP / HTTPS ไปยังฟังก์ชั่น Steamworks ที่ออกแบบมาให้เข้ากันได้ทันทีกับการเข้าถึงจาก Java, Python, Ruby และทุกสิ่งที่ไม่ได้อยู่ภายใน C / C ++

แน่นอนคุณรู้ว่าปัญหาของ JNI คือคุณจะต้องรวบรวมมันแยกกันสำหรับแต่ละ OS ที่มีอยู่ซึ่งเป็นการเอาชนะจุดประสงค์ของภาษาเหล่านั้น เมธอดของ Getter สามารถรันด้วย HTTP พื้นฐาน; setters (เช่นการตั้งค่าความสำเร็จ) ตามที่ฉันเข้าใจต้องใช้ HTTPS และตัวระบุผู้พัฒนาที่ไม่ซ้ำใคร แต่อินเทอร์เฟซยังค่อนข้างง่าย



โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.