GithubHelp home page GithubHelp logo

doytsujin / regoth Goto Github PK

View Code? Open in Web Editor NEW

This project forked from regoth-project/regoth

0.0 1.0 0.0 6.37 MB

OpenSource-Reimplementation of the zEngine, used by the game "Gothic"

License: GNU General Public License v3.0

Shell 0.50% C++ 92.14% Python 0.33% C 1.84% Java 0.51% Scala 0.24% SuperCollider 0.28% Makefile 0.41% CMake 3.74% Batchfile 0.01%

regoth's Introduction

REGoth Build status Build Status Gitter

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 for more information about the project!

A list showing the current state of the engine, can be found here.

Videos showing the current state

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:
git clone --recursive [email protected]:degenerated1123/REGoth.git
https:
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:

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, 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, 2017

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

$ sudo apt install libsndfile1-dev libasound2-dev
$ sudo apt install libxinerama-dev

Or on macOS

$ 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 run

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

Compiling REGoth

Then:

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

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

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:

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 [<teleporter:default=player>] <target>: Teleport NPC teleporter (= player if none is given) to NPC target
      • goto waypoint <waypoint>: Teleport player to waypoint
      • kill [<npc>]: Kill npc or a nearby NPC if none is given
      • knockout [<npc>]: Knockout npc or a nearby NPC if none is given
      • save <slotindex>: Save the game to the given slot
      • load <slotindex>: Load the game from the given slot
      • switchlevel <zenfile>: Switch to an other level in current session
      • usemana <amount>: Use mana
      • hurtself <amount>: Hurt yourself
      • set clock <hour> [<min:default=0>]: Set time of day to hour:min
      • control <npc>: Take control over npc

Development

If you want to help out and don't know where to start, I suggest reading the wiki-page, 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

regoth's People

Contributors

ataulien avatar markusobi avatar frabert avatar astillich avatar commanderjax avatar noahndertaler avatar kukunin avatar hunterwolfat avatar kaffeine avatar versable avatar jangernert avatar aaeberharter avatar kapitaenzufall avatar rose27 avatar ousnius avatar leinnan avatar kirmesbude avatar drako avatar pljohnny avatar mdrost avatar chaosmarc avatar v-maluka avatar benjaminfoo avatar devnexen avatar mormund avatar hhirsch avatar oortjacek avatar lubieerror avatar mplucinski avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.