Как упаковать игру для Linux? - PullRequest
3 голосов
/ 22 мая 2009

У меня есть игра, которая в настоящее время работает под Windows и Mac OS X, и я хотел бы сделать ее доступной под Linux. Портирование должно быть довольно простым, поскольку это игра на основе Java и использует переносимые библиотеки, доступные на всех 3 платформах.

Сложная часть и причина этого вопроса состоит в том, что он упакован так, чтобы он работал на максимально возможном количестве современных дистрибутивов Linux. Основной целью будет Ubuntu 9.

Webstart не является приемлемым способом, .tar.gz - последнее средство. Я бы предпочел пакет, который имеет правильно определенные зависимости (например, Java) и легко устанавливается.

Мне также нужно иметь возможность собирать пакет в среде Windows, поскольку некоторые инструменты в моей цепочке сборки предназначены только для Windows.

Ответы [ 5 ]

5 голосов
/ 22 мая 2009

Начните с того, как похожий проект достиг этого. На ум приходит Freecol , кроссплатформенная игра на основе Java. Их страница загрузки содержит достаточно четкую информацию об установке на нескольких платформах. У них также есть пакеты, доступные на сайтах, таких как GetDEB для Ubuntu и PackMan для OpenSuse.

Обычно, если вы хотите использовать как можно больше дистрибутивов, вам следует рассмотреть следующие форматы (в грубом порядке важности):

  1. Ubuntu .deb (также создайте репозиторий, если можете)
  2. OpenSUSE .rpm или .ypm (установка в 1 клик)
  3. Fedora .rpm
  4. .tar.gz скомпилированный пакет

Затем вариант сборки из исходного кода или бинарный установщик с наилучшими усилиями. Наконец, посмотрите на другие популярные дистрибутивы, такие как Debian, Mandriva и BSD

Как только пакет существует для конкретной платформы, вы можете рассмотреть возможность его принятия в этот дистрибутив. Это облегчит пользователям поиск и приобретение. Информация о процессе для Ubuntu может быть найдена здесь:

(РЕДАКТИРОВАТЬ: Лучший список, благодаря предложению Jonik.)

2 голосов
/ 23 мая 2009

Посмотрите на Zero Install (http://0install.net/).

  • Любой может установить программное обеспечение

Вам не нужно быть администратором, чтобы установить текстовый процессор [подробнее]

  • Любой может распространять программное обеспечение

Вам не нужно быть благословенным дистрибутивом (или кем-либо еще), чтобы быть частью Zero Install; Система полностью децентрализована [подробнее]

  • Автоматические обновления

Когда будут доступны обновления, Zero Install уведомит вас [подробнее]

  • Безопасность

Если один пользователь загружает вредоносную программу, это не влияет на других пользователей; Пользователи могут делиться загрузками, не доверяя друг другу; Установка не выполняет какой-либо загруженный код; Цифровые подписи всегда проверяются до того, как новое программное обеспечение будет установлено на

1 голос
/ 22 мая 2009

Каждый дистрибутив может иметь свои собственные соглашения о том, куда распространяются общие файлы.
В Ubuntu обычные java-файлы находятся в / usr / share / java. Такие вещи, как commons-cli и liblog4j, существуют. Если вы используете какой-либо из них, убедитесь, что ваш деб зависит от соответствующего пакета. Если библиотека полезна вне вашего приложения, но не в репозиториях Ubuntu, подумайте над тем, чтобы поместить ее в свой собственный deb и в зависимости от этого. Вам нужно будет создать папку для ваших конкретных jar-файлов игр в / usr / share / [name] /, а затем создать скрипт оболочки для запуска игры. Этот скрипт должен быть помещен в / usr / bin (или / usr / games) и должен быть исполняемым.

Не забудьте также полагаться на соответствующий пакет java (я предлагаю пакеты sun-java # -jre, потому что gjc это дерьмо, а open-jdk там еще не 100% (по крайней мере, METAL LaF это fubar) Я пока ничего не знаю.)

1 голос
/ 22 мая 2009

Хороший вопрос - я не знаю ответа (и я думаю, что не существует простого, всеобъемлющего решения), но вот несколько моментов, которые следует рассмотреть, с точки зрения пользователя Linux.

Я думаю, что .tar.gz (или .tar.bz2) не обязательно так уж плох. Пользователи Linux привыкли к этому, и, например, многие коммерческие программные пакеты распространяются таким образом. Он часто превосходит графический установщик в стиле Windows, если главное - просто извлечь файлы в каком-то месте.

Некоторые (возможно, многие?) Пользователи установили JRE вне системы управления пакетами, поэтому предлагать только RPM или deb (что зависит от установки JRE как RPM или deb) может быть проблематично. (Лично я предпочитаю иметь несколько версий JRE (на самом деле JDK), установленных в /usr/local/java.) Поэтому, по крайней мере, подумайте о предложении пакета zip / gz / bz2 вместе с другими опциями.

Кроме того, чтобы узнать о создании RPM-пакетов программного обеспечения Java, ознакомьтесь с JPackage .

1 голос
/ 22 мая 2009

Вы можете использовать систему deb для Ubuntu. Это поможет вам правильно пометить зависимости.

Руководство по упаковке доступно здесь .

...