Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/Try/OpenGothic
Reimplementation of Gothic 2 Notr
https://github.com/Try/OpenGothic
gothic gothic2 remake rpg-engine vulkan
Last synced: about 1 month ago
JSON representation
Reimplementation of Gothic 2 Notr
- Host: GitHub
- URL: https://github.com/Try/OpenGothic
- Owner: Try
- License: mit
- Created: 2019-01-11T18:32:20.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2024-04-13T22:29:48.000Z (8 months ago)
- Last Synced: 2024-04-14T12:15:45.820Z (8 months ago)
- Topics: gothic, gothic2, remake, rpg-engine, vulkan
- Language: C++
- Homepage:
- Size: 24.9 MB
- Stars: 1,050
- Watchers: 44
- Forks: 76
- Open Issues: 69
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
- awesome-game-remakes - OpenGothic - Reimplementation of Gothic 2: Night of the Raven. (RPG)
- stars - Try/OpenGothic - Reimplementation of Gothic 2 Notr (C++)
README
## OpenGothic
Open source re-implementation of Gothic 2: Night of the Raven.Motivation: The original Gothic 1 and Gothic 2 are still great games, but it's not easy to make them work on modern systems.
The goal of this project is to make a feature complete Gothic game client compatible with the original game data and mods.----
[![Latest build](https://img.shields.io/github/release-pre/Try/opengothic?style=for-the-badge)](https://github.com/Try/opengothic/releases/latest)
[![](https://dcbadge.vercel.app/api/server/G9XvcFQnn6)](https://discord.gg/G9XvcFQnn6)![Screenshoot](scr0.png)
#### Work in progress
[![Build status](https://ci.appveyor.com/api/projects/status/github/Try/opengothic?svg=true)](https://ci.appveyor.com/project/Try/opengothic?branch=master)Development is focused on Gothic 2 and new features are not tested for Gothic 1 compatibility. While Gothic 1 is not officially supported pull requests that fix Gothic 1 — and general — bugs are welcome.
The original game has been replicated fully; you can complete both the main quest and the addon. Check out the [bugtracker](https://github.com/Try/OpenGothic/issues) for a list of known issues.
OpenGothic is designed to utilize features of modern graphic hardware and api's like mesh shaders or ray tracing. While mesh-shader not mandatory, yet don't expect OpenGothic to run well on low-end or outdated graphic cards.
#### Prerequisites
Gothic 2: Night of the Raven is required as OpenGothic does not provide any built-in game assets or scripts.
Supported systems are:
* Windows (DX12, Vulkan)
* Linux (Vulkan)
* MacOS (Metal)## How to play
### Windows
1. If not already done install Gothic. OpenGothic comes with auto-path detection if your Gothic files are in a common path.
* "C:\Program Files (x86)\JoWooD\Gothic II"
* "C:\Gothic II"
* "C:\Program Files (x86)\Steam\steamapps\common\Gothic II"
2. Download OpenGothic and extract into a folder of your choice. Available options are:
* A [Pre-Release](https://github.com/Try/opengothic/releases/latest) (recommended)
* Alternatively a recent test build from [CI](https://ci.appveyor.com/project/Try/opengothic/history?branch=master)
3. Run `Gothic2Notr.exe`.If nothing happens check `log.txt` and look for the line `invalid gothic path`. In this case OpenGothic fails to find your Gothic installation and you have to explicitly specify its location via `-g` paramter. Either you create a shortcut to `Gothic2Notr.exe` and change the target line in Properties to e.g.
`Gothic2Notr.exe -g "C:\Program Files (x86)\Steam\steamapps\common\Gothic II"`
or you can edit `Gothic2Notr.bat` and run this file instead.
### Linux
1. If not already done install Gothic via Wine/Proton or copy the game files from a Windows installation.
2. You can download a build from [CI](https://ci.appveyor.com/project/Try/opengothic/history?branch=master) and extract into a folder of your choice. Alternatively OpenGothic can be built manually. For Arch the [AUR](https://aur.archlinux.org/packages/opengothic) provides a 3rd party package.3. Run `Gothic2Notr.sh -g "~/PlayOnLinux's virtual drives/Gothic2_gog/drive_c/Gothic II"` (example path, use path to your Gothic installation instead)
You can edit `Gothic2Notr.sh` and change the line `exec "$DIR/Gothic2Notr" "$@"` to
`exec "$DIR/Gothic2Notr" "$@" -g "~/PlayOnLinux's virtual drives/Gothic2_gog/drive_c/Gothic II"`
to not have to enter path manually every time. Then run `Gothic2Notr.sh` without arguments to start.
### MacOS
1. If not already done install Gothic. Instructions how to obtain the game files can be found [here](https://macsourceports.com/faq#getgamedata). OpenGothic comes with auto-path detection if your Gothic files are in `"~/Library/Application Support/OpenGothic"`.
2. Download a build from [Mac Source Ports](https://macsourceports.com/game/gothic2) and follow the installation instructions given there.
Alternatively recent test builds are available from [CI](https://ci.appveyor.com/project/Try/opengothic/history?branch=master) that can be extracted into a folder of your choice. You can compile a fresh build as well.
3. Run `Gothic2Notr.sh`If OpenGothic fails to find your Gothic files you have to explicitly specify its location via `-g` parameter.
Change the line `exec "$DIR/Gothic2Notr" "$@"` to reflect your Gothic path e.g.`exec "$DIR/Gothic2Notr" "$@" -g "~/PlayOnLinux's virtual drives/Gothic2_gog/drive_c/Gothic II"`
---
### Modifications
Mods can be installed as usual. Provide the `modfile.ini` to OpenGothic via `-game:` parameter to play. Example:`Gothic2Notr.exe -game:Karibik.ini`
#### What's working?
Content mods (retexture/reworld/animations) that only rely on regular scripting and do not use memory hacking.#### What's not?
- Ikarus/LeGoThere are ongoing efforts to support parts of it to make at least some popular mods like `Chronicles of Myrtana` playable. Progress can be tracked in the corresponding [issue](https://github.com/Try/OpenGothic/issues/231). An explanantion how Ikarus works is given [here](https://github.com/Try/OpenGothic/discussions/396#discussioncomment-4823499).
- Union (32 bit and Windows only, [not possible](https://github.com/Try/OpenGothic/issues/195))
- DX11 Renderer - same as Union, but don't worry - OpenGothic has nice graphics out of the box
- AST sdk
- Ninja## Build Instructions
### Linux
Install dependencies:
* Ubuntu 20.04/22.04 and their derived distros
```bash
source <(cat /etc/os-release | grep UBUNTU_CODENAME)
# latest Vulkan SDK provided externally as Ubuntu packages are usually older
wget -qO - http://packages.lunarg.com/lunarg-signing-key-pub.asc | sudo apt-key add -
sudo wget -qO /etc/apt/sources.list.d/lunarg-vulkan-${UBUNTU_CODENAME}.list http://packages.lunarg.com/vulkan/lunarg-vulkan-${UBUNTU_CODENAME}.list
sudo apt update
sudo apt install vulkan-sdk# distro-provided packages
sudo apt install git cmake g++ glslang-tools libvulkan-dev libasound2-dev libx11-dev libxcursor-dev
```* Arch
```bash
sudo pacman -S git cmake gcc glslang vulkan-devel alsa-lib libx11 libxcursor vulkan-icd-loader libglvnd
```* Fedora
```bash
sudo dnf install git cmake gcc-c++ glslang vulkan-loader-devel alsa-lib-devel libX11-devel libXcursor-devel vulkan-validation-layers-devel libglvnd-devel
```#### Compilation
```bash
# 1st time build:
git clone --recurse-submodules https://github.com/Try/OpenGothic.git
cd OpenGothic
cmake -B build -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo
make -C build -j $(nproc)# following builds:
git pull --recurse-submodules
make -C build -j $(nproc)
```
Executables can be located at `OpenGothic/build/opengothic`.### MacOS
```bash
brew install glslang
git clone --recurse-submodules https://github.com/Try/OpenGothic.git
cd OpenGothic
cmake -H. -Bbuild -DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo
cmake --build ./build --target Gothic2Notr
```
Executables can be located at `OpenGothic/build/opengothic`.## Video
[![Video](https://img.youtube.com/vi/TpayMkyZ58Y/0.jpg)](https://www.youtube.com/watch?v=TpayMkyZ58Y)## Available Graphic options
Game menu in gothic is done by scripting. While orignal graphics settings do not apply to current-gen graphics, engine redefines meaning for some of tweakables:
* `Settings` -> `Extended configuration`
* `Cloud Shadows` mapped to SSAO.
* `Radial Fog` mapped to "Volumetric fog"
* `Reflections` reused, for screen space reflections
* `Settings` -> `Video settings`
* Internal rendering resolution, for 3D, can be altered here. UI and text is always rendered at full resolution.
* Application command line:
* Ray tracing: setting affects only capable hardware, off by default for igpu's, add `-rt 1` to enableRendering distance is not customizable.
## Command line arguments
| Argument(s) | Description |
| ---------------------- | ------- |
| `-g` | specify path containing Gothic game data |
| `-game:` | specify game modification manifest (GothicStarter compatibility) |
| `-nomenu` | skip main menu |
| `-devmode` | enable marvin-mode at start of the game |
| `-w ` | startup world; newworld.zen is default |
| `-save q` | load the quick save on start |
| `-save ` | load a specified save-game slot on start |
| `-v -validation` | enable validation layers for graphics api |
| `-dx12` | force DirectX 12 renderer instead of Vulkan (Windows only) |
| `-g1` | assume a Gothic 1 installation |
| `-g2c` | assume a Gothic 2 classic installation |
| `-g2` | assume a Gothic 2 night of the raven installation |
| `-rt ` | explicitly enable or disable ray-query |
| `-gi ` | explicitly enable or disable ray-traced global illumination |
| `-ms ` | explicitly enable or disable meshlets |
| `-aa ` | enable anti-aliasing (number = 1-2, 2 = most expensive AA) |
| `-window` | windowed debugging mode (not to be used for playing) |