Вы находитесь на странице: 1из 53

Программирование, радиоэлектроника,

саморазвитие и частичка из моей жизни здесь...

Главная О авторе Категории публикаций

Сборка и запуск Wargus (Stratagus) на Linux снуля (WarCraft 2)

Показан процесс компиляции и настройки веселой игры 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".

Первым делом обновим источники пакетов и сами пакеты в системе:

1 sudo apt-get update && apt-get upgrade

Теперь инсталлируемым вспомогательный софт, он будет нам полезен при работе, а также для более удобной навигации по файловой системе:

1 sudo apt-get install wget mc krusader p7zip p7zip-full zip lynx

Вот так выглядит запущенный в консоли 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Мб, качается достаточно быстро, в зависимости от ширины вашего интернет канала.

Распакуем скачанный архив и перейдем в его директорию командами:

1 cd /tmp/game && tar -xf stratagus_2.3.0.orig.tar.gz && ls -la


2 cd stratagus_2.3.0.orig

Вот как выглядит мой терминал после этой операции:

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" наиболее близкое к тому что нам нужно:

1 apt-cache search cmake

Получим списочек, в котором можем увидеть что есть строчка:

1 cmake - cross-platform, open-source make system

Пожалуй это то что нам нужно и наиболее точно соответствует нашему запросу. Установим пакет "cmake" командой:

1 sudo apt-get install cmake

Вместе с собой пакет также установит некоторые необходимые дополнительные пакеты.


Идем дальше, будем устанавливать SDL. Что с ним делать и откуда устанавливать - не понятно... Попробуем посмотреть в кеше пакетов что у нас есть
по ключевому слову "sdl":

1 apt-cache search sdl

Огого...хороший списочек получился на несколько страниц, там есть и "libsdl-gfx1.2-5", "libsdl1.2-dev" и "libsdl2-dev" и еще очень много самых разных
файлов. Что же с этим списком делать если мы не знаем точно что нам нужно и какой версии? - ответ прост: пока что, ничего!

От этого момента пойдем немного другим путем. Попробуем запустить подготовку пакета Stratagus, а там будем внимательно смотреть чего ему не
хватает для сборки и тогда уже будем искать и устанавливать.

Следуя инструкции по установке - перейдем в каталог с распакованными исходными кодами и создадим там папку "build", а также перейдем в только
что созданную папку:

1 cd /tmp/game/stratagus_2.3.0.orig && mkdir build && cd 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":

1 apt-cache search pkg config

В списке явно выделяются строчки что сходны с нашим запросом:

1 pkg-config - manage compile and link flags for libraries


2 pkgconf - manage compile and link flags for libraries

Возьмем и поставим первый пакет "pkg-config", єтого должно біть достаточно:

1 sudo apt-get install pkg-config

Хорошо, теперь возвращаемся к подготовке исходных кодов и повторяем команду "cmake .." в том же окне. После запуска получаем опять ошибку:

1 Could NOT find Lua51 (missing: LUA_LIBRARIES LUA_INCLUDE_DIR)

Строчка говорит о том что не хватает библиотеки Lua51 для будущей компиляции Stratagus, также у нас в списке необходимого ПО есть пункт "Lua 5.1
(required)" - будем искать и ставить этот пакет.
Смотрим список пакетов что есть по запросу "lua 5"(как это сделать вы уже знаете из предыдущего опыта), видим что есть вот такие пакеты наиболее
сходные к нашему запросу:

1 liblua5.1-bitop-dev - Transitional package for lua-bitop-dev


2 liblua5.1-iconv0 - Transitional package for lua-iconv
3 liblua5.1-0 - Shared library for the Lua interpreter version 5.1
4 liblua5.1-0-dbg - Debug symbols for the Lua shared library interpreter
5 liblua5.1-0-dev - Development files for the Lua language version 5.1

Почему в названии пакета спереди есть lib - потому что это библиотека, а нам нужна именно она (missing: LUA_LIBRARIES), осталось только
разобраться какой из этих пакетов ставить. Можно конечно же установить все, но зачем захламлять лишнее пространство - нам ведь нужна библиотека
для сборки из исходных кодов, а значит нужны dev-файлы(файлы для разработки), поэтому нам наиболее подойдет пакет с названием "liblua5.1-0-dev".
Устанавливаем пакет:

1 sudo apt-get install liblua5.1-0-dev

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Пробуем снова подготовить Стратагус командой "cmake ..":

1 cd /tmp/game/stratagus_2.3.0.orig/build && cmake ..

Отлично, теперь у нас новые ошибочки:

1 Could NOT find ZLIB (missing:  ZLIB_LIBRARY ZLIB_INCLUDE_DIR)


2 Could NOT find PNG (missing: PNG_LIBRARY PNG_PNG_INCLUDE_DIR)

В списке необходимого ПО у нас есть "libpng (required)" и "zlib (required)" - все верно, будем искать и ставить нужные пакеты пока данные ошибки не
исчезнут.
Поискав в кеше пакетов претенденты для ZLIB однозначно выделяем строчку:

1 zlib1g-dev - compression library - development

Ставим данный пакет и пробуем запустить подготовку Стратагуса (команда "cmake .."), теперь строка с ошибкой о ZLIB пропала а на ее месте
появилась:

1 Found ZLIB: /usr/lib/x86_64-linux-gnu/libz.so (found version "1.2.8")

Строчка говорит что библиотека ZLIB найдена и ее версия "1.2.8" - все отлично, мы движемся в правильном направлении.

Весь этот процесс может показаться достаточно сложным, но тем не менее все у нас получается. Для небольшой разгрузки можно сейчас
сделать перерыв и сходить попить хорошего чая, немного развеяться, а потом уже продолжить выполнение нашего квеста.

Отлично, вы отдохнули, а значит продолжим...


Будем устанавливать библиотеку PNG - это набор инструментов для работы с рисунками графического формата PNG (Portable Network Graphics).
Пройдясь по списку найденных в кеше (команда apt-cache search) по ключевому слову "png" пакетов находим те что есть библиотеки (начинаются как
правило со слова lib).

Поскольку мы знаем что нам нужен именно dev-вариант библиотеки то можем отсеять все рузульаты в списке найденных пакетов при помощи фильтра,
вот как это делается:

1 apt-cache search png | grep 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.

1 sudo apt-get install libpng12-dev

Установили "libpng12-dev"? - хорошо, мы двигаемся к победе!

Запускаем снова процесс подготовки и видим что появилась новая ишибка:

1 Could NOT find SDL (missing: SDL_LIBRARY SDL_INCLUDE_DIR)

Что с ней делать мы уже знаем - ищем и устанавливаем библиотеку для SDL!

1 apt-cache search sdl | grep dev

Вот что можно выделить в списке:

1 libsdl1.2-dev - Simple DirectMedia Layer development files


2 libsdl2-dev - Simple DirectMedia Layer development files

Здесь видим что есть версия 1.2 и версия 2. Какую ставить? - пробуем сначала 2-ю.

1 sudo apt-get install libsdl2-dev

После запуска "cmake .." для стратагуса снова видим сообщение об ошибке что библиотека SDL не анйдена. Значит "libsdl2-dev" - это не тот пакет что
нужен, удалим его и установим пакет "libsdl1.2-dev":

1 sudo apt-get remove libsdl2-dev


2 sudo apt-get install libsdl1.2-dev

Пробуем снова запустить подготовку стратагуса командой "cmake .." - ошибки с SDL уже нет но вылезла очередная, к которой мы уже готовы и знаем
что делать:

1 Could not find library or program tolua++

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Смотрим в список необходимого ПО и видим что там есть пункт "Tolua++ (required)", также ищем в кеше пакетов что у нас есть по ключевому слову
"tolua" в наличии:

1 libtolua-dev - Tool to integrate C/C++ code with Lua - development files


2 libtolua++5.1-dev - extended tool to integrate C/C++ code with Lua (devel)

Всего две позиции, ставить будем "libtolua++5.1-dev" потому что в требованиях у нас указано "Tolua++":

1 sudo apt-get install libtolua++5.1-dev

Теперь после запуска "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" так же как и предыдущие, установим их все сразу одной командой:

1 sudo apt-get install libvorbis-dev libtheora-dev libfluidsynth-dev libmikmod-dev libbz2-dev libmng-dev

Вот что мы выполнили из списка необходимого ПО:

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 cd /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

Ну вот, Стратагус у нас скомпилирован, теперь займемся Wargus'ом.


Открываем браузер и заружаем сайт где размещается содержимое проекта Wargus: https://launchpad.net/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Мб. Распакуем скачанный архив и перейдем в его директорию командами:

1 tar -xf wargus_2.3.0.orig.tar.gz && cd wargus_2.3.0.orig && ls -la

Вот так выглядит окно консоли с выполненными командами:

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, значит оно нам не нужно.

Сейчас мы установим две из необходимых библиотек:

1 sudo apt-get install ffmpeg2theora libcdparanoia-dev

Остальные необходимые библиотеки установим по ходу подготовки к компиляции, приступим...

Переходим в директорию с распакованными исходными кодами Варгуса и создаем в ней директорию "build":

1 cd /tmp/game/wargus_2.3.0.orig && mkdir build && cd build

Запускаем подготовку:

1 cmake ..

Видим ошибку:

1 Could not find stratagus

Все верно, мы скомпилировали стратагус но не установили, устанавливать его мы не будем, а просто отучим 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 ..

В результате работы команды идим вот что:

1 -- Could not find StormLib


2 -- Some or all of the gtk libraries were not found. (missing:  GTK2_GTK_LIBRARY
3 -- Configuring done
4 -- Generating done
5 -- Build files have been written to: /tmp/game/wargus_2.3.0.orig/build

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"

Распаковываем архив и переходим в распакованную новую папку:

1 7z x master.zip && cd StormLib-master

Создаем директорию "build", переходим в нее, запускаем подготовку и компиляцию StormLib:

1 mkdir build && cd build


2 cmake ..
3 make

Процесс должен завершиться успешно:

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Теперь в этом же терминале запускаем установку библиотеки с правами суперпользователя:

1 sudo make install

Отлично, теперь можно закрыть терминал где мы собирали StormLib-master и возвращаемся к терминалу в котором мы работали с Варгусом.
Пробуем запустить подготовку теперь:

1 cd /tmp/game/wargus_2.3.0.orig/build && cmake ..

Видим что с StormLib теперь все ОК:

1 -- Found StormLib: /usr/local/lib/libstorm.so

Осталось установить GTK, об этом нам говорит сообщение:

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 sudo apt-get install 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

Для этого откроем для редактирования файл CMakeCache.txt командой:

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

Теперь выходим из редактора (CTRL+X) и на запрос о сохранении подтверждаем (Y).

Сейчас, запустив "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, об
этом свидетельствует строчка:

1 wargus.cpp:34:37: fatal error: stratagus-game-launcher.h: No such file or directory

В свое время мне пришлось помучатся в экспериментах как же это чудо связать, расскажу как это сделать.
Сначала был найден графический конфигуратор 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

2) Редактируем файл wargus.cpp:

1 nano /tmp/game/wargus_2.3.0.orig/wargus.cpp

и приводим в нем строчку "#include <stratagus-game-launcher.h>" к вот такому виду:

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 и желательно на английском языке, на русском не пробовал но
думаю что все также будет хорошо.

Создаем папку куда будем распаковывать оригинальные файлы от WarCraft II:

1 cd /tmp/game/wargus_2.3.0.orig/build/ && mkdir war2data && ls -la

Вот так выглядит результат данных команд:

Также создадим папку где у нас будут готовые извлеченные ресурсы:

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, вот к примеру как
виглядит содержимое этой папки у меня:

Запускаем распаковку и подготовку файлов командой:

1 cd /tmp/game/wargus_2.3.0.orig/build/ && ./wartool war2data data

Длительность распаковки зависит от мощности компьютера и длится несколько минут, вот как выглядит результат работы:
@ 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/

Копируем ресурсы из оригинальной игры 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/

Копируем данные что мы распаковали из игры WarCraft II с заменой существующих:

1 cp -R /tmp/game/wargus_2.3.0.orig/build/data/* /tmp/game/Wargus/

Теперь смотрим что у нас получилось:

1 cd /tmp/game/Wargus && mc

Вот так выглядит директория /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
Вывод команды виглядит примерно вот так:

Не очень то и много - примерно 102 МегаБайта.

Пробуем запускать игру, запуск нужно осуществлять именно при помощи файла "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
Установим необходимые утилиты и наборы ресурсов:

1 sudo apt-get install timidity fluid-soundfont-gm vorbis-tools

Теперь добавим поддержку звуковых семплов fluid-soundfont для программного MIDI-синтезатора timidity:

1 sudo sed -e 's|^source|#source|' -i /etc/timidity/timidity.cfg


2 sudo sed -e '$a source /etc/timidity/fluidr3_gm.cfg' -i /etc/timidity/timidity.cfg
3 sudo /etc/init.d/timidity restart

Переходим в директорию с музыкой для игры:

1 cd /tmp/game/Wargus/music

Выполним перекодировку MIDI-файлов в WAV:

1 for f in *.mid; do timidity "$f" -Ow -o "${f%.mid}.wav"; done

В итоге размер всех музыкальных файлов вышел около 300 МБ. Готовые файлы формата wav можно прослушать используя VLC или любой другой
мультимедиа-плеер. Вот что у меня получилось:

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Перекодируем WAV в OGG:

1 for f in *.wav; do oggenc "$f"; done

В папке должны появиться музыкальные файлы в формате *.ogg. Мы также можем прослушать их при помощи плеера VLC.
Теперь удалим ненужные нам MIDI и WAV файлы:

1 rm ./*.mid && rm ./*.wav

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
В папке останутся только файлы, сумарный размер - примерно 24 МБ.

Поскольку Wargus поддерживает сжатые ресурсы - карты, звуки, музыку, то почему бы не попробовать сжать звуковые файлы. Помните при подготовке
Stratagus мы устанавливали библиотеку "libbzip2 (optional)" - так вот она нам и пригодится для поддержки сжатых ресурсов.

Сожмем все звуковые файлы *.ogg GZIP'ом:

1 for f in *.ogg; do gzip "$f"; done

Вот что получится после сжатия:

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/Main Menu" .. wargus.music_extension)

на вот такую:

1 PlayMusic("music/Orc Briefing.ogg")

Выходим из редактора и сохраняем файл: CTRL+X, "y".

Все, пробуем запускать наш Варгус:

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
1 cd /tmp/game/Wargus/ && /tmp/game/Wargus/stratagus

В игровом меню, а также в процессе игры теперь везде будет играть музыка, причем треки можно менять в настройках!

Результат

Приведу несколько скриншотов работающего Wargus под Debian GNU Linux:

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 может потребоваться установка нескольких пакетов:

1 sudo apt-get install liblua5.1-0-dev libfluidsynth-dev libmikmod-dev

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Как и раньше я вам прилагаю свой собранный из разных уголочков интернета пак карт для Wargus, где вы найдете и сетевые карты и очень много карт
для одиночной игры против ИИ (Искусственный Интеллект) - Кампаний.

Скачать подборку карт для Wargus (zip, 10 MB)

Для того чтобы можно было использовать эти карты их нужно распаковать в директорию Wargus/maps/skirmish/. В этой директории можно создать
подпапки, а при игре в режиме Skirmish потом можно будет выбрать нужную вам карту из нужной папки.

1 1944 Linux

Тематика: игра Linux warcraft wargus

Читайте также:
→ Zer0 - cамодельный экспериментальный робот на Raspberry Pi + Linux + Python
→ Одноплатные компьютеры на Linux, первое знакомство с Raspberry Pi
→ Как отремонтировать компьютер или ноутбук если он хаотично зависает

Комментарии к публикации (15):

#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

-- Configuring incomplete, errors occurred!


See also "/home/prouser/Загрузки/wargus_2.3.0.orig/build/CMakeFiles/CMakeOutput.log".
Буду признателен, если поможете разобраться, система Lubuntu 14.04.

#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:

WarCraft II Tides of Darkness

Дата выхода: декабрь 1995 года.

Разработчик: Blizzard Entertainment.

Системные требования: Pentium 166, 32 Мб, Direct3D 5.

Кампании: 2 кампании по 14 миссий.

Игра по сети: модем, нуль-модем, LAN(IPX).

Стратегия реального времени (RTS), добыча ресурсов (золото, лес, нефть), строительство, развитие и сражения. В игре
присутствуют две рассы - Люди(Альянс) и Орки(Орда).

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
WarCraft II Beyond The Dark Portal Expansion Set

Дата выхода: 30 апреля 1996 года.

Кампании: 2 кампании по 12 миссий.

Дополнение к игре WarCraft II Tides of Darkness, которое содержит 2 отдельные уникальные кампании за Альянс и Орду, а также
по 5 новых юнитов(герои) для каждой рассы.

В дополнении присутствуют также несколько карт для многопользовательской игры.

Для данного дополнения нужна установленная игра WarCraft II Tides of Darkness.

В примерах для статьи я извлекал ресурсы из установленной игры, которая содержала в себе как оригинальную версию, так и установленное дополнение
(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

Здравствуйте! Делал, все согласно статье.


Компиляция stratagus. сmake - все успешно. Запустил make.
До 99% все хорошо. А дальше такая ошибка:

[ 99%] Linking CXX executable stratagus


/usr/bin/ld: CMakeFiles/stratagus.dir/src/animation/animation_die.cpp.o: undefined reference to symbol
'_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc@@GLIBCXX_3.4.21'
//usr/lib/x86_64-linux-gnu/libstdc++.so.6: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
CMakeFiles/stratagus.dir/build.make:5721: recipe for target 'stratagus' failed
make[2]: *** [stratagus] Error 1
CMakeFiles/Makefile2:141: recipe for target 'CMakeFiles/stratagus.dir/all' failed
make[1]: *** [CMakeFiles/stratagus.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2

Что делать?

#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.

Попробовал выполнить некоторые манипуляции для получения нормально отображающихся символов кириллицы:

Изменение языка графической оболочки KDE на русский;


Установка дополнительных кириллических шрифтов;
Изменение переменных локализации "LANG", "LC_ALL" перед запуском "./stratagus" из консоли;
Эксперименты с перекодировкой файлов перевода "ru_RU.po" и "stratagus-ru.po" в директории "scripts/translate/" ;
Попытка изменить перевод на кириллический прямо в LUA-файлах.

Хочу заметить что перевод в данном порте игры на русский выполнен не полностью, отсутствуют переводы для текстов с заданиями миссий, в основном
переведены все элементы интерфейса и сообщения в игре.

Проведя анализ 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".

К сожалению, заставить игру отображать кириллицу под Linux так и не удалось.

Сборка 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

int DefaultFont::drawGlyph(Graphics* graphics, unsigned char, int x, int y)


{
graphics->drawRectangle( Rectangle(x, y, 8, 8));
return 8;
}

void DefaultFont::drawString(Graphics* graphics, const std::string& text, int x, int y)


{
unsigned int i;
for (i = 0; i< text.size(); ++i)
{
drawGlyph(graphics, text.at(i), x, y);
x += getWidth(text);
}
}

То есть в функцию отрисовки передается символ, но в ней он не используется а рисуется первый квадрат из *.png. А во всех файлах шрифтов он пустой.
Править и пересобирать пока некогда. Попозже попробую.

и ещё одно:
При конвертации mid в ogg пишет:
No instrument mapped to tone bank **, no idea which one is missing
где ** номер отсутствующего инструмента.
После конвертации звучит неприятно.

Выполнил

sudo apt-get install fluid-soundfont-gm


sudo sed -e 's|^source|#source|' -e '$a source /etc/timidity/fluidr3_gm.cfg' -i /etc/timidity/timidity.cfg
sudo /etc/init.d/timidity restart

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
После конвертации звучать стало приятно, инструменты теперь все и звучат естественней.
С Уважением, Дмитрий.

#13 Demm45 0 +
27 Февраль 2018 05:31

и ещё нашел в font.cpp функцию


unsigned int CFont:DrawChar(CGraphic &g, int utf8, int x, int y, const CFontColor &fc) const

#14 ph0en1x 0 +
27 Февраль 2018 15:13

В моем случае кириллические символы под GNU/Linux также вообще не отображаются. Что интересно, если в файле перевода "ru_RU.po" в одну из строк с
русским переводом добавить какие-то английские буквы, то они также не будут отображены.

1 msgstr "Пересмотреть игру"


2 msgstr "Пересмотреть TEST игру"

Если же теперь файл 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

так и не победил. Поставил DosBox и оригинальную игру

- - - - -

Текст комментария

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Смaйлики :)

Имя, никнейм Почтовый адрес E-Mail

Символы с картинки

Отправить комментарий

Что искать? Поиск

Категории публикаций:
Интернет технологии (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)

Подписаться на рассылку по Email:


Публикации
Комментарии

Введите ваш Email

Отменить подписку

Продолжить

Популярные публикации:
Усилитель низкой частоты (УНЧ) на микросхеме 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

Вам также может понравиться