Java 및 Steam JVM 배포


10

현재 게임 개발 및 Steam Greenlight 배포 옵션을 고려하고 있습니다. 나는 크로스 플랫폼 안드로이드 잠재력을 위해 libGDX와 함께 Java를 정말로 좋아하며 Steam에 Java 게임을 배포 할 수 있음을 이해합니다. 또한 Java 게임이 C ++ Steamworks API를 호출 할 수 있도록 일종의 래퍼를 작성하는 것이 매우 편안합니다.

내 질문은 어떤 배포 문제가 발생할 수 있는지에 관한 것입니다. 특히 클라이언트 시스템이 JRE를 설치 한 경우. 많은 Steam 설치 프로그램이 .NET 런타임을 확인하는 것을 보았습니다. JRE와 비슷한 확인 및 설치를해야합니까?

Steam에서 Java를 배포하는 것이 Monogame을 사용하여 C #과 같은 것을 배포하고 유지하는 데 악몽 인 이유가 있습니까?

답변:


15

최근 Steam에서 libGDX 게임을 출시 한 사람으로서 .NET 및 DirectX와 달리 Steam은 해당 라이브러리에 필요한 버전을 자동으로 확인하고 다운로드 할 수있는 옵션을 애플리케이션에 제공하지 않습니다.

JRE, 특히 Oracle을 여전히 일종의 애드웨어 / 보안 취약점으로보고 시스템에 설치하고 싶지 않기 때문에 사용자는 Java를 시스템 라이브러리로 설치해야합니다. 데스크탑에 Java 애플리케이션에 대한 낙인이 여전히 있으므로 사용자를 배려해야합니다.

내가 권장하는 것은 libgdx의 packr 응용 프로그램 을 사용하는 것입니다.이 소프트웨어는 항아리와 리소스를 소프트웨어와 함께 사용하고 배포 할 수있는 적절한 개인 OpenJDK로 자동 포장합니다. 또는 packr에서 사용 중인 비공식 OpenJDK 빌드 를 가져 와서 프로젝트에 포함 시켜서 수동으로 수행 할 수 있습니다 .

개인적으로 최신 버전을 다운로드하고 스팀 배포를 포함하여 모든 프로젝트를 gradle 빌드 스크립트에 포함시키는 모든 것을 포장하면서 후자의 옵션을 사용합니다.

자신 만의 JRE / JDK를 포함하는 것은 가볍고 게임에 약 80MB 만 추가하며 비 침습적입니다. 또한 응용 프로그램을 실행하는 Java 버전이 시스템의 버전과 충돌하지 않고 항상 필요한 버전인지 확인합니다.

편집 : 2017 년 3 월 13 일

1 년이 조금 넘는 지금 나는 alexkasko 의 비공식 빌드 대신 Azul의 OpenJRE를 사용했습니다. 엔터프라이즈 환경에서도 널리 사용되고 지원됩니다. 또한 Java 8 이상을 지원하며, 전환 당시 비공식 빌드 저장소 버전이 Java 7에 붙어있었습니다.

제가 전환 한 이후, 오픈 소스 저장소 도 있습니다. 오픈 소스 저장소 를 사용하려면 커뮤니티 빌드 버전의 openjdk / jre를 계속 제공하십시오. 둘 다 좋다.


1

언어에 필요한 경우 사용자의 런타임을 확인하는 것이 절대적으로 좋다고 생각합니다. .NET, Java, Python, Lua 또는 런타임 환경이 필요한 다른 프로그래밍 언어에서는 게임이 없으면 게임을 실행할 수 없기 때문에 생각합니다.

UX 문제가있는 경우 걱정하지 마십시오. JRE 설치 프로그램은 방해가되지 않으며 많은 게임이 런타임 설치 또는 여러 종속성으로 인해 사라집니다.

법적인 문제와 관련하여, 귀하가 법률의 회색 또는 적색 영역에 있다고 생각하지 않습니다. 라이센스 FAQ 에 따르면 다음 항목에 따라 소프트웨어로 Java 환경을 배포 할 수 있습니다.

소프트웨어와 함께 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.