Показан процесс компиляции и настройки веселой игры Wargus (Stratagus) - клона WarCraft 2 под GNU Linux.
Статья написана с расчетом на начинающего пользователя Линукс, все описано достаточно подробно и с пояснениями чтобы смог разобраться каждый.
Материал получился достаточно большой, сопровождается множеством картинок.
Язык интерфейса игры в данном случае - английский. На данный момент, программа версии "2.3" под GNU/Linux имеет проблемы с отображением
кириллических шрифтов.
1. В качестве предисловия
2. Подготовка
3. Компиляция Stratagus;
4. Компиляция Wargus;
5. Конвертация и подготовка ресурсов из игры WarCraft II;
6. Настройка и подготовка музыки.
7. Результат
8. Заключение
В качестве предисловия
Что это за игра и как ее собрать в ОС Windows вы можете прочитать в публикации: Wargus - старая добрая игра WarCraft II в новом лице.
Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Чтобы получить готовую игру на Linux нам нужно будет скомпилировать из исходных кодов Stratagus + Wargus. Это увлекательный квест (приключение),
который не только подарит вам интересную и обновленную старую игру-клон WarCraft II, но и научит некоторым базовым операциям в Linux, поможет
сориентироваться что и где искать, даст толчек к использованию смекалки в подобных Линукс-делах и многое другое.
Сразу оговорюсь что собрать эту связку было не просто, причиной всему - большое количество зависимостей и разнообразных подводных камней на
пути к острову Wargus. В то же время мы будем все делать постепенно и по порядку - все обязательно получится!
Команды по поиску и установке пакетов лучше всего выполнять в отдельном окне терминала. Команды для компиляции и сборки Stratagus, Wargus
также будем выполнять в своих отдельных окнах (или вкладках) терминала (консоли).
Для каждой задачи - свой терминал, это поможет не запутаться и сэкономить некоторое время и нервы.
Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Для удобства не ленитесь открывать дополнительные окна терминалов, к примеру если нужно что-то проверить или посмотреть в файловом менеджере
MC (Midnight Commander).
Подготовка
В наличии у меня имеется чисто установленный GNU/Linux Debian 8.1 (Jessie), на нем и буду показывать весь процесс компиляции и настройки с нуля.
У вас же может быть готовая обжитая система Debian GNU Linux, Ubuntu или другая на основе Debian.
Важно! О том как выполнить все описанное здесь и собрать игру для GNU/Linux Debian 9 читайте в новой публикации вот ТУТ (сокращенный мануал).
Что касается других дистрибутивов Линукс - то там все делается подобным образом, могут лишь только отличаться названия команд, путей и пакетов.
Все операции будем выполнять под обычным пользователем, а для критичных операций (установка пакетов и т.п.) будем предоставлять командам
привилегии при помощи команды "sudo".
Теперь инсталлируемым вспомогательный софт, он будет нам полезен при работе, а также для более удобной навигации по файловой системе:
Вот так выглядит запущенный в консоли MC(Midnight Commander) и файловый менеджер Krusader под Debian GNU Linux с графической оболочкой KDE:
Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Откроем другой терминал (текущий у нас будет для поиска и установки пакетов и библиотек) и создадим временную папку где мы будем сохранять и
распаковывать архивы, компилировать бинарные файлы, производить все манипуляции:
1 mkdir /tmp/game
2 cd /tmp/game
Компиляция Stratagus
Запускаем браузер и идем на сайт launchpad.net где размещается исходный код и файлы проекта Stratagus: https://launchpad.net/stratagus
Видим что на сайте проект Stratagus сейчас доступен в версии 2.3 - будем использовать самую свежую на данный момент версию.
Здесь нам нужен исходный код, качаем архив с исходниками, клацнув зеленую кнопочку скачивания исходников справа, как на рисунке:
Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Сохраняем скачанный файл в директорию /tmp/game, которую мы создали на подготовительном этапе.
Примечание: можно скопировать ссылку на файл и закачать его при помощи wget, пример для версии 2.3:
1 wget -c "https://launchpad.net/stratagus/trunk/2.3/+download/stratagus_2.3.0.orig.tar.gz"
Размер архива - порядка 1Мб, качается достаточно быстро, в зависимости от ширины вашего интернет канала.
Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Хорошо, теперь будем разбираться как нам собрать Стратагус из исходных кодов. Если посмотреть структуру каталогов в распакованных исходниках то
можно заметить директорию "doc" - в ней можем найти что-то полезное, давайте взглянем что там:
1 cd doc
2 ls -la
Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Как видим там есть разная документация, а наиболее нам интересен документ install.html, посмотреть его мы можем открыв в любом веб-браузере
который у вас установлен или же в консоли (вначале мы установили консольный браузер Lynx):
1 lynx install.html
Сразу бросается в глаза список Software Requirements - это список тех библиотек и зависимостей, которые должны быть установлены в системе для
корректной компиляции Stratagus:
Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Пролистав немного ниже мы увидим инструкции по инсталляции:
Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Итак, начнем с установки библиотек и зависимостей.
Установим CMake, для этого посмотрим в кеше пакетов что у нас есть по ключевому слову "cmake" наиболее близкое к тому что нам нужно:
Пожалуй это то что нам нужно и наиболее точно соответствует нашему запросу. Установим пакет "cmake" командой:
Огого...хороший списочек получился на несколько страниц, там есть и "libsdl-gfx1.2-5", "libsdl1.2-dev" и "libsdl2-dev" и еще очень много самых разных
файлов. Что же с этим списком делать если мы не знаем точно что нам нужно и какой версии? - ответ прост: пока что, ничего!
От этого момента пойдем немного другим путем. Попробуем запустить подготовку пакета Stratagus, а там будем внимательно смотреть чего ему не
хватает для сборки и тогда уже будем искать и устанавливать.
Следуя инструкции по установке - перейдем в каталог с распакованными исходными кодами и создадим там папку "build", а также перейдем в только
что созданную папку:
Примечание: команда выше - это по сути три отдельные команды, каждая из них разделена от другой двумя символами "&" и выполняться такие
команды будут по очереди в том порядке как написано слева направо.
Запускаем команду для конфигурации(подготовки) Stratagus:
1 cmake ..
Процесс быстро оборвется и оповестит нас о ошибке, вот на что обращаем свое внимание:
Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
1 Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE)
Эта строчка говорит что не хватает запускаемого бинарного файла PkgConfig. Ищем в кеше пакетов что у нас имеется по ключевым словам "pkg
config":
Хорошо, теперь возвращаемся к подготовке исходных кодов и повторяем команду "cmake .." в том же окне. После запуска получаем опять ошибку:
Строчка говорит о том что не хватает библиотеки Lua51 для будущей компиляции Stratagus, также у нас в списке необходимого ПО есть пункт "Lua 5.1
(required)" - будем искать и ставить этот пакет.
Смотрим список пакетов что есть по запросу "lua 5"(как это сделать вы уже знаете из предыдущего опыта), видим что есть вот такие пакеты наиболее
сходные к нашему запросу:
Почему в названии пакета спереди есть lib - потому что это библиотека, а нам нужна именно она (missing: LUA_LIBRARIES), осталось только
разобраться какой из этих пакетов ставить. Можно конечно же установить все, но зачем захламлять лишнее пространство - нам ведь нужна библиотека
для сборки из исходных кодов, а значит нужны dev-файлы(файлы для разработки), поэтому нам наиболее подойдет пакет с названием "liblua5.1-0-dev".
Устанавливаем пакет:
Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Пробуем снова подготовить Стратагус командой "cmake ..":
В списке необходимого ПО у нас есть "libpng (required)" и "zlib (required)" - все верно, будем искать и ставить нужные пакеты пока данные ошибки не
исчезнут.
Поискав в кеше пакетов претенденты для ZLIB однозначно выделяем строчку:
Ставим данный пакет и пробуем запустить подготовку Стратагуса (команда "cmake .."), теперь строка с ошибкой о ZLIB пропала а на ее месте
появилась:
Строчка говорит что библиотека ZLIB найдена и ее версия "1.2.8" - все отлично, мы движемся в правильном направлении.
Весь этот процесс может показаться достаточно сложным, но тем не менее все у нас получается. Для небольшой разгрузки можно сейчас
сделать перерыв и сходить попить хорошего чая, немного развеяться, а потом уже продолжить выполнение нашего квеста.
Поскольку мы знаем что нам нужен именно dev-вариант библиотеки то можем отсеять все рузульаты в списке найденных пакетов при помощи фильтра,
вот как это делается:
Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
1 libpng12-dev - PNG library - development
2 libpnglite-dev - lightweight C library for loading and writing PNG images
Здесь мы будем устанавливать именно первый пакет, поскольку второй - это облегченная версия библиотеки PNG (lite), а в требованиях к ПО явно не
указано что нужен PNG Lite.
Что с ней делать мы уже знаем - ищем и устанавливаем библиотеку для SDL!
Здесь видим что есть версия 1.2 и версия 2. Какую ставить? - пробуем сначала 2-ю.
После запуска "cmake .." для стратагуса снова видим сообщение об ошибке что библиотека SDL не анйдена. Значит "libsdl2-dev" - это не тот пакет что
нужен, удалим его и установим пакет "libsdl1.2-dev":
Пробуем снова запустить подготовку стратагуса командой "cmake .." - ошибки с SDL уже нет но вылезла очередная, к которой мы уже готовы и знаем
что делать:
Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Смотрим в список необходимого ПО и видим что там есть пункт "Tolua++ (required)", также ищем в кеше пакетов что у нас есть по ключевому слову
"tolua" в наличии:
Всего две позиции, ставить будем "libtolua++5.1-dev" потому что в требованиях у нас указано "Tolua++":
Теперь после запуска "cmake .." у нас все пройдет отлично, вот отрезок начала и конца из выдачи результатов что свидетельствуют об удачной
подготовке (конфигурации) к компиляции:
1 -- checking for module 'maemo-version'
2 -- package 'maemo-version' not found
3 -- Found program tolua++: /usr/bin/tolua++5.1
4 -- Found library tolua++: /usr/lib/libtolua++5.1.a
5 -- Could NOT find BZip2 (missing: BZIP2_LIBRARIES BZIP2_INCLUDE_DIR)
6 -- Could not find FluidSynth
7 -- Could not find StackTrace
8 -- Could not find Mikmod
9 -- Could not find MNG
10 -- Could NOT find OggVorbis libraries
11 .................... много текста................
12 Theora: Not Found
13 X11: Found and enabled (Disable by param -DWITH_X11=OFF)
14 Renderer: OpenGL (Disable by param -DWITH_RENDERER=NativeSDL)
15 ==================================
16 -- Configuring done
17 -- Generating done
18 -- Build files have been written to: /tmp/game/stratagus_2.3.0.orig/build
В принципе уже можно компилировать Стратагус командой "make", но прежде мы все же доставим еще некоторые библиотеки, которые есть
рекомендуемыми и опциональными:
Немного распишу что мы будем ставить:
Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
libvorbis (recommended) - библиотека для поддержки декодирования и проигрывания звуковых файлов формата *.ogg.
libtheora (recommended) - библиотека кодека для поддержки проигрывания формата Theora Video.
libfluidsynth (recommended) - библиотека программного MIDI-синтезатора, пригодится для проигрывания музыки в формате *.mid.
libmikmod (optional) - библиотека для проигрывания звуковых файлов *.mod (помните чиптюнзы, звуки приставки денди и т.п.).
libbzip2 (optional) - пригодится для упаковки звуков, карт и других ресурсов.
libmng (optional) - библиотека для работы с графическими файлами *.mng, *.jng, установим ее пусть будет раз о ней упомянули.
Все эти библиотеки были найдены мною в кеше пакетов командой "apt-cache search" так же как и предыдущие, установим их все сразу одной командой:
CMake (required).
SDL (required).
libpng (required).
zlib (required).
Lua 5.1 (required).
Tolua++ (required).
libogg (recommended).
libvorbis (recommended).
libtheora (recommended).
libfluidsynth (recommended).
libmikmod (optional).
libbzip2 (optional).
libmng (optional).
Все готово к компиляции, переходим в директорию "/tmp/game/stratagus_2.3.0.orig/build", где мы выполняли команду подготовки "cmake .."
1 make
В зависимости от мощности вашего компьютера процесс компиляции займет порядка от 2 до 10 минут, слева в процентах мы можем наблюдать
прогресс.
Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
На этом пока что все, стратагус готов, об этом свидетельствуют бинарные файлы что появились в директории "build". Оставляем терминал открытым,
можно окно на время свернуть чтобы не мешало.
Компиляция Wargus
Версия Варгуса должна точно совпадать с версией Стратагуса, как мы помним Стратагус у нас версии 2.3.0 и на страничке с Варгусом версия такая же -
значит все хорошо.
Здесь нам также необходим исходный код, поэтому качаем архив с исходниками, клацнув справа зеленую кнопочку скачивания исходников, как на
рисунке:
Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Сохраняем файл в директорию /tmp/game
Для скачивания через WGET выполним команды:
1 cd /tmp/game
2 wget -c "https://launchpad.net/wargus/trunk/2.3/+download/wargus_2.3.0.orig.tar.gz"
Размер архива - порядка 45Мб. Распакуем скачанный архив и перейдем в его директорию командами:
Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
В директории с распакованными исходными файлами и ресурсами мы видим много разных папок и файлов, пробежаться и осмотреться по ним можно в
файловом менеджере Midnight Commander или же консольными командами, а также используя графический файловый менеджер Krusader.
Сразу бросается в глаза знакомый уже нам из Стратагуса каталог "doc" но там нет информации по инсталляции и установке Wargus, она собрана в
файле README - смотрим его содержимое:
1 cat README
В разделе "Build depends" нам указаны какие библиотеки нужны для сборки Варгуса, а в разделе "Installation Instructions" - инструкции по установке.
Начнем с библиотек:
Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Gtk+ - необходим, что именно нужно ставить - узнаем потом, при подготовке к компиляции.
Hildon - нам не нужен для PC, это для платформы MAEMO (Nokia N900 и т.п.)
ffmpeg2theora - нужен для конвертации аудио и видео ресурсов.
cdparanoia - нужен для рипа музыкальных CD-треков, в принципе можно и не ставить.
cdda2wav - нужен если мы под Windows, значит оно нам не нужно.
Переходим в директорию с распакованными исходными кодами Варгуса и создаем в ней директорию "build":
Запускаем подготовку:
1 cmake ..
Видим ошибку:
Все верно, мы скомпилировали стратагус но не установили, устанавливать его мы не будем, а просто отучим Wargus просить этот файл, сделаем
небольшой хак, открываем для редактирования файл CMakeLists.txt что лежит в папке /tmp/game/wargus_2.3.0.orig :
1 nano /tmp/game/wargus_2.3.0.orig/CMakeLists.txt
Появится простой редактор текстовых файлов NANO (название не связано с нано-технологиями, хотя...), в нем мы клавишами-стрелками листаем вниз
и ищем строчку:
1 find_package(Stratagus REQUIRED)
Ставим в начале этой строчки знак решотки "#", то есть закомментируем данное требование, вот как будет выглядеть эта строка:
1 #find_package(Stratagus REQUIRED)
Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Для выхода из редактора нажимаем комбинацию клавиш CTRL+X и на запрос о сохранении изменений жмем клавишу "y".
Отлично, теперь запускаем подготовку:
1 cmake ..
CMake говорит что не удается найти StormLib - это библиотека, которая нужна для работы с файлами-архивами в формате MPQ от Blizzard. В кеше
пакетов ее не удастся найти, пробуем найти что-нибудь по этой библиотеке в поисковых системах.
К примеру в Google вбиваем запрос "linux StormLib" и на первой же позиции странице результатом видим:
Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Переходим по ссылке из результатов поиска: https://github.com/ladislav-zezula/StormLib
Открываем еще один отдельный терминал и переходим в нашу рабочую директорию:
1 cd /tmp/game/
1 wget -c "https://github.com/ladislav-zezula/StormLib/archive/master.zip"
Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Теперь в этом же терминале запускаем установку библиотеки с правами суперпользователя:
Отлично, теперь можно закрыть терминал где мы собирали StormLib-master и возвращаемся к терминалу в котором мы работали с Варгусом.
Пробуем запустить подготовку теперь:
1 Some or all of the gtk libraries were not found. (missing: GTK2_GTK_LIBRARY...
Набрав в поисковике (Google) запрос "missing: GTK2_GTK_LIBRARY GTK2_GTK_INCLUDE_DIR" буквально сразу нашел ответ - нужно установить пакет
"libgtk2.0-dev":
1 CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
2 Please set them or make sure they are set and tested correctly in the CMake files:
3 STRATAGUS_INCLUDE_DIR
Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
1 nano /tmp/game/wargus_2.3.0.orig/build/CMakeCache.txt
В редакторе нажмем сочетание клавиш для поиска строки текста CTRl+W, введем текст "STRATAGUS_INCLUDE" и потом жмем Enter - редактор
перебросит нас к найденной строке:
1 STRATAGUS_INCLUDE_DIR:PATH=STRATAGUS_INCLUDE_DIR-NOTFOUND
Вот здесь и содержится наша проблема, путь к исходным файлам Stratagus не указан, отредактируйте строчку чтобы она местила полный путь к папке
"stratagus_2.3.0.orig", вот так выглядит исправленная строка:
1 STRATAGUS_INCLUDE_DIR:PATH=/tmp/game/stratagus_2.3.0.orig
Сейчас, запустив "cmake .." там где мы готовим Wargus (/tmp/game/wargus_2.3.0.orig/build/), мы увидим вот что:
1 make
Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
И что вы думаете...вот что у вас должно получиться:
Да, опять ошибка и чего-то не хватает, а именно: сборщик CMake не знает где лежит заголовочный файл stratagus-game-launcher.h для Stratagus, об
этом свидетельствует строчка:
В свое время мне пришлось помучатся в экспериментах как же это чудо связать, расскажу как это сделать.
Сначала был найден графический конфигуратор CMAKE GUI (cmake-qt-gui) и с помощью его я подключал stratagus-game-launcher.h, но потом нашел
более простое решение, оно состоит из двух действий:
1) Копируем stratagus-game-launcher.h в директорию с Варгусом, выполняем:
1 cp /tmp/game/stratagus_2.3.0.orig/gameheaders/stratagus-game-launcher.h /tmp/game/wargus_2.3.0.orig
1 nano /tmp/game/wargus_2.3.0.orig/wargus.cpp
Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Теперь возвращаемся в директорию где мы собираем Wargus и пробуем запустить компиляцию:
1 cd /tmp/game/wargus_2.3.0.orig/build
2 make
Отлично, Stratagus и Wargus у нас скомпилированы, бинарные файлы лежат в папках "build" для каждого из проектов. Идем дальше...
Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Конвертация и подготовка ресурсов из игры WarCraft II
Ну вот, пожалуй самое сложное позади. Осталось подготовить пак с ресурсами для нашей игры. Вытягивать эти ресурсы мы будем из файлов от
оригинальной игры WarCraft II.
Где найти файлы оригинального WarCraft II, а это порядка 50-120Мб, думаю не составит для вас проблемы - возможно остался еще лицензионный диск
с игрой, в ином же случае Google вам поможет найти эту старую игру для MS-DOS и Win95.
Отмечу что нужен WarCraft II Tides of Darkness с дополнением Beyond The Dark Portal и желательно на английском языке, на русском не пробовал но
думаю что все также будет хорошо.
1 mkdir data
Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Копируем в папку /tmp/game/wargus_2.3.0.orig/build/war2data все файлы из папки "DATA" установленной оригинальной игры WarCraft II, вот к примеру как
виглядит содержимое этой папки у меня:
Длительность распаковки зависит от мощности компьютера и длится несколько минут, вот как выглядит результат работы:
@ wargus-warcraft-2-files-extraction-ready.jpg
Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Посмотрим что у нас есть в директории /tmp/game/wargus_2.3.0.orig/build/data
1 mkdir /tmp/game/Wargus
1 cp /tmp/game/stratagus_2.3.0.orig/build/stratagus /tmp/game/Wargus/
2 cp /tmp/game/stratagus_2.3.0.orig/build/png2stratagus /tmp/game/Wargus/
3 cp /tmp/game/wargus_2.3.0.orig/build/wargus /tmp/game/Wargus/
4 cp /tmp/game/wargus_2.3.0.orig/build/wartool /tmp/game/Wargus/
5 cp /tmp/game/wargus_2.3.0.orig/build/pudconvert /tmp/game/Wargus/
1 cp -R /tmp/game/wargus_2.3.0.orig/campaigns/ /tmp/game/Wargus/
2 cp -R /tmp/game/wargus_2.3.0.orig/graphics/ /tmp/game/Wargus/
3 cp -R /tmp/game/wargus_2.3.0.orig/maps/ /tmp/game/Wargus/
4 cp -R /tmp/game/wargus_2.3.0.orig/mods/ /tmp/game/Wargus/
5 cp -R /tmp/game/wargus_2.3.0.orig/music/ /tmp/game/Wargus/
Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
6 cp -R /tmp/game/wargus_2.3.0.orig/scripts/ /tmp/game/Wargus/
7 cp -R /tmp/game/wargus_2.3.0.orig/sounds/ /tmp/game/Wargus/
1 cp -R /tmp/game/wargus_2.3.0.orig/build/data/* /tmp/game/Wargus/
1 cd /tmp/game/Wargus && mc
Также можно посмотреть сколько места занимает вся получившаяся игра командой:
1 du -h --max-depth=1 /tmp/game/Wargus
Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Вывод команды виглядит примерно вот так:
Пробуем запускать игру, запуск нужно осуществлять именно при помощи файла "stratagus":
1 /tmp/game/Wargus/stratagus
Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Окно приветствия при старте Wargus:
Все хорошо, но почему-то не играет на старте бодрая музыка в стиле ВарКрафт, да и при игре ее может не оказаться - давайте это исправим! Музыки
может не быть потому что нет установленного ПО для программного MIDI-синтезатора.
Набор пакетов данного ПО весит не мало и для портабельной (переносной) версии игры каждый раз на новой системе все это устанавливать - не очень
хорошая идея. Будем конвертировать музыку из формата *.mid в формат .*ogg.
Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Установим необходимые утилиты и наборы ресурсов:
Теперь добавим поддержку звуковых семплов fluid-soundfont для программного MIDI-синтезатора timidity:
1 cd /tmp/game/Wargus/music
В итоге размер всех музыкальных файлов вышел около 300 МБ. Готовые файлы формата wav можно прослушать используя VLC или любой другой
мультимедиа-плеер. Вот что у меня получилось:
Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Перекодируем WAV в OGG:
В папке должны появиться музыкальные файлы в формате *.ogg. Мы также можем прослушать их при помощи плеера VLC.
Теперь удалим ненужные нам MIDI и WAV файлы:
Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
В папке останутся только файлы, сумарный размер - примерно 24 МБ.
Поскольку Wargus поддерживает сжатые ресурсы - карты, звуки, музыку, то почему бы не попробовать сжать звуковые файлы. Помните при подготовке
Stratagus мы устанавливали библиотеку "libbzip2 (optional)" - так вот она нам и пригодится для поддержки сжатых ресурсов.
Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
В итоге сэкономили примерно 200КБ, что есть очень не много. К примеру при сжатии карт коэффициент сжатия будет достаточно высоким и можно
сэкономить много места на диске.
Ок, идем дальше...
Открываем редактором NANO для редактирования файл wc2-config.lua - это скриптовый файл на языке LUA, в нем описаны основные параметры для
запуска игры.
1 nano /tmp/game/Wargus/scripts/wc2-config.lua
1 wargus.music_extension = ".mid"
на вот такую:
1 wargus.music_extension = ".ogg"
Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Закрываем редактор и сохраняем. Здесь мы изменили формат музыкальных файлов на OGG Vorbis (*.ogg).
Открываем редактором NANO для редактирования файл guichan.lua - в данном файле описаны настройки интерфейса.
1 nano /tmp/game/Wargus/scripts/guichan.lua
Файл открылся? - ок, теперь нажимаем CTRL+W (от слова: where, где) и пишем туда кусок кода который будем искать:
1 function BuildProgramStartMenu
Заменяем строчку
на вот такую:
1 PlayMusic("music/Orc Briefing.ogg")
Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
1 cd /tmp/game/Wargus/ && /tmp/game/Wargus/stratagus
В игровом меню, а также в процессе игры теперь везде будет играть музыка, причем треки можно менять в настройках!
Результат
Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Заключение
Подготовленную таким образом игру можно переносить на Flash-накопителе на другие компьютеры с Линукс. К примеру, при переносе игры на другой
компьютер с Debian GNU Linux может потребоваться установка нескольких пакетов:
Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Как и раньше я вам прилагаю свой собранный из разных уголочков интернета пак карт для Wargus, где вы найдете и сетевые карты и очень много карт
для одиночной игры против ИИ (Искусственный Интеллект) - Кампаний.
Для того чтобы можно было использовать эти карты их нужно распаковать в директорию Wargus/maps/skirmish/. В этой директории можно создать
подпапки, а при игре в режиме Skirmish потом можно будет выбрать нужную вам карту из нужной папки.
1 1944 Linux
Читайте также:
→ Zer0 - cамодельный экспериментальный робот на Raspberry Pi + Linux + Python
→ Одноплатные компьютеры на Linux, первое знакомство с Raspberry Pi
→ Как отремонтировать компьютер или ноутбук если он хаотично зависает
#1 darkness 0 +
27 Октябрь 2015 21:45
Доброго времени суток, очень детально все написано, но у меня возникла другая проблема, почему-то манипуляции с CMAKE не дали должного результата. Вот
лог:
prouser@ocean-pc:~/Загрузки/wargus_2.3.0.orig/build$ cmake ..
-- checking for module 'maemo-version'
-- package 'maemo-version' not found
-- Found ZLIB: /usr/lib/i386-linux-gnu/libz.so (found version "1.2.8")
-- Found PNG: /usr/lib/i386-linux-gnu/libpng.so (found version "1.2.50")
-- Found BZip2: /usr/lib/i386-linux-gnu/libbz2.so (found version "1.0.6")
-- Looking for BZ2_bzCompressInit in /usr/lib/i386-linux-gnu/libbz2.so
-- Looking for BZ2_bzCompressInit in /usr/lib/i386-linux-gnu/libbz2.so - found
-- Found StormLib: /usr/local/lib/libstorm.so
Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
-- Looking for XOpenDisplay in /usr/lib/i386-linux-gnu/libX11.so;/usr/lib/i386-linux-gnu/libXext.so
-- Looking for XOpenDisplay in /usr/lib/i386-linux-gnu/libX11.so;/usr/lib/i386-linux-gnu/libXext.so - found
-- Looking for gethostbyname
-- Looking for gethostbyname - found
-- Looking for connect
-- Looking for connect - found
-- Looking for remove
-- Looking for remove - found
-- Looking for shmat
-- Looking for shmat - found
-- Looking for IceConnectionNumber in ICE
-- Looking for IceConnectionNumber in ICE - found
-- Found X11: /usr/lib/i386-linux-gnu/libX11.so
-- checking for module 'freetype2'
-- found freetype2, version 17.1.11
-- Found Freetype: /usr/lib/i386-linux-gnu/libfreetype.so (found version "17.1.11")
-- Found GTK2_GTK: /usr/lib/i386-linux-gnu/libgtk-x11-2.0.so
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
STRATAGUS_INCLUDE_DIR
used as include directory in directory /home/prouser/Загрузки/wargus_2.3.0.orig
used as include directory in directory /home/prouser/Загрузки/wargus_2.3.0.orig
used as include directory in directory /home/prouser/Загрузки/wargus_2.3.0.orig
#2 ph0en1x 0 +
28 Октябрь 2015 00:11
Доброго времени суток! В приведенном вами логе CMake нашла переменную STRATAGUS_INCLUDE_DIR, которая не содержит значения. Это значит что CMake
не может найти папку где содержатся исходные файлы Stratagus или переменная не установлена.
Для того чтобы ошибка пропала в файле /build/CMakeCache.txt правим путь:
"STRATAGUS_INCLUDE_DIR:PATH=STRATAGUS_INCLUDE_DIR-NOTFOUND"
Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
на полный путь(ПУТЬ_К_ПАПКЕ - заменить на реальный полный путь):
"STRATAGUS_INCLUDE_DIR:PATH=/ПУТЬ_К_ПАПКЕ/stratagus_2.3.0.orig".
После этого попробовать запустить cmake снова.
Упустил этот момент поскольку при сборке тестировал графическую утилиту cmake-qt-gui, где и была установлена эта переменная
(STRATAGUS_INCLUDE_DIR). Проверил еще раз все по пунктам снуля на чистом Debian - все собралось.
Обновил статью!
#3 darkness +1 +
28 Октябрь 2015 14:32
ph0en1x спасибо за помощь, все собралось и отлично работает. Остался лишь один вопрос, зачем был нужен диск Beyond_the_Dark_Portal, ведь с него мы не
брали никаких ресурсов, или я что-то упустил?
#4 ph0en1x +1 +
28 Октябрь 2015 17:07
Приведу сравнение WarCraft II Tides of Darkness и Beyond The Dark Portal Expansion Set:
Стратегия реального времени (RTS), добыча ресурсов (золото, лес, нефть), строительство, развитие и сражения. В игре
присутствуют две рассы - Люди(Альянс) и Орки(Орда).
Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
WarCraft II Beyond The Dark Portal Expansion Set
Дополнение к игре WarCraft II Tides of Darkness, которое содержит 2 отдельные уникальные кампании за Альянс и Орду, а также
по 5 новых юнитов(герои) для каждой рассы.
В примерах для статьи я извлекал ресурсы из установленной игры, которая содержала в себе как оригинальную версию, так и установленное дополнение
(Expansion Set).
Таким образом у меня доступны 14 + 14 + 12 + 12 оригинальных миссий + еще пару штук из самого Варгуса. Вот так выглядит меню Campaign Game:
Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
#5 darkness +1 +
28 Октябрь 2015 19:27
Благодарю за разъяснения, а то я играл лишь Warcraft 2 BNE. Значит мне нужно еще и ресурсы с WarCraft II Beyond The Dark Portal Expansion Set ставить.
#6 daramoner 0 +
11 Ноябрь 2016 18:49
вобщем почитал но конешно проше просто скачать виндос эмулятор а на него уже и через торрент вот2 3 1 а так спасибо
Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
#7 ph0en1x 0 +
12 Ноябрь 2016 01:06
Если не хочется возиться с компиляцией под Линукс то можно поступить так: качаем скомпилированные установочные файлы для Windows, выполняем
установку и распаковку ресурсов, добиваемся работоспособности игры под Windows. Потом запускаем игру под операционной системой Linux используя Wine
или PlayonLinux.
#8 sign 0 +
18 Май 2017 17:45
Что делать?
#9 ph0en1x 0 +
19 Май 2017 16:03
Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Похоже что это какая-то проблема с линковкой библиотек. Все манипуляции в статье успешно проводились несколько раз под Debian GNU Linux 8.1 x64 (Jessie,
64-битная ОС) с установленным оконным менеджером KDE, возможно у вас другая версия GNU Linux и там нужно установить какие-то дополнительные
библиотеки или патчи.
Прежде чем приступать к работе настоятельно рекомендую выполнить обновление пакетов: sudo apt-get update && apt-get upgrade .
Если у вас отличается система и нет времени на поиски причины возникновения проблемы, то можете установить Debian Jessie 8.1 x64 + KDE под VirtualBox, а
там уже выполнять все нужные манипуляции по сборке игры - очень удобно для разных экспериментов и не замусоривает основную систему.
#10 demm45 0 +
24 Февраль 2018 19:03
#11 ph0en1x 0 +
25 Февраль 2018 22:25
Здравствуйте, demm45.
Попробовал выполнить некоторые манипуляции для получения нормально отображающихся символов кириллицы:
Хочу заметить что перевод в данном порте игры на русский выполнен не полностью, отсутствуют переводы для текстов с заданиями миссий, в основном
переведены все элементы интерфейса и сообщения в игре.
Проведя анализ LUA-скриптов с настройками, стало понятно что в программе используются собственные рисованные шрифты из папки "graphics/ui/fonts/".
Покопавшись в некоторых файлах с исходным кодом, которые отвечают за перевод и шрифты, пришел к выводу что
Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
обработка текстов с кириллическими символами перевода выполняется в кодировке IBM 866 (CP866), в этой же кодировке сохранены файлы "ru_RU.po" и
"stratagus-ru.po".
Сборка Wargus под Windows имеет те же проблемы не полного перевода: в меню выбора миссий отсутствуют названия миссий, в шрифтах не хватает части
символов для отображения и т.п.
Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
А вот с английской локализацией все отлично как под GNU/Linux, так и под MS Windows.
Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
#12 Demm45 0 +
27 Февраль 2018 04:51
спасибо за то, что уделили время. Но у меня вообще, даже коряво ничего не рисует. И я нашел почему.
В исходниках в файле defaultfont.cpp
То есть в функцию отрисовки передается символ, но в ней он не используется а рисуется первый квадрат из *.png. А во всех файлах шрифтов он пустой.
Править и пересобирать пока некогда. Попозже попробую.
и ещё одно:
При конвертации mid в ogg пишет:
No instrument mapped to tone bank **, no idea which one is missing
где ** номер отсутствующего инструмента.
После конвертации звучит неприятно.
Выполнил
Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
После конвертации звучать стало приятно, инструменты теперь все и звучат естественней.
С Уважением, Дмитрий.
#13 Demm45 0 +
27 Февраль 2018 05:31
#14 ph0en1x 0 +
27 Февраль 2018 15:13
В моем случае кириллические символы под GNU/Linux также вообще не отображаются. Что интересно, если в файле перевода "ru_RU.po" в одну из строк с
русским переводом добавить какие-то английские буквы, то они также не будут отображены.
Если же теперь файл ru_RU.po" пересохранить в кодировке CP1252, то увидим уже следующую ситуацию:
Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Похоже, что-то работает не так как нужно при обработке символов в кодировке IBM 866. Что до функций, обрабатывающих вывод символов используя
графические шрифты, то здесь вполне может быть что какие-то функции не правильно себя ведут или же вообще не используются.
Насчет использования набора инструментов fluid-soundfont для timidity - хорошее замечание. Добавил эту информацию в обе статьи.
Спасибо!
#15 Demm45 0 +
16 Апрель 2018 05:32
- - - - -
Текст комментария
Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Смaйлики :)
Символы с картинки
Отправить комментарий
Категории публикаций:
Интернет технологии (3)
Поисковая оптимизация (SEO) (2)
Сервисы и партнерки (0)
Хостинг и домены (1)
Автоматизация (2)
Программирование (30)
PHP (6)
Python (4)
Микроконтроллеры (18)
Операционные системы (14)
Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
UNIX FreeBSD (0)
Linux (13)
Windows (1)
Информационная безопасность (1)
Радиоэлектроника (21)
Новости из мира IT (2)
Железячки (15)
Компьютерные игры (3)
Самосовершенствование (11)
Здоровье и долголетие (1)
Боевые искусства (0)
Полезное и необходимое (3)
Разное (3)
Отменить подписку
Продолжить
Популярные публикации:
Усилитель низкой частоты (УНЧ) на микросхеме TDA7250
Как сделать звукосниматель для акустической гитары
Ремонт усилителя Радиотехника У-101, модуль УМЗЧ на микросхеме TDA7250
Устройство задержки включения и защиты громкоговорителей
Усилитель мощности НЧ своими руками ( Phoenix-P400 )
Изучаем GPIO в Raspberry Pi, эксперимент со светодиодом и кнопкой
Работа с регистрами AVR микроконтроллера на Си, битовые операции
Самодельный роутер и мини-сервер на Raspberry Pi - Часть 2 (программы)
Схема простого блока питания для усилителя мощности Phoenix P-400
RPi.GPIO - работа с входами, выходами и прерываниями в Raspberry Pi, примеры на Python
Интересный опрос:
Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Что вас больше всего интересует?
Заработок в интернете
Радиоэлектроника
Программирование
Операционные системы
Информационная безопасность
Саморазвитие, лайфхак
Спорт
Другое
Проголосовать
Результаты голосования
© 2012-2019, Ph0en1x.net - информационная безопасность, SEO, программирование, UNIX и Linux, радиоэлектроника и саморазвитие.
Все права защищены. Копирование информации разрешается при условии установки активной ссылки на оригинал.
Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD