- Используйте руководство по стилю для правильного изложения перевода.
- Помните, что необходимо удалить данный шаблон, когда статья будет полностью переведена.
Настоящее руководство содержит информацию, которая будет полезна пользователям ОС Linux и других Unix-подобных ОС, желающим принять участие в разработке OpenTTD. Для получения помощи по компиляции на различных платформах зайдите на канал #openttd на OFTC.
Contents |
Необходимое ПО
Большинство необходимых для разработки пакетов (типа GCC), скорее всего, уже присутствуют в вашей системе. Помимо них, OpenTTD нуждается в SDL. Также очень желательно иметь zlib, liblzo2 и/или liblzma (используется для сжатия и открытия сжатых файлов сохраненных игр). Наконец, OpenTTD может использовать libpng для сохранения скриншотов в формате PNG вместо BMP. Все упомянутые библиотеки должны быть установлены в варианте для разработки, если ваш дистрибутив делает такое различие.
Если вы желаете иметь доступ к самому свежему коду, вам также понадобится клиент subversion.
Mandriva
(проверено на Mandriva 2009 Spring)
- gcc (требуется)
- gcc-c++ (требуется)
- libSDL-devel (требуется)
- zlib1-devel (желательно, для сжатия и открытия сжатых сохраненок)
- libpng-devel (желательно, для сохранения скриншотов в формате PNG)
- subversion (опционально, для доступа к свежему коду)
- patch (опционально, для накладывания патчей)
- patchutils (опционально, для создания патчей)
Для установки перечисленного можно выполнить команду:
urpmi gcc gcc-c++ libsdl-devel zlib1-devel subversion patch patchutils
Debian и Ubuntu
- build-essential (тулчейн)
- libsdl1.2-dev (требуется)
- dpatch (требуется, не ниже 0.4.8)
- zlib1g-dev (желательно, для сжатия сохраненок Zlib)
- liblzo2-dev (желательно, для сжатия сохраненок LZO)
- liblzma-dev (желательно, для сжатия сохраненок LZMA)
- libpng12-dev (желательно, для сохранения скриншотов в формате PNG)
- subversion (опционально, для доступа к свежему коду)
- timidity (опционально, для проигрывания MIDI-мелодий)
- libsdl1.2debian-pulseaudio (требуется для Ubuntu 9.04 и новее, см. также #3294)
Для установки перечисленного выполните команду:
sudo apt-get install build-essential libsdl1.2-dev subversion zlib1g-dev liblzo2-dev timidity dpatch liblzma-dev
В Ubuntu 9.04 или новее выполните также:
sudo apt-get install libsdl1.2debian-pulseaudio
Как минимум, в одном случае для полной установки на сборке Debian под PowerPC потребовался пакет "libsdl1.2debian-all". Без установки данного пакета собирался лишь выделенный сервер. [1]
Fedora
(проверено на FC6, Fedora 7, 8 & 11)
- gcc
- gcc-c++
- SDL-devel
- zlib-devel
- subversion (опционально, для доступа к свежему коду)
- timidity++ (опционально, для проигрывания музыки)
- esound (опционально, для проигрывания музыки)
Если у вас установлен yum, выполните из-под рута следующую команду:
$ yum install gcc gcc-c++ SDL-devel zlib-devel subversion timidity++ esound -y
openSUSE 11.3
Используйте YaST, чтобы установить:
- gcc-c++
- SDL-devel
- zlib-devel
- libpng-devel
- libicu-devel
- lzo-devel
- freetype2-devel
- subversion
- timidity
Также можно использовать консольную утилиту `zypper':
$ zypper install gcc-c++ SDL-devel zlib-devel libpng-devel libicu-devel lzo-devel freetype2-devel subversion timidity
Gentoo
Из-под рута выполните:
$ emerge -avo openttd
Это приведет к установке всех зависимостей OpenTTD, но без самого OpenTTD.
Если вы желаете работать с самой свежей версией исходников (т.н. TRUNK/SVN), выполните из-под рута следующую команду:
$ emerge subversion
Arch Linux
Из-под рута выполните:
$ pacman -S openttd
Это приведет к установке OpenTTD и всех его зависимостей. В официальных репозиториях также доступны свободные наборы графики (openttd-opengfx) и звуков (openttd-opensfx).
PKGBUILD'ы для Openttd-beta, openttd-svn и openttd-32bpp доступны в AUR.
FreeBSD
Чтобы скачать, собрать и установить все необходимые зависимости, выполните из-под рута:
$ cd /usr/ports/games/openttd && make depends clean
Если вы собираетесь брать OpenTTD из subversion, также выполните из-под рута следующую команду:
$ cd /usr/ports/devel/subversion && make install clean
NetBSD
Чтобы скачать, собрать и установить все необходимые зависимости, выполните:
$ cd /usr/pkgsrc/games/openttd && make depends clean
Если вы собираетесь брать OpenTTD из subversion, также выполните:
$ cd /usr/pkgsrc/devel/subversion-base && make install clean
После сборки пакетов перед их установкой вам нужно будет ввести пароль root.
Получение исходников
Релизы
Вы можете скачать исходники в виде архивов .tar.gz на веб-сайте OpenTTD. После распаковки архива вы получите директорию с названием openttd-<версия>, где <версия> — скачанная вами версия исходников. Войдите в эту директорию и переходите к шагу 3.
Ночные сборки
Как и в случае релизов, свежий снимок исходников (который создается ежедневно в 19:00 GMT) можно взять на веб-сайте OpenTTD. Распакуйте архив и зайдите в директорию с исходниками. Переходите к шагу 3.
Самая свежая версия (т.н. Trunk/SVN)
Самая свежая версия официальных исходников хранится в репозитории subversion. Subversion упрощает отслеживание различных версий и предоставляет в общее пользование единое пространство для хранение кода. Для вас, как пользователя, это означает быстрый доступ к самой свежей версии исходного кода.
Первичная загрузка
Чтобы получить исходники с сервера subversion, выполните следующую команду:
$ svn checkout svn://svn.openttd.org/trunk openttd
Это поместит код в директорию openttd/
. Отныне эту директорию мы будем называть вашей "рабочей копией". Кроме того, мы теперь будем предполагать, что все команды svn вы отдаете, находясь в директории openttd/
.
Если вы просто желаете собрать самую свежую версию OpenTTD, можете переходить к шагу 3.
Обновление
Если вы уже ранее скачали код и стала доступна новая его версия (иначе говоря, появились новые ревизии), вы можете обновить свою рабочую копию. Для этого, находясь внутри нее, выполните:
$ svn update
Если вы подправили код в своей рабочей копии, ваши правки сохранятся и будут совмещены со свежими "официальными" изменениями. В случае конфликта правок о нем будет сообщено (пометки "C" в выводе svn status
), при этом все равно сохраняются локальные изменения. За информацией о разрешении таких конфликтов обратитесь к SVN Book.
Создание файла-патча
Если вы внесли изменения в исходный код и желаете ими поделиться, вы можете заставить svn сгенерировать файл diff. Команда
$ svn diff > mypatch.diff
создает файл diff (также известный как "патч"), который вы можете затем отправить разработчикам.
Откат изменений
Можно отменить внесенные в файл изменения, выполнив следующую команду:
$svn revert filename
То же можно проделать и со всем деревом директорий проекта:
$svn revert -R .
Наложение патча
Чтобы применить патч (файл diff) на исходный код, сначала обновите его до версии, для которой предназначается патч. Допустим, патч был сделан к версии r1234. Это можно увидеть в первых строках патч-файла:
Index: foo.c =================================================================== --- foo.c (revision 1234) +++ foo.c (working copy)
Чтобы обновить код в своей рабочей копии до ревизии r1234, выполните:
$ svn update -r 1234
Теперь вы готовы применить патч:
$ patch -p0 < mydiff.diff
Затем (опционально) обновите код до последней версии:
$ svn update
Если в итоге возникают конфликты (файлы отмечены символом "C"), то это значит, что патч не годится для последней ревизии (в принципе, вам ничто не мешает откатиться, снова наложить патч и использовать старую пропатченную ревизию).
Сборка и запуск
Для сборки OpenTTD сначала выполните:
$ ./configure
Будет создан Makefile. Затем запустите сборку:
$ make
Если вы внесли изменения в исходники или обновили код с сервера subversion, перекомпилированы будут лишь измененные файлы.
Оригинальные файлы данных TTD (опционально)
Скопируйте файлы GRF от Transport Tycoon Deluxe в директорию data/
:
- sample.cat
- trg1r.grf
- trgcr.grf
- trghr.grf
- trgir.grf
- trgtr.grf
- SAMPLE.CAT
- TRG1.GRF
- TRGC.GRF
- TRGH.GRF
- TRGI.GRF
- TRGT.GRF
Запуск
Запустить OpenTTD можно следующим образом:
$ cd bin
$ ./openttd
Команда cd
сменит рабочую директорию на bin
, в которой находится исполняемый файл openttd
. Вторая команда, собственно, запустит OpenTTD.
Кроме того, вы можете установить игру в /usr/local/
или куда-нибудь еще, но это больше касается создателей пакетов. Это требует знания некоторых особенностей установки ПО и OpenTTD в частности; полезную информацию вы можете найти в Makefile.
Музыка в игре
Если вы желаете слушать оригинальную музыку TTD, скопируйте всю директорию gm/
. Кроме того, вам понадобится TiMidity.
Debian/Ubuntu
Установите timidity и freepats
$ sudo apt-get install timidity freepats
Указать, к какой версии Gnome применимо дальнейшее (и при каких дополнительных условиях), а также правильно перевести названия меню и т.п.
Если вы пользуетесь Gnome, откройте окно "Параметры системы", кликните по иконке "Звук" и перейдите на вкладку "Оборудование", затем кликните по "Select the Midi Device" и выберите "Timidity port 0 - Alsa device" (может называть иначе, но слово timidity там будет), после чего кликните по кнопке "Применить".
Fedora
Сначала установите timidity++
$ yum install timidity++
Для какой рабочей среды это и для каких версий? Перевести названия меню в соответствии с их переводом в первоисточнике.
Timidity должна взаимодействовать с ESD, так что понадобится "enable software sound mixing (ESD)" (System → Preferences → Sound).
Запуск OpenTTD с музыкой
Для запуска OpenTTD с поддержкой музыки выполните:
$ ./openttd -m extmidi
Создания пакета Debian
Вы можете создать пакет Debian из свежих исходников, используя прилагающуюся директорию debian
. Вы также можете проделать описанные здесь действия вместо шага 3. В соответствии со стандартами OpenTTD, эта директория размещается в директории os/
и сначала должна быть перемещена на уровень выше:
$ mv os/debian .
После этого для сборки пакета используйте стандартный инструментарий Debian:
$ dpkg-buildpackage -rfakeroot -uc -us
Для установки выполните из-под рута следующее:
$ dpkg -i ../openttd-<version>_<something>.deb
Все, OpenTTD установлен.
На шаге 3 вы должны будете скопировать файлы данных в директорию /usr/share/games/openttd/data
, т.к. они не включаются в пакет .deb по лицензионным соображениям.
Для запуска OpenTTD вместо $ ./openttd
вы теперь можете просто ввести $ openttd
.
На шаге 6 вам нужно будет скопировать файлы с музыкой из директории gm в директорию /usr/share/games/openttd
.