Розгортання Java та Steam JVM


10

В даний час я розглядаю свої варіанти розвитку ігор та розміщення в Steam Greenlight. Мені дуже подобається Java з libGDX, особливо за її кросплатформенний Android-потенціал, і я розумію, що на Steam можна розгорнути ігри Java. Мені також дуже зручно створювати якусь обгортку, щоб моя гра Java могла зайти в API Steamworks C ++.

У мене питання про те, з якими проблемами розгортання я можу зіткнутися. Зокрема, із встановленням JRE на клієнтській машині. Я бачив, як багато установців Steam перевіряють час виконання .NET. Чи варто зробити аналогічну перевірку та встановити для JRE?

Чи є якісь кричущі причини, чому розгортання Java на Steam було б кошмаром для розгортання та підтримки порівняно з C #, використовуючи Monogame?

Відповіді:


15

Оскільки хтось нещодавно випустив гру libGDX на Steam, на відміну від .NET та DirectX, Steam не надає можливість вашому додатку автоматично перевіряти та завантажувати потрібну версію цих бібліотек.

Користувачам нав'язливим є змусити їх встановити Java як системну бібліотеку, оскільки більшість досі розглядає JRE, особливо Oracle, як якусь дірку adware / security, і не хочуть, щоб він був встановлений на своїй машині. Все ще існує стигма щодо програм Java на робочому столі, тому ви повинні бути уважними до користувача.

Я рекомендую використовувати додаток packr libgdx , який автоматично запакує вашу банку та ресурси відповідним приватним OpenJDK, відкритим для використання та розповсюдження разом із вашим програмним забезпеченням. Крім того, ви можете зробити це вручну, захопивши неофіційну збірку OpenJDK, яку вони використовують у пакуванні, та включивши її у свій проект.

Я особисто роблю цей останній варіант, оскільки я завантажую останню версію і пакую все, включаючи розподіл на пару, все включене в сценарій збірки gradle мого проекту.

Включення вашого власного JRE / JDK є легким, лише додає до вашої гри близько 80 Мбайт, і є неінвазивним. Це також гарантує, що версія Java, з якою ви запускаєте свою програму, завжди є необхідною вам версією, замість того, щоб суперечити тому, що має система.

Редагування: 13 березня 2017 року

Вже трохи більше року я використовую OpenJRE Azul замість неофіційних конструкцій від alexkasko. Вони широко використовуються та підтримуються навіть у корпоративних умовах. Крім того, вони підтримують Java 8 і вище, де на час мого перемикання неофіційні версії сховищ сховищ застрягли на Java 7.

Оскільки я переключився, тепер є також сховище з відкритим кодом , яке продовжує надавати вбудовані спільнотою версії openjdk / jre, якщо ви хочете використовувати це замість цього. Обоє добре.


1

Я думаю, що перевіряти час виконання користувача абсолютно нормально, враховуючи, що мова вимагає такої. Я думаю, що в .NET, Java, Python, Lua або інших мовах програмування, які вимагають середовища виконання, просто тому, що гра не може працювати без неї.

Якщо у вас є проблеми з UX, не хвилюйтесь, інсталятор JRE не дуже нав'язливий, і багато ігор виходять із встановленням часу виконання або навіть кількома залежностями.

Щодо юридичних проблем, я не вважаю, що ви перебуваєте в жодній сірій або червоній зонах закону. Відповідно до Поширених запитань про ліцензії , ви можете досить просто поширювати середовище Java за допомогою свого програмного забезпечення відповідно до цього пункту:

Чи можу я розповсюджувати Java за допомогою свого програмного забезпечення?
Так, ви можете надати Java своїм програмним забезпеченням, якщо ви дотримуєтесь умов ліцензії бінарного коду Java

Це повинна бути вся інформація, необхідна для прийняття освіченого рішення.


2
Якщо користувачеві потрібно спочатку встановити JRE, ви не отримаєте сертифікацію Steam OS. Джерело: t.co/cEboMGAR2O Ви можете зв'язати його з OpenJDK.
Бенедикт С. Воглер

На відміну від інших середовищ виконання, Java не дуже добре справляється з кількома установками. Якщо у користувача встановлена ​​Java 7 і потрібна ця версія доступна для одного з їх програм, а ви запускаєте інсталятор Java 8 ... тоді ви просто зламали цю програму. На сьогоднішній день розподіл цільового JRE є набагато кращим варіантом.
Cypher

0

Деякі користувачі можуть не встановити Java, і я не вірю, що в Steam є рідний спосіб перевірки / встановлення Java, оскільки це буде дратувати користувачів і лише незначна частина ігор на Steam вимагає Java.

Спробуйте включити портативне середовище Java Runtime Environment, щоб у вас завжди була послідовна збірка Java для запуску гри, я впевнений, що навколо є деякі, які відповідають вашим потребам.


0

Розробка Java може бути кошмаром, що стосується розгортання; але є інструменти, щоб зробити це простіше.

Наприклад, ви можете використовувати такий інструмент, як Launch4jупаковка остаточної гри; необов'язково, ви можете сказати, щоб він включав JRE (чи ні), щоб створити повністю автономний бінарний файл.

Таким чином, вам не байдуже, чи встановив клієнт JRE; Ви просто пакуєте свою програму та відправляєте її. Мінус полягає в тому, що ваш кінцевий двійковий файл буде значно більшим.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.