OpenSource-реализация zEngine, используемого в играх «Gothic» и «Gothic II».
Проект перезапущен. Вот новый репозиторий: https://github.com/REGoth-project/REGoth-bs.
Не забудьте посетить REGoth-Wiki для получения дополнительной информации о проекте!
Список, показывающий текущее состояние двигателя, можно найти здесь.
Версия 0.4 (Windows) : https://github.com/REGoth-project/REGoth/releases/tag/0.4.
Версия 0.4 (Android) : https://github.com/REGoth-project/REGoth/releases/tag/0.4-android.
Автоматизированные ночные сборки: https://github.com/degenerated1123/REGoth/releases.
Обязательно клонируйте этот репозиторий с флагом --recursive
:
git clone --recursive [email protected]:degenerated1123/REGoth.git
git clone --recursive https://github.com/degenerated1123/REGoth.git
Чтобы обновить репо, вам необходимо также обновить подмодули. Вместо того, чтобы просто извлекать репозиторий, вы можете сделать:
git pull --recurse-submodules
Примечание. Если вам не хватает пакетов или у вас возникли проблемы со сборкой на вашей платформе, вы можете посетить эту вики-страницу, которая может содержать более подробные инструкции. Если вы не найдете там своей платформы, я бы попросил вас добавить на эту вики-страницу несколько инструкций для других людей!
Вам понадобится CMake (3.1 или новее) и компилятор с поддержкой C++14. В настоящее время поддерживаются/проверяются:
Вам также понадобится копия libsndfile
установленная на вашем компьютере.
libsndfile
и libxinerama
В большинстве систем *nix это можно получить с помощью менеджера пакетов, например в Debian/Ubuntu:
$ sudo apt install libsndfile1-dev libasound2-dev
$ sudo apt install libxinerama-dev
Или на macOS
$ brew install libsndfile # Needs Homebrew
libsndfile
необходимо будет скомпилировать отдельно. Создайте каталог где-нибудь в вашей системе для хранения скомпилированных файлов, затем запустите
mkdir build-libsndfile
cd build-libsndfile
cmake -D CMAKE_INSTALL_PREFIX=compiled/files/folder path/to/REGoth/lib/libdmusic/utils/dls2sf/lib/libsndfile
cmake --build . --target install --config Release
Затем:
cd path/to/REGoth
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release .. # On *nix systems this is sufficient
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=compiled/files/folder .. # On Windows
Если CMake жалуется на отсутствие файла CMakeLists.txt в некоторых папках, скорее всего, вы забыли клонировать с флагом
--recursive
! Просто выполнитеgit submodule update --init --recursive
, и все должно работать.
Затем выберите в зависимости от вашей ОС:
make -j4
Начиная с Visual Studio 2017, вы можете использовать встроенную функцию cmake, чтобы открыть клонированную папку.
Подробнее об этом читайте в статье «Как создать вики-страницу».
В предыдущих версиях Visual Studio откройте созданный REGoth.sln
и выполните сборку как обычно.
Альтернативно вы можете запустить эту команду внутри папки сборки:
cmake --build . --config release
Скомпилированные файлы находятся в каталоге build/bin
.
Обязательно скопируйте папку content/shaders
в рабочий каталог скомпилированного REGoth
-Executable. Затем запустите программу со следующими флагами:
REGoth -g " path/to/gothic1or2 " -w startworld.zen
Где path/to/gothic1or2
указывает на корень установки Gothic I или II, а startworld.zen
— это один из файлов Zen, находящихся в файлах .vdf
в каталоге data/
игры. Например: newworld.zen
или addonworld.zen
для Gothic II.
Рекомендуется запускать это из командной строки, чтобы увидеть отладочный вывод программы.
Кроме того, чтобы просмотреть список возможных команд, запустите REGoth --help
.
tp [<teleporter:default=player>] <target>
: телепортирует teleporter
NPC (= игрока, если ни один не указан) к target
NPC.goto waypoint <waypoint>
: Телепортировать игрока к waypoint
kill [<npc>]
: убить npc
или ближайшего NPC, если ни один не указан.knockout [<npc>]
: нокаутирует npc
или ближайшего NPC, если ничего не указано.save <slotindex>
: сохранить игру в указанный слот.load <slotindex>
: загрузить игру из указанного слота.switchlevel <zenfile>
: переключиться на другой уровень в текущем сеансе.usemana <amount>
: использовать ману.hurtself <amount>
: причинить себе вредset clock <hour> [<min:default=0>]
: установите время дня в hour
: min
control <npc>
: взять под контроль npc
Если вы хотите помочь и не знаете, с чего начать, я предлагаю прочитать вики-страницу, содержащую информацию о компоновке движка и списки недостающих функций (хотя пока нет!).
Готика 1 — Внешний мир: REGoth -g "path/to/gothic1" -w world.zen
Готика 1 — Oldmine: REGoth -g "path/to/gothic1" -w oldmine.zen
Готика 1 — Freemine: REGoth -g "path/to/gothic1" -w freemine.zen
Готика 1 — Кладбище орков: REGoth -g "path/to/gothic1" -w orcgraveyard.zen
Готика 1 — Спящий храм: REGoth -g "path/to/gothic1" -w orctempel.zen
Готика 2 - Внешний мир: REGoth -g "path/to/gothic2" -w newworld.zen
Готика 2 - Долина шахт: REGoth -g "path/to/gothic2" -w oldworld.zen
Готика 2 - Addonworld: REGoth -g "path/to/gothic2" -w addonworld.zen
Готика 2 - Остров Драконов: REGoth -g "path/to/gothic2" -w dragonisland.zen