Skip to content

dpjudas/SurrealEngine

Repository files navigation

SEBANNER

Welcome to Surreal Engine!

Surreal Engine is a project that aims to reimplement the original Unreal Engine; currently focused on making Unreal (Gold) and Unreal Tournament (UT99) playable. The scope of this project might expand to cover more UE1 games in the future.

Current status

Please refer to Status.md for the current status of Surreal Engine!

System requirements

  • Original copies of the UE1 games you want to run
  • Windows 10+ or a modern Linux distro
  • A Direct3D 11 or Vulkan capable graphics card

Downloads

Nightly builds are available on the Releases section. Just download the zip file for your OS, and either:

  • extract everything to the system folder of the UE1 game you want to play and run the SurrealEngine executable.

or

  • extract it to anywhere you want and provide the path of the UE1 game you want to play as a parameter (see "Command line parameters" section below).

Additionally, Surreal Engine is available on following Linux distributions:

Discord server

Visit us on Discord at https://discord.gg/5AEry4s

Command line parameters

SurrealEngine [--url=<mapname>] [--engineversion=X] [Path to game folder]

If no game folder is specified, and the executable isn't in a System folder, the engine will search the registry (Windows only) for the registry keys Epic originally set.

If no URL is specified it will use the default URL in the ini file (per default the intro map).

The --engineversion argument overrides the internal version detected by the engine and should only be used for debugging purposes.

Building Surreal Engine

Windows

Use CMake to build the project. A recent version of Visual Studio, and MSVC compiler that supports C++20 is required.

On Windows, SDL2 is an optional dependency that you need to supply locally yourself (download the Visual C++ version of SDL2, extract it somewhere and point to that folder in CMake settings). Supplying SDL2 will allow you to use it as an alternative windowing system.

Other than that there are no other external third party dependencies.

Linux

Use CMake to build the project. You're gonna need the development versions of the following packages:

  • cmake
  • g++
  • pthreads
  • dl
  • alsa (libasound2)
  • SDL2 (Optional - Used on ZWidget SDL2 backend)
  • waylandpp (Optional - C++ bindings for Wayland, used on ZWidget Wayland backend)

Note

On some distros, SDL2 is replaced by SDL3, so you'll probably need the devel package for the compat library on these instead.

Note

These packages won't always have the exact names given above, as it can change from distro to distro. In general, if you get an include error that looks like it is trying to include something external, then you are probably missing the dev package for that library. :)

Installing the prerequisite packages

Ubuntu

# apt install cmake g++ libasound-dev libopenal-dev libdbus-1-dev libsdl2-dev libxkbcommon-dev waylandpp-dev

Arch Linux

# pacman -S libx11 gcc git cmake sdl2 alsa-lib waylandpp

Fedora

# dnf install libX11 libX11-devel libxkbcommon libxkbcommon-devel SDL2-devel openal-soft-devel alsa-lib-devel waylandpp waylandpp-devel

After installing prerequisites

Once you've installed all prerequisites, enter these commands in the given order from the folder you want to clone the repo to:

git clone https://github.com/dpjudas/SurrealEngine.git
cd SurrealEngine
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j 16

When compilation is successfully finished, build folder should contain these 3 executables: SurrealEngine, SurrealEditor and SurrealDebugger

About

Unreal Tournament Engine Reimplementation

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages