การปรับใช้ Java และ Steam JVM


10

ฉันกำลังพิจารณาทางเลือกของฉันสำหรับการพัฒนาเกมและปรับใช้กับ Steam Greenlight ฉันชอบ Java ที่มี libGDX โดยเฉพาะอย่างยิ่งสำหรับศักยภาพข้ามแพลตฟอร์ม Android และฉันเข้าใจว่าเป็นไปได้ที่จะปรับใช้เกม Java บน Steam ฉันรู้สึกสบายใจกับการสร้างเสื้อคลุมบางอย่างเพื่อให้เกม Java ของฉันสามารถโทรไปที่ C ++ Steamworks API

คำถามของฉันเกี่ยวกับปัญหาการปรับใช้ที่ฉันอาจพบ โดยเฉพาะอย่างยิ่งกับการติดตั้งเครื่องไคลเอนต์ของ JRE ฉันเคยเห็นโปรแกรมติดตั้ง Steam หลายตัวตรวจสอบ. NET runtime ฉันควรตรวจสอบและติดตั้งที่คล้ายกันสำหรับ JRE หรือไม่?

มีเหตุผลใดที่จ้องมองว่าทำไมการปรับใช้ Java บน Steam จึงเป็นฝันร้ายในการปรับใช้และบำรุงรักษาเทียบกับ C # โดยใช้ Monogame

คำตอบ:


15

ในฐานะที่เป็นคนที่เพิ่งเปิดตัวเกม libGDX บน Steam ซึ่งแตกต่างจาก. NET และ DirectX ดังนั้น Steam จึงไม่มีตัวเลือกให้กับแอปพลิเคชันของคุณเพื่อตรวจสอบและดาวน์โหลดเวอร์ชันที่คุณต้องการในไลบรารีเหล่านั้นโดยอัตโนมัติ

ผู้ใช้นั้นไม่พึงประสงค์ที่จะทำให้พวกเขาติดตั้ง Java เป็นไลบรารีระบบเนื่องจากส่วนใหญ่ยังคงดู JRE โดยเฉพาะอย่างยิ่ง Oracle เป็นช่องโหว่ของแอดแวร์ / การรักษาความปลอดภัยบางประเภทและไม่ต้องการติดตั้งลงในเครื่อง ยังคงมีมลทินต่อแอปพลิเคชัน Java บนเดสก์ท็อปดังนั้นคุณต้องคำนึงถึงผู้ใช้

สิ่งที่ฉันแนะนำคือการใช้แอปพลิเคชัน packg ของ libgdxซึ่งจะแพ็ค jar และทรัพยากรของคุณโดยอัตโนมัติด้วย OpenJDK ส่วนตัวที่เหมาะสมซึ่งเปิดให้ใช้และแจกจ่ายกับซอฟต์แวร์ของคุณ หรือคุณสามารถทำได้ด้วยตนเองโดยการสร้าง OpenJDK แบบไม่เป็นทางการที่พวกเขากำลังใช้ใน packr และรวมไว้ในโครงการของคุณ

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

การรวม JRE / JDK ของคุณเองนั้นมีน้ำหนักเบาเพียงเพิ่มประมาณ 80mb ลงในเกมของคุณและไม่รุกราน สิ่งนี้ยังรับประกันว่าเวอร์ชันของ Java ที่คุณใช้งานแอปพลิเคชันของคุณนั้นเป็นเวอร์ชันที่คุณต้องการเสมอแทนที่จะเป็นความขัดแย้งกับสิ่งที่ระบบมี

แก้ไข: 13 มีนาคม 2017

เป็นเวลากว่าหนึ่งปีแล้วที่ฉันใช้OpenJRE ของ Azulแทนที่จะเป็นงานสร้างที่ไม่เป็นทางการจาก alexkasko พวกเขาใช้กันอย่างแพร่หลายและได้รับการสนับสนุนแม้ในสภาพแวดล้อมขององค์กร นอกจากนี้พวกเขายังรองรับ Java 8 และสูงกว่าซึ่งในขณะที่สวิตช์ของฉันรุ่นที่เก็บข้อมูลการสร้างอย่างไม่เป็นทางการติดอยู่ที่ Java 7

ตั้งแต่ฉันสลับตอนนี้มีที่เก็บโอเพนซอร์ซด้วยเช่นกันซึ่งยังคงจัดเตรียมเวอร์ชันบิวด์ที่สร้างขึ้นในชุมชนของ openjdk / jre หากคุณต้องการใช้แทน ทั้งสองอย่างดี


1

ฉันคิดว่ามันก็โอเคที่จะตรวจสอบรันไทม์ของผู้ใช้เนื่องจากภาษาต้องใช้ ฉันคิดว่าใน. NET, Java, Python, Lua หรือภาษาการเขียนโปรแกรมอื่น ๆ ที่ต้องการสภาพแวดล้อมรันไทม์เพียงเพราะเกมไม่สามารถทำงานได้หากไม่มี

หากคุณมีข้อกังวลเกี่ยวกับ UX ไม่ต้องกังวลตัวติดตั้ง JRE นั้นไม่น่ารำคาญมากและหลาย ๆ เกมหนีออกจากการติดตั้งแบบรันไทม์หรือแม้กระทั่งการพึ่งพาหลายตัว

ในแง่ของข้อกังวลทางกฎหมายฉันไม่เชื่อว่าคุณอยู่ในโซนสีเทาหรือสีแดงของกฎหมาย ตามคำถามที่พบบ่อยเกี่ยวกับสิทธิ์ใช้งานคุณสามารถแจกจ่าย Java Environment ให้กับซอฟต์แวร์ของคุณได้อย่างง่ายดายตามรายการที่ระบุ:

ฉันสามารถแจกจ่าย Java ด้วยซอฟต์แวร์ของฉันได้หรือไม่?
ใช่คุณสามารถให้ซอฟต์แวร์ของคุณแก่ Java ได้หากคุณปฏิบัติตามข้อกำหนดและเงื่อนไขของสิทธิ์การใช้งานรหัสไบนารีของ Java

นั่นควรเป็นข้อมูลทั้งหมดที่คุณต้องใช้ในการตัดสินใจการศึกษา


2
หากผู้ใช้จำเป็นต้องติดตั้ง JRE ก่อนคุณจะไม่ได้รับการรับรอง Steam OS ที่มา: t.co/cEboMGAR2Oคุณสามารถรวมกลุ่มกับ OpenJDK
Benedikt S. Vogler

แตกต่างจากสภาพแวดล้อมรันไทม์อื่น ๆ Java ไม่จัดการกับการติดตั้งหลายอย่างดี หากผู้ใช้มีการติดตั้ง Java 7 และต้องการเวอร์ชันที่พร้อมใช้งานสำหรับหนึ่งในแอปพลิเคชันของพวกเขาและคุณเรียกใช้โปรแกรมติดตั้ง Java 8 ... จากนั้นคุณเพิ่งทำลายแอปพลิเคชันนั้น การกระจายของ JRE เป้าหมายเป็นตัวเลือกที่ดีกว่ามาก ณ จุดนี้
Cypher

0

ผู้ใช้บางคนอาจไม่ได้ติดตั้ง Java และฉันไม่เชื่อว่า Steam มีวิธีดั้งเดิมในการตรวจสอบ / ติดตั้ง Java เนื่องจากจะทำให้ผู้ใช้เกิดความรำคาญและมีเพียงส่วนน้อยของเกมบน Steam ที่ต้องใช้ Java

ลองใส่ Java Runtime Environment แบบพกพาเพื่อที่คุณจะได้มีการสร้าง Java แบบต่อเนื่องเพื่อเรียกใช้เกมฉันมั่นใจว่ามีบางอย่างที่เหมาะสมกับความต้องการของคุณ


0

การพัฒนา Java สามารถเป็นฝันร้ายได้เท่ากับการใช้งาน แต่มีเครื่องมือที่จะทำให้ง่ายขึ้น

ตัวอย่างเช่นคุณสามารถใช้เครื่องมือเช่น Launch4jทำแพ็คเกจเกมสุดท้ายของคุณ คุณสามารถบอกให้รวม JRE (หรือไม่) เพื่อสร้างไบนารีแบบครบชุด

ด้วยวิธีนี้คุณไม่สนใจว่า JRE หรือไคลเอนต์ติดตั้งอะไร คุณเพิ่งจัดทำแอปของคุณและจัดส่ง ข้อเสียคือไบนารีสุดท้ายของคุณจะใหญ่ขึ้นอย่างมีนัยสำคัญ

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