Benachrichtigt Steam den Benutzer, dass er Java für ein Spiel benötigt, wenn er es kauft / herunterlädt / installiert?


8

Mein Kumpel und ich werden ein Spiel für Steam machen und ich als Programmierer möchte Java verwenden, da dies meine derzeitige Lieblingssprache ist. Ich muss also wissen, ob Steam den Benutzer benachrichtigt, dass er Java für ein Spiel benötigt, wenn er es kauft / herunterlädt / installiert.


4
Ich stimme dafür, diese Frage als nicht zum Thema gehörend zu schließen, da es mehr um eine Steam-Funktion als um die Spieleentwicklung geht.
29.

8
Ehrlich gesagt wäre ich verärgert, wenn das Spiel, das ich gekauft habe, mich zwingt, Java zu installieren. Es ist eine sehr mächtige Sprache und ein großes Lob für Ihre Liebe, aber es ist eher eine Hass-Hass-Beziehung für jeden durchschnittlichen Benutzer, der Java ausgesetzt sein muss. Erwarten Sie entzündliche Kommentare auf der Store-Seite Ihres Spiels, die Dinge wie "Virensimulator 2016" oder "Nicht installieren, erzwingt eine veraltete Version von Java auf Ihrem Computer" anzeigen.
MonkeyZeus

@MonkeyZeus Genau deshalb sollten solche Dinge von den Benutzern weg abstrahiert werden - sie haben buchstäblich keine Ahnung, wovon sie sprechen. Sicherheitslücken gab es nur im Webbrowser-Plugin (was nie eine gute Idee war). Packen Sie Ihr Spiel auf jeden Fall so ein, dass es alle Ressourcen enthält, die für die Ausführung erforderlich sind. Gehen Sie nicht davon aus, dass der Benutzer über etwas verfügt. Gehen Sie als Beispiel auf die Minecraft-Route und erstellen Sie mit launch4j oder install4j ein gebündeltes Installationsprogramm / eine ausführbare Datei mit der eingebauten JRE. Keine Sicherheitslücken und kein Ärger für den Benutzer.
SnakeDoc

3
Einige Spiele installieren .NET beim ersten Start für Sie.
user253751

1
@immibis Sie haben Recht, ABER es braucht nur einen halbgebildeten Benutzer, der eine schlechte Java-Virenerfahrung von einer schattigen Website hatte, um einen Kommentar zu veröffentlichen, der hoch bewertet wird oder den höchsten "lustigen" Status erhält. Wenn Sie noch nie einen IT-Mitarbeiter wie einen Höhlenmenschen "Java schlecht" murmeln gehört haben, sind Sie eine Ausnahme auf dieser Welt. Wenn Sie den Benutzer bitten, etwas herunterzuladen, bedeutet dies auch, dass Sie sich viel Benutzer leisten müssen, insbesondere wenn man bedenkt, wie viele Websites versuchen würden, Sie dazu zu verleiten, einen Virus zu installieren, und nicht die Realität.
MonkeyZeus

Antworten:


18

Um Ihre Frage direkt zu beantworten, benachrichtigt kein Steam den Käufer, dass für das Spiel die Java Runtime Environment von Oracle installiert sein muss, um das Spiel zu spielen. Das liegt daran, dass dies nicht erforderlich sein sollte. Jedes Spiel, das von der JRE abhängig ist, wird im Rahmen der normalen Steam-Installation heruntergeladen und installiert. Dies unterscheidet sich nicht von Spielen, die von der Visual Studio-, DirectX- oder .NET-Laufzeit von Microsoft abhängig sind. Es gibt sogar ein Standard- JRE-Depot , das Sie verwenden können.

Trotzdem lehne ich es persönlich ab, Spiele zu kaufen oder zu installieren, die von der JRE von Oracle abhängen. Ich möchte mich nicht mit diesem Unsinn auseinandersetzen müssen. Eine alternative Route würde Minecrafts Führung folgen und eine Java-VM als Teil des Spiels selbst einbeziehen. Das heißt, anstatt eine VM für alle zu verwendenden Java-Anwendungen auf dem Computer zu installieren, wie bei Oracle JRE, installieren Sie eine VM neben Ihrem Spiel, die nur Ihr Spiel verwendet. Ich glaube nicht, dass Sie dies mit Oracle JRE tun können. Ich glaube, Minecraft verwendet eines, das auf OpenJDK basiert.

Auf der anderen Seite sollten Sie, wenn Sie gerade erst anfangen, wahrscheinlich den einfachen Weg gehen und die Standardinstallation von Oracle JRE verwenden und einfach akzeptieren, dass einige Leute das nicht mögen.


2
+1 für die direkte Antwort. Als Nachtrag gibt es eine Liste von alternativen JVMs @ en.wikipedia.org/wiki/List_of_Java_virtual_machines
Pikalek

14

Dies ist keineswegs eine Antwort, sondern einige zu berücksichtigende Punkte. Es passte nicht in das Kommentarfeld.

Ich würde denken, selbst wenn Sie C ++ verwenden würden, müssten Sie Ihr Spiel mit einer Reihe von Redistributable ausliefern , zumindest unter Windows. Es sei denn, Sie können Visual Studio-Tools und dergleichen nicht verwenden. Ich weiß nicht, was für Mac-Benutzer passiert.

Und wenn Sie sich für Java entscheiden, gibt es meiner Meinung nach eine Möglichkeit, die JVM mit Ihrem Spiel zu versenden. Dies würde die Downloadgröße erhöhen, aber es würde sicherstellen

  1. dass der Client eine JVM hat, und
  2. dass der Client die richtige JVM-Version für Ihr Spiel hat

Beachten Sie, dass es bereits erforderlich ist, die JVM mit dem Spiel zu versenden, wenn Sie über den Mac App Store verteilen. Wenn Sie also planen, über Steam hinaus zu verteilen, kann dies ohnehin erforderlich sein.


1
Wahrscheinlich. Ich bin auf diesem Gebiet allerdings nicht so gut informiert. Ich würde ein bisschen mehr im Web suchen. Vielleicht dies könnte für Sie von Interesse sein.
Vaillancourt

2
Oder verwenden Sie einfach C. Es ist schnell, einfach und
mühsam,

2
@AlexandreVaillancourt Sie sagten "Ich glaube, es gibt eine Möglichkeit, die JVM mit dem Spiel zu versenden". Es ist absolut möglich. Obwohl es kein Spiel ist, mache ich es mit meiner Java-App unter Verwendung von launch4j . Ich weiß, dass es andere Tools gibt, die das Gleiche tun können.
Thunderforge

3
Die meisten Java-Schwachstellen betreffen nur Java-Applets und das Ausführen von nicht vertrauenswürdigem Code. Wenn Sie ein Spiel lokal herunterladen und ausführen, müssen Sie bereits darauf vertrauen, dass es nichts Bösartiges bewirkt. Ich glaube nicht, dass die Verwendung von Java ein größeres Risiko birgt als die Verwendung eines anderen Frameworks / einer anderen Engine / Technologie.
Kapex

2
kapep SnakeDoc Ich habe die Antwort aktualisiert.
Vaillancourt

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.