SurrealEngine: Open-Source-Neuimplementierung der Unreal Engine, mit der UT99 spielbar ist
(github.com/dpjudas)Surreal Engine
Ziel dieses Projekts ist es, den Originalcode der Unreal Engine neu zu implementieren, damit sich Maps von Unreal Tournament (UT99) spielen lassen.
Aktueller Status
- Die Engine kann Maps laden und rendern
- Die Unrealscript-VM ist fast fertig, aber Arrays und netzwerkbedingte Ausführung sind noch nicht implementiert
- Es wird versucht, alle Level-Actors zu laden und die Map zu initialisieren
- Menüs und HUD werden angezeigt, aber viele native Funktionen sind noch nicht implementiert
- Einige Ereignisse funktionieren möglicherweise nicht korrekt, und bei Interaktionen können Ausnahmen auftreten
Derzeit kann SurrealEngine die folgenden UE1-Spiele erkennen:
- Unreal Tournament (v436, v451b, v469(a, b, c, d))
- Unreal (v200, v209, v220, v224v, v225f, v226f)
- Unreal Gold (v226b, v227(i, j, k_11))
- Deus Ex (v1002f, v1112fm)
- Klingon Honor Guard (219)
- NERF Arena Blast (v300)
- TNN Outdoors Pro Hunter (v200)
- Rune Classic (v1.10)
- Clive Barker's Undying (v420)
- Tactical-Ops: Assault on Terror (v3.4.0 und v3.5.0 – läuft auf UT436- und UT469-Engines)
- Wheel of Time (v333)
Von der obigen Liste sind nur Unreal Tournament v436 und Unreal Gold v226 in einem relativ spielbaren Zustand. Beim Start anderer Spiele kann es zu Abstürzen kommen.
Unreal Tournament v436
- Das Spiel startet, Menüoptionen funktionieren, und Bot-Matches sind spielbar
- Die KI der Bots ist kaum vorhanden, und in einigen Maps fehlen Funktionen (z. B. funktioniert in DM-Morpheus der Bildschirm „X führt das Match“ nicht)
Unreal Gold v226
- Das Spiel startet, und die meisten Menüoptionen funktionieren
- Singleplayer-Maps und Bot-Matches sind spielbar
- Die KI verhält sich ähnlich wie in UT
- Objektmodelle in Return to Na Pali werden fehlerhaft dargestellt
Deus Ex v1112fm
- Nur der Intro-Flyby funktioniert
- Tastatur- oder Mauseingaben werden nicht erkannt (Deus Ex verarbeitet Eingaben anders als Unreal/UT)
Kommandozeilenparameter
SurrealEngine [--url=<mapname>] [--engineversion=X] [Pfad zum Spielordner]
- Die SurrealEngine-Programmdatei kann in den System-Ordner eines UE1-Spiels kopiert und dort ausgeführt werden
- Wenn kein Spielordner angegeben ist, sucht die Engine in der Registry (nur Windows) nach den von Epic gesetzten Registry-Schlüsseln
- Wenn keine URL angegeben ist, wird die Standard-URL aus der ini-Datei verwendet (standardmäßig die Intro-Map)
- Das Argument
--engineversionüberschreibt die von der Engine erkannte interne Version und sollte nur zu Debugging-Zwecken verwendet werden
Build-Anleitung für Windows
- Das Projekt wird mit CMake gebaut
- Erforderlich sind die neueste Version von Visual Studio und ein MSVC-Compiler mit Unterstützung für C++17
- SDL2 ist eine optionale Abhängigkeit und muss lokal bereitgestellt werden (die Visual-C++-Version von SDL2 herunterladen und in der CMake-Konfiguration auf diesen Ordner verweisen)
- Darüber hinaus gibt es keine externen Third-Party-Abhängigkeiten
Build-Anleitung für Linux
- Das Projekt wird mit CMake gebaut
- Zum Build die folgenden Befehle der Reihe nach eingeben:
git clone https://github.com/dpjudas/SurrealEngine.git
cd SurrealEngine
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j 16
-
Wenn die Kompilierung erfolgreich abgeschlossen ist, werden im Ordner
builddie ausführbaren DateienSurrealEngine,SurrealEditorundSurrealDebuggererzeugt -
Folgende Entwicklungspakete werden benötigt:
- cmake
- g++
- pthreads
- dl
- alsa (libasound2)
- SDL2
- waylandpp (optional, die C++-Bindings für Wayland, verwendet im Wayland-Backend von ZWidget)
-
Unter Linux ist SDL2 erforderlich; SurrealEngine nutzt es für Fensterfunktionen und native Wayland-Unterstützung (
SDL_VIDEODRIVER=wayland)
Zusammenfassung von GN⁺
- Surreal Engine ist ein Projekt, das den Originalcode der Unreal Engine neu implementiert, damit sich Maps von Unreal Tournament (UT99) spielen lassen
- Derzeit sind nur Unreal Tournament v436 und Unreal Gold v226 in einem relativ spielbaren Zustand; bei anderen Spielen kann es zu Abstürzen kommen
- Der Build ist unter Windows und Linux mit CMake möglich und erfordert einige Abhängigkeiten wie SDL2
- Das Projekt ermöglicht es, alte Spiele auf modernen Systemen erneut zu spielen, und könnte für Spieleentwickler und Engineers interessant sein
- Ein Projekt mit ähnlicher Funktionalität ist etwa die Open-Source-Game-Engine OpenRA
1 Kommentare
Hacker-News-Kommentare
Quake III wurde ins Web portiert und um Multiplayer- sowie Mobile-Unterstützung erweitert
Ich dachte, dieses Projekt sei ähnlich zu dem Projekt, das UE1-Spiele in UE5 hostet
Dieses Projekt freut mich sehr und weckt viele Erinnerungen
Unreal Tournament 99 und Deus Ex gehören zu meinen schönsten Spielerinnerungen
Epic könnte wie id Software die ursprüngliche Engine Open Source machen
Ein anderer Entwickler arbeitet an Surreal 98, das UE1-Spiele mit VR, Mods und modernen Funktionen in UE5 spielbar machen soll
Ich empfehle Civvie 11s "Epic Unreal Megaspecial"
Ich habe Unreal Tournament 2004 dockerisiert, und es läuft gut auf Linux x86_64
Ich frage mich, wie viel Entwicklungszeit es kosten würde, Quake/Unreal von Grund auf neu zu schreiben
Ich vermisse UT99 sehr und mag moderne FPS-Spiele nicht annähernd so sehr