Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/REGoth-project/REGoth
OpenSource-Reimplementation of the zEngine, used by the game "Gothic"
https://github.com/REGoth-project/REGoth
cpp engine gothic gothic2 reimplementation
Last synced: 3 months ago
JSON representation
OpenSource-Reimplementation of the zEngine, used by the game "Gothic"
- Host: GitHub
- URL: https://github.com/REGoth-project/REGoth
- Owner: REGoth-project
- License: gpl-3.0
- Created: 2016-06-05T22:35:35.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2019-04-18T16:49:48.000Z (about 5 years ago)
- Last Synced: 2024-02-07T20:40:38.089Z (5 months ago)
- Topics: cpp, engine, gothic, gothic2, reimplementation
- Language: C++
- Homepage:
- Size: 6.22 MB
- Stars: 621
- Watchers: 99
- Forks: 63
- Open Issues: 88
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Lists
- awesome - REGoth - OpenSource-Reimplementation of the zEngine, used by the game "Gothic" (C++)
README
# REGoth [![Build status](https://ci.appveyor.com/api/projects/status/50yputp2qe764sg2/branch/master?svg=true)](https://ci.appveyor.com/project/degenerated1123/regoth) [![Build Status](https://travis-ci.org/REGoth-project/REGoth.svg?branch=master)](https://travis-ci.org/REGoth-project/REGoth) [![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/REGoth/Lobby)
OpenSource-Reimplementation of the zEngine, used by the game "Gothic" and "Gothic II".# Attention!
**The project has been restarted. Here is the new repository: https://github.com/REGoth-project/REGoth-bs**Don't forget to check out the [REGoth-Wiki](../../wiki) for more information about the project!
A list showing the current state of the engine, can be found [here](../../wiki/state).
### Videos showing the current state
* Release-Commentary to V0.4:
* https://www.youtube.com/watch?v=DX92f8CrjrE
* Release-Commentary to V0.3:
* https://www.youtube.com/watch?v=EjEpN3I8Ovc
* Release-Commentary to V0.2:
* https://www.youtube.com/watch?v=jB3pzxd6vIk
* Release-Commentary to V0.1.1:
* https://www.youtube.com/watch?v=heg49o78Ii4
* Dialogs, Audio, NPC script-states:
* https://www.youtube.com/watch?v=R3F4WY6A060
* Day/Night-Cycle and Fighting-animations:
* https://www.youtube.com/watch?v=Z1mlI9qxkzc
* First showcase:
* https://www.youtube.com/watch?v=8bLAGttYYpY# Download (Latest stable version)
**Version 0.4 (Windows)**: https://github.com/REGoth-project/REGoth/releases/tag/0.4
**Version 0.4 (Android)**: https://github.com/REGoth-project/REGoth/releases/tag/0.4-android
Automated nightly builds: https://github.com/degenerated1123/REGoth/releases
# Source
Make sure to clone this repository with the `--recursive` flag:##### ssh:
```sh
git clone --recursive [email protected]:degenerated1123/REGoth.git
```##### https:
```sh
git clone --recursive https://github.com/degenerated1123/REGoth.git
```To update the repo, you need to make sure to update the submodules as well. Instead of simply pulling the repository, you can do:
```sh
git pull --recurse-submodules
```# Building
> Note: If you are missing packages or are having trouble building on your platform, you can check out this [wiki-page](../../wiki/how-to-build), which may contain more detailed instructions.
> If you don't find your platform there, I'd kindly ask you to add some instructions for other people to that wiki-page!You will need CMake (3.1 or newer) and a C++14-capable compiler.
Currently supported/tested are:
- GCC (6.x)
- MinGW
- Visual Studio 2015, 2017You will also need a copy of `libsndfile` installed on your computer.
## Obtaining `libsndfile` and `libxinerama`
### *nix systems (Linux, BSD, macOS)
On most *nix systems, this can be obtained using a package manager, for example on Debian/Ubuntu:```sh
$ sudo apt install libsndfile1-dev libasound2-dev
$ sudo apt install libxinerama-dev
```Or on macOS
```sh
$ brew install libsndfile # Needs Homebrew
```### Windows
`libsndfile` will need to be compiled separately. Create a directory somewhere on your system to store the compiled files, then runmkdir 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## Compiling REGoth
Then:
```sh
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
```
> If CMake complains about some folders missing a CMakeLists.txt, you most likely forgot to clone with the `--recursive`-flag!
> Simple do `git submodule update --init --recursive` and it should work.Then, choose depending on your OS:
### Linux, MacOS and other *nix
```sh
make -j4
```### Windows
Starting Visual Studio 2017 you can use the integrated cmake functionality to open the cloned folder.
Check out the [how to build wiki page](../../wiki/how-to-build) for details on this.For previous versions of Visual Studio, open the generated `REGoth.sln` and build as usual.
Alternatively, you may run this command inside of the build folder:
```sh
cmake --build . --config release
```# Running
The compiled files are inside the `build/bin` directory.Make sure to copy the `content/shaders` folder to the working directory of the compiled `REGoth`-Executable.
Then, run the program with the following flags:
```sh
REGoth -g "path/to/gothic1or2" -w startworld.zen
```Where `path/to/gothic1or2` points to the root of a Gothic I or II installation and `startworld.zen` is one of the Zen-Files found in a `.vdf`-files in the games `data/`-directory. For example: `newworld.zen` or `addonworld.zen` for Gothic II.
> It is recommended to run this from the commandline, to see the debug-output of the program.
Additionally, for a list of possible commands, run `REGoth --help`.
# Controls
* Movement: WASD/QE or arrow-keys (Space or Shift to run faster)
* Actions: Left CTRL for everything
* Menus: B for status-screen
* Console: F10
* Available commands (square brackets mean optional argument):
* `tp [] `: Teleport NPC `teleporter` (= player if none is given) to NPC `target`
* `goto waypoint `: Teleport player to `waypoint`
* `kill []`: Kill `npc` or a nearby NPC if none is given
* `knockout []`: Knockout `npc` or a nearby NPC if none is given
* `save `: Save the game to the given slot
* `load `: Load the game from the given slot
* `switchlevel `: Switch to an other level in current session
* `usemana `: Use mana
* `hurtself `: Hurt yourself
* `set clock []`: Set time of day to `hour`:`min`
* `control `: Take control over `npc`
# DevelopmentIf you want to help out and don't know where to start, I suggest reading the [wiki-page](../../wiki), which contains information about the engine-layout and lists of which features are missing (Not yet, though!).
### Examples
**Gothic 1 - Overworld:** `REGoth -g "path/to/gothic1" -w world.zen`**Gothic 1 - Oldmine:** `REGoth -g "path/to/gothic1" -w oldmine.zen`
**Gothic 1 - Freemine:** `REGoth -g "path/to/gothic1" -w freemine.zen`
**Gothic 1 - Orc graveyard:** `REGoth -g "path/to/gothic1" -w orcgraveyard.zen`
**Gothic 1 - Sleeper temple:** `REGoth -g "path/to/gothic1" -w orctempel.zen`
**Gothic 2 - Overworld:** `REGoth -g "path/to/gothic2" -w newworld.zen`
**Gothic 2 - Valley of mines:** `REGoth -g "path/to/gothic2" -w oldworld.zen`
**Gothic 2 - Addonworld:** `REGoth -g "path/to/gothic2" -w addonworld.zen`
**Gothic 2 - Dragonisland:** `REGoth -g "path/to/gothic2" -w dragonisland.zen`