जावा और स्टीम जेवीएम की तैनाती


10

मैं वर्तमान में खेल के विकास और स्टीम ग्रीनलाइट की तैनाती के अपने विकल्पों पर विचार कर रहा हूं। मैं वास्तव में libGDX के साथ जावा को पसंद करता हूं, विशेष रूप से इसके क्रॉस प्लेटफॉर्म एंड्रॉइड क्षमता के लिए, और मैं समझता हूं कि स्टीम पर जावा गेम्स को तैनात करना संभव है। मैं कुछ प्रकार के आवरण बनाने के साथ बहुत सहज हूं ताकि मेरा जावा गेम सी ++ स्टीमवर्क्स एपीआई में कॉल कर सके।

मेरा सवाल यह है कि मैं किन तैनाती समस्याओं में भाग सकता हूं। विशेष रूप से, JRE के ग्राहक मशीन की स्थापना के साथ। मैंने .NET रनटाइम के लिए कई स्टीम इंस्टॉलर चेक देखे हैं। क्या मुझे जेआरई के लिए एक समान जांच और स्थापित करना चाहिए?

क्या कोई कारण है कि स्टीम पर जावा की तैनाती मोनोगेम का उपयोग करके सी # की तरह कुछ को तैनात करने और बनाए रखने के लिए एक बुरा सपना होगा?

जवाबों:


15

जैसा कि किसी व्यक्ति ने हाल ही में .NET और DirectX के विपरीत स्टीम पर एक libGDX गेम जारी किया है, स्टीम आपके एप्लिकेशन के साथ उन पुस्तकालयों की आवश्यकता वाले संस्करण को स्वचालित रूप से जांचने और डाउनलोड करने का विकल्प प्रदान नहीं करता है।

यह उपयोगकर्ता के लिए उन्हें सिस्टम लाइब्रेरी के रूप में जावा स्थापित करने के लिए आज्ञाकारी है, क्योंकि अधिकांश अभी भी जेआरई को देखते हैं, विशेष रूप से ओरेकल के कुछ प्रकार के एडवेयर / सुरक्षा छेद के रूप में और इसे अपने मशीन पर स्थापित नहीं करना चाहते हैं। अभी भी डेस्कटॉप पर जावा अनुप्रयोगों के प्रति एक कलंक है, इसलिए आपको उपयोगकर्ता पर विचार करना होगा।

मैं जो सलाह देता हूं वह libgdx के पैकर एप्लिकेशन का उपयोग कर रहा है , जो आपके जार और संसाधनों को एक उपयुक्त, निजी OpenJDK के साथ स्वचालित रूप से पैक कर देगा जो आपके सॉफ़्टवेयर के साथ उपयोग और वितरित करने के लिए खुला है। वैकल्पिक रूप से, आप इसे अनौपचारिक OpenJDK बिल्ड को हथियाने के लिए मैन्युअल रूप से कर सकते हैं जो वे पैकर में उपयोग कर रहे हैं और इसे अपनी परियोजना के लिए शामिल करते हैं।

मैं, व्यक्तिगत रूप से, उस बाद वाले विकल्प को करता हूं क्योंकि मेरे पास नवीनतम संस्करण डाउनलोड करना और सब कुछ पैक करना है, जिसमें स्टीम वितरित करना शामिल है, यह सब मेरी परियोजना के ग्रेड बिल्ड स्क्रिप्ट में शामिल है।

अपने स्वयं के JRE / JDK को शामिल करना हल्का है, केवल अपने गेम में लगभग 80mb जोड़ रहा है, और गैर-इनवेसिव है। यह भी सुनिश्चित करता है कि जावा का संस्करण जिसे आप अपने एप्लिकेशन के साथ चला रहे हैं, हमेशा वह संस्करण होता है जिसकी आपको आवश्यकता होती है, सिस्टम के साथ विरोध करने के बजाय।

संपादित करें: १३ मार्च २०१ 2017

एक साल से थोड़ा अधिक समय के लिए अब मैं अज़कुल का उपयोग कर रहा हूँ बजाय एलेक्सकोस्को से अनौपचारिक बिल्डरों के। वे उद्यम वातावरण में भी व्यापक रूप से उपयोग और समर्थित हैं। इसके अतिरिक्त, वे जावा 8 और ऊपर का समर्थन करते हैं, जहां मेरे स्विच के समय अनौपचारिक बिल्ड रिपॉजिटरी संस्करण जावा 7 पर अटक गए थे।

चूंकि मैंने स्विच किया था, अब एक ओपन-सोर्स रिपॉजिटरी भी है, जो कि ओपनजेडक / जेआर के सामुदायिक निर्मित संस्करणों को प्रदान करना जारी रखता है, यदि आप इसके बजाय इसका उपयोग करना चाहते हैं। दोनों अच्छे हैं।


1

मुझे लगता है कि उपयोगकर्ता के रनटाइम की जांच करना बिल्कुल ठीक है, इसे देखते हुए भाषा की आवश्यकता है। मुझे लगता है कि .NET, Java, Python, Lua, या अन्य प्रोग्रामिंग भाषाओं में जिन्हें रनटाइम वातावरण की आवश्यकता होती है, केवल इसलिए कि खेल इसके बिना नहीं चल सकता है।

यदि आपके पास यूएक्स चिंताएं हैं, तो चिंता न करें, जेआरई इंस्टॉलर बहुत घुसपैठ नहीं है, और कई गेम रनटाइम इंस्टॉलेशन या कई निर्भरता के साथ दूर हो जाते हैं।

कानूनी चिंताओं के संदर्भ में, मुझे विश्वास नहीं है कि आप कानून के किसी भी ग्रे या लाल क्षेत्र में हैं। लाइसेंस एफएक्यू के अनुसार , आप आइटम के अनुसार, अपने सॉफ्टवेयर के साथ जावा पर्यावरण को आसानी से वितरित कर सकते हैं:

क्या मैं अपने सॉफ़्टवेयर के साथ जावा वितरित कर सकता हूं?
हां, आप जावा को अपने सॉफ़्टवेयर के साथ प्रदान कर सकते हैं बशर्ते आप जावा बाइनरी कोड लाइसेंस के नियमों और शर्तों का पालन करें

एक शिक्षित निर्णय लेने के लिए आपको सभी जानकारी होनी चाहिए।


2
यदि उपयोगकर्ता को JRE को स्थापित करने की आवश्यकता है, तो आपको स्टीम OS प्रमाणीकरण नहीं मिलेगा। स्रोत: t.co/cEboMGAR2O आप इसे OpenJDK के साथ बंडल कर सकते हैं।
बेनेडिकट एस। वोगलर

अन्य रनटाइम वातावरणों के विपरीत, जावा कई स्थापनाओं के साथ बहुत अच्छी तरह से व्यवहार नहीं करता है। यदि किसी उपयोगकर्ता के पास जावा 7 स्थापित है और उसे अपने किसी एक एप्लिकेशन के लिए उपलब्ध संस्करण की आवश्यकता है, और आप जावा 8 इंस्टॉलर चलाते हैं ... तो आपने उस एप्लिकेशन को तोड़ दिया। लक्षित JRE का वितरण इस बिंदु पर एक बेहतर विकल्प है।
साइपर

0

कुछ उपयोगकर्ताओं के पास जावा स्थापित नहीं हो सकता है और मुझे विश्वास नहीं है कि स्टीम में जावा को स्थापित करने / स्थापित करने का एक मूल तरीका है क्योंकि यह उपयोगकर्ता के लिए परेशान होगा और स्टीम पर केवल एक छोटे से खेल में जावा की आवश्यकता होती है।

पोर्टेबल जावा रनटाइम एन्वायरमेंट को शामिल करने का प्रयास करें ताकि गेम को चलाने के लिए आपके पास हमेशा जावा का एक सुसंगत निर्माण हो, मुझे यकीन है कि कुछ ऐसे हैं जो आपकी आवश्यकताओं के अनुरूप होंगे।


0

जावा विकास तैनाती के रूप में एक बुरा सपना हो सकता है; लेकिन, वहाँ उपकरण इस आसान बनाने के लिए कर रहे हैं।

उदाहरण के लिए, आप Launch4jअपने अंतिम गेम को पैकेज करने के लिए एक टूल का उपयोग कर सकते हैं ; वैकल्पिक रूप से, आप इसे पूरी तरह से स्व-निहित बाइनरी बनाने के लिए जेआरई (या नहीं) को शामिल करने के लिए कह सकते हैं।

इस तरह, आप परवाह नहीं करते हैं कि क्या या क्या जेआरईएस ग्राहक ने स्थापित किया है; आप बस अपने ऐप को पैकेज करें, और इसे शिप करें। नकारात्मक पक्ष यह है कि आपका अंतिम बाइनरी काफी बड़ा होगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.