Сообщает ли Steam пользователю, что им нужна Java для игры, когда они покупают / скачивают / устанавливают ее?

8

Мы с моим другом собираемся создать игру для Steam, и я, как программист, хочу использовать Java, так как это мой любимый язык. Итак, мне нужно знать, уведомляет ли Steam пользователя, что ему нужна Java для игры, когда он покупает / скачивает / устанавливает ее?

DreddTrekkiter
источник
4
Я голосую за то, чтобы закрыть этот вопрос как не по теме, потому что это больше касается функции Steam, чем разработки игр.
И
8
Откровенно говоря, я был бы расстроен, если игра, которую я купил, вынуждает меня устанавливать Java. Это очень мощный язык и благодарность вам за любовь к нему, но это скорее отношения ненависти-ненависти для любого среднего пользователя, который должен быть знаком с Java. Ожидайте подстрекательские комментарии, появляющиеся на странице магазина вашей игры, в которых говорится что-то вроде «Вирусный симулятор 2016» или «Не устанавливайте, это вынуждает устаревшую версию Java на вашу машину».
MonkeyZeus
@MonkeyZeus Именно поэтому подобные вещи должны быть отвлечены от пользователей - они буквально не имеют ни малейшего понятия, о чем они говорят. Уязвимости были только в плагине веб-браузера (что никогда не было хорошей идеей). В любом случае, упакуйте свою игру так, чтобы она включала все ресурсы, необходимые для ее запуска ... не думайте, что у пользователя есть что-то. В качестве примера перейдите по маршруту Minecraft, используйте launch4j или install4j для создания комплектного установщика / исполняемого файла с выпуском JRE. Никаких уязвимостей в безопасности и никаких хлопот для пользователя.
SnakeDoc
3
Некоторые игры устанавливают .NET для вас при первом запуске.
user253751
1
@immibis Вы правы, НО только один полуобразованный пользователь, у которого был плохой опыт Java-вируса с теневого веб-сайта, отправил комментарий, который получил высокую оценку или получил высокий "забавный" статус. Если вы никогда не слышали, чтобы айтишник бормотал «плохую Java», как пещерный человек, тогда вы - исключение в этом мире. Кроме того, запрос пользователя о загрузке чего-либо предполагает большую доступность для пользователя, особенно с учетом того, сколько сайтов будет пытаться обмануть вас при установке вируса, а не реальной вещи.
MonkeyZeus

Ответы:

18

Чтобы ответить на ваш вопрос напрямую, ни один Steam не уведомит покупателя о том, что для игры необходима установленная Oracle Runtime Environment. Это потому, что в этом не должно быть необходимости, любая игра, зависящая от JRE, загрузит и установит ее как часть обычной процедуры установки Steam. Это ничем не отличается от игр, которые зависят от среды выполнения Microsoft Visual Studio, DirectX или .NET. Существует даже стандартное депо JRE, которое вы можете использовать.

Тем не менее, я лично отказываюсь покупать или устанавливать любую игру, которая зависит от JRE Oracle. Я не хочу иметь дело с этой ерундой. Альтернативный маршрут следовал бы примеру Minecraft и включал Java VM как часть самой игры. То есть вместо установки виртуальной машины для всех приложений Java на компьютере, которые используются, как в случае с Oracle JRE, вы устанавливаете виртуальную машину рядом с вашей игрой, которую использует только ваша игра. Я не думаю, что вы можете сделать это с Oracle JRE, я думаю, Minecraft использует один на основе OpenJDK.

С другой стороны, если вы только начинаете, вам, вероятно, следует пойти по простому пути и использовать стандартную установку Oracle JRE, и просто принять то, что некоторым людям это не понравится.

Росс Ридж
источник
2
+1 за прямой ответ. В качестве дополнения, есть список альтернативных JVM @ en.wikipedia.org/wiki/List_of_Java_virtual_machines
Pikalek
14

Это ни в коем случае не ответ, но некоторые моменты для рассмотрения. Это не помещалось в поле для комментариев.

Я думаю, что даже если бы вы использовали c ++, вам нужно было бы поставлять свою игру с кучей распространяемых , по крайней мере, в Windows. Если вы не можете использовать инструменты Visual Studio и тому подобное. Я не знаю, что происходит с пользователями Mac.

И если вы перейдете на Java, я думаю, что будет способ поставить JVM вместе с вашей игрой. Это увеличит размер загрузки, но обеспечит

  1. что у клиента есть jvm, и
  2. что клиент имеет правильную версию jvm для вашей игры

Обратите внимание, что JVM уже поставляется с игрой, если вы распространяете ее через Mac App Store, поэтому, если вы планируете распространять ее за пределами Steam, это может понадобиться в любом случае.

Vaillancourt
источник
1
Вероятно. Я не настолько хорошо осведомлен в этой области, хотя. Я бы поискал немного больше в сети. Возможно, это может вас заинтересовать.
Vaillancourt
2
Или просто используйте C. Это быстро, низкоуровнево и
мучительно
2
@AlexandreVaillancourt Вы сказали: «Я верю, что будет способ доставить JVM вместе с игрой». Это абсолютно возможно. Хотя это и не игра, я делаю это с помощью Java-приложения, используя launch4j . Я знаю, что есть другие инструменты, которые могут сделать то же самое.
Thunderforge
3
Большинство уязвимостей Java относятся только к Java-апплетам и при запуске ненадежного кода. Если вы загружаете и запускаете игру локально, вы уже (должны) верить, что она не принесет ничего плохого. Я не думаю, что при использовании Java существует какой-то более высокий риск, чем при использовании любых других фреймворков / движков / технологий.
Kapex
2
Капеп SnakeDoc Я обновил ответ.
Vaillancourt
5

Этот связанный вопрос рекомендует использовать launch4j .

Основываясь на кодовой странице 3 Ring , похоже, что они используют getdown для Spiral Knights.

Возможно, вы захотите связаться с Puppy Games, чтобы узнать, готовы ли они поделиться своими идеями. Точно так же на java-gaming.org есть некоторые разработчики, которые имеют некоторый опыт в этом.

Pikalek
источник