Triển khai Java và Steam JVM


10

Tôi hiện đang xem xét các lựa chọn của mình để phát triển trò chơi và triển khai lên Steam Greenlight. Tôi thực sự thích Java với libGDX, đặc biệt là về tiềm năng Android đa nền tảng của nó và tôi hiểu rằng có thể triển khai các trò chơi Java trên Steam. Tôi cũng rất thoải mái khi phải tạo một số loại trình bao bọc để trò chơi Java của tôi có thể gọi vào API Steamworks C ++.

Câu hỏi của tôi là về những vấn đề triển khai tôi có thể gặp phải. Cụ thể, với cài đặt JRE của máy khách. Tôi đã thấy nhiều trình cài đặt Steam kiểm tra thời gian chạy .NET. Tôi có nên thực hiện kiểm tra tương tự và cài đặt cho JRE không?

Có bất kỳ lý do rõ ràng nào khiến việc triển khai Java trên Steam sẽ là một cơn ác mộng khi triển khai và duy trì so với những thứ như C # khi sử dụng Monogame không?

Câu trả lời:


15

Là một người gần đây đã phát hành một trò chơi libGDX trên Steam, không giống như .NET và DirectX, Steam không cung cấp tùy chọn với ứng dụng của bạn để tự động kiểm tra và tải xuống phiên bản bạn cần của các thư viện đó.

Người dùng cảm thấy khó chịu khi bắt họ cài đặt Java làm thư viện hệ thống, vì hầu hết vẫn xem JRE, đặc biệt là Oracle, như một loại lỗ hổng bảo mật / phần mềm quảng cáo và không muốn cài đặt nó trên máy của họ. Vẫn còn một sự kỳ thị đối với các ứng dụng Java trên máy tính để bàn, vì vậy bạn phải quan tâm đến người dùng.

Những gì tôi khuyên dùng là sử dụng ứng dụng packr của libgdx , ứng dụng này sẽ tự động đóng gói jar và tài nguyên của bạn với một OpenJDK riêng, thích hợp, mở để sử dụng và phân phối với phần mềm của bạn. Ngoài ra, bạn có thể thực hiện thủ công bằng cách lấy bản dựng OpenJDK không chính thức mà họ đang sử dụng trong packr và bao gồm nó với dự án của bạn.

Cá nhân tôi, thực hiện tùy chọn sau này vì tôi đã tải xuống phiên bản mới nhất và đóng gói mọi thứ, bao gồm phân phối cho steam, tất cả được bao gồm trong tập lệnh xây dựng lớp của dự án của tôi.

Bao gồm JRE / JDK của riêng bạn rất nhẹ, chỉ thêm khoảng 80mb vào trò chơi của bạn và không xâm lấn. Điều này cũng đảm bảo rằng phiên bản Java mà bạn đang chạy ứng dụng của bạn luôn là phiên bản mà bạn cần, thay vì xung đột với những gì hệ thống có.

Chỉnh sửa: ngày 13 tháng 3 năm 2017

Trong hơn một năm nay tôi đã sử dụng OpenJRE của Azul thay vì các bản dựng không chính thức từ alexkasko. Chúng được sử dụng rộng rãi và được hỗ trợ ngay cả trong môi trường doanh nghiệp. Ngoài ra, chúng hỗ trợ Java 8 trở lên, tại thời điểm chuyển đổi của tôi, các phiên bản kho lưu trữ bản dựng không chính thức đã bị kẹt tại Java 7.

Kể từ khi tôi chuyển đổi, giờ đây cũng có một kho lưu trữ nguồn mở , tiếp tục cung cấp các phiên bản xây dựng cộng đồng của openjdk / jre, nếu bạn muốn sử dụng thay thế. Cả hai đều tốt.


1

Tôi nghĩ rằng việc kiểm tra thời gian chạy của người dùng là hoàn toàn ổn, với ngôn ngữ yêu cầu. Tôi nghĩ rằng trong .NET, Java, Python, Lua hoặc các ngôn ngữ lập trình khác yêu cầu môi trường thời gian chạy, đơn giản là vì trò chơi không thể chạy mà không có nó.

Nếu bạn có lo ngại về UX, đừng lo lắng, trình cài đặt JRE không xâm phạm lắm và nhiều trò chơi thoát khỏi cài đặt thời gian chạy hoặc thậm chí nhiều phụ thuộc.

Về các vấn đề pháp lý, tôi không tin rằng bạn đang ở trong bất kỳ khu vực màu xám hoặc đỏ nào của pháp luật. Theo Câu hỏi thường gặp về Giấy phép , bạn hoàn toàn có thể phân phối Môi trường Java với phần mềm của mình, theo mục nêu:

Tôi có thể phân phối Java với phần mềm của mình không?
Có, bạn có thể cung cấp cho Java phần mềm của mình với điều kiện bạn tuân thủ các điều khoản và điều kiện của giấy phép mã nhị phân Java

Đó phải là tất cả thông tin bạn cần để đưa ra quyết định có học thức.


2
Nếu người dùng được yêu cầu cài đặt JRE trước tiên, bạn sẽ không nhận được chứng nhận Steam OS. Nguồn: t.co/cEboMGAR2O Bạn có thể gói nó với OpenJDK.
Benedikt S. Vogler

Không giống như các môi trường thời gian chạy khác, Java không xử lý tốt nhiều cài đặt. Nếu người dùng đã cài đặt Java 7 và cần phiên bản đó có sẵn cho một trong các ứng dụng của họ và bạn chạy trình cài đặt Java 8 ... thì bạn đã phá vỡ ứng dụng đó. Phân phối của JRE được nhắm mục tiêu là một lựa chọn tốt hơn nhiều vào thời điểm này.
Cypher

0

Một số người dùng có thể chưa cài đặt Java và tôi không tin rằng Steam có cách kiểm tra / cài đặt Java nguyên bản vì điều đó sẽ gây khó chịu cho người dùng và chỉ một số ít các trò chơi trên Steam yêu cầu Java.

Hãy thử bao gồm Môi trường chạy thi hành Java di động để bạn luôn có bản dựng Java nhất quán để chạy trò chơi, tôi chắc chắn có một số xung quanh sẽ phù hợp với nhu cầu của bạn.


0

Phát triển Java có thể là một cơn ác mộng khi triển khai; nhưng, có những công cụ để làm điều này dễ dàng hơn.

Ví dụ: bạn có thể sử dụng một công cụ như Launch4jđể đóng gói trò chơi cuối cùng của mình; tùy chọn, bạn có thể yêu cầu nó bao gồm JRE (hoặc không) để tạo một nhị phân hoàn toàn khép kín.

Theo cách này, bạn không quan tâm nếu khách hàng đã cài đặt JRE; bạn chỉ cần đóng gói ứng dụng của bạn và gửi nó. Nhược điểm là nhị phân cuối cùng của bạn sẽ lớn hơn đáng kể.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.