SurrealEngine: reimplementación open source de Unreal Engine capaz de ejecutar UT99
(github.com/dpjudas)Surreal Engine
El objetivo de este proyecto es reimplementar el código original de UnrealEngine para poder jugar mapas de Unreal Tournament (UT99).
Estado actual
- El motor puede cargar y renderizar mapas
- La VM de Unrealscript está casi terminada, pero los arreglos y la ejecución condicional en red aún no están implementados
- Intenta cargar todos los actores del nivel e inicializar el mapa
- Los menús y el HUD aparecen, pero muchas funciones nativas aún no están implementadas
- Algunos eventos podrían no funcionar correctamente y pueden producirse excepciones al interactuar
Actualmente, SurrealEngine puede detectar los siguientes juegos de UE1:
- 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 y v3.5.0 - se ejecuta en motores UT436 y UT469)
- Wheel of Time (v333)
De la lista anterior, solo Unreal Tournament v436 y Unreal Gold v226 están en un estado relativamente jugable. Ejecutar otros juegos puede provocar cierres inesperados.
Unreal Tournament v436
- El juego inicia, las opciones del menú funcionan y se pueden jugar partidas con bots
- La IA de los bots es casi inexistente y faltan funciones en algunos mapas (por ejemplo, la pantalla de "X va liderando la partida" en DM-Morpheus no funciona)
Unreal Gold v226
- El juego inicia y la mayoría de las opciones del menú funcionan
- Se pueden jugar mapas para un jugador y partidas con bots
- La IA se comporta de forma similar a la de UT
- Los modelos de objetos de Return to Na Pali se ven corruptos
Deus Ex v1112fm
- Solo funciona el flyby de introducción
- No se detecta la entrada de teclado ni mouse (Deus Ex maneja la entrada de forma distinta a Unreal/UT)
Parámetros de línea de comandos
SurrealEngine [--url=<mapname>] [--engineversion=X] [ruta de la carpeta del juego]
- Es posible copiar el ejecutable de SurrealEngine a la carpeta System de un juego UE1 y ejecutarlo
- Si no se especifica la carpeta del juego, el motor busca en el registro (solo Windows) las claves establecidas por Epic
- Si no se especifica una URL, usa la URL predeterminada del archivo ini (por defecto, el mapa de introducción)
- El argumento
--engineversionsobrescribe la versión interna detectada por el motor y solo debe usarse con fines de depuración
Instrucciones de compilación en Windows
- Compilar el proyecto con CMake
- Se requiere la versión más reciente de Visual Studio y un compilador MSVC compatible con C++17
- SDL2 es una dependencia opcional que debe proporcionarse localmente (descarga la versión Visual C++ de SDL2 y apunta a esa carpeta en la configuración de CMake)
- No hay otras dependencias externas de terceros
Instrucciones de compilación en Linux
- Compilar el proyecto con CMake
- Introducir los siguientes comandos en orden para compilar:
git clone https://github.com/dpjudas/SurrealEngine.git
cd SurrealEngine
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j 16
-
Si la compilación termina correctamente, se crearán los ejecutables
SurrealEngine,SurrealEditorySurrealDebuggeren la carpetabuild -
Se requieren los siguientes paquetes de desarrollo:
- cmake
- g++
- pthreads
- dl
- alsa (libasound2)
- SDL2
- waylandpp (opcional, binding de C++ para Wayland, usado en el backend Wayland de ZWidget)
-
En Linux, SDL2 es obligatorio y SurrealEngine lo utiliza para funciones de ventana y soporte nativo de Wayland (
SDL_VIDEODRIVER=wayland)
Resumen de GN⁺
- Surreal Engine es un proyecto que reimplementa el código original de UnrealEngine para poder jugar mapas de Unreal Tournament (UT99)
- Actualmente, solo Unreal Tournament v436 y Unreal Gold v226 están en un estado relativamente jugable; otros juegos pueden provocar cierres inesperados
- Puede compilarse en Windows y Linux con CMake, y requiere algunas dependencias como SDL2
- Este proyecto permite volver a jugar títulos antiguos en sistemas modernos y puede resultar interesante para desarrolladores e ingenieros de videojuegos
- Un proyecto con funciones similares es OpenRA, un motor de juego de código abierto
1 comentarios
Comentarios en Hacker News
Portaron Quake III a la web y le agregaron multijugador y soporte móvil
Pensé que este proyecto era similar al que hospeda juegos de UE1 en UE5
Este proyecto me pone muy feliz y me trae muchos recuerdos
Unreal Tournament 99 y Deus Ex son de mis recuerdos de videojuegos más felices
Epic podría abrir el código del motor original, como hizo id Software
Otro desarrollador está trabajando en Surreal 98 para poder jugar títulos de UE1 en UE5 con VR, mods y funciones modernas
Recomiendo el "Epic Unreal Megaspecial" de Civvie 11
Dockericé Unreal Tournament 2004 y funciona bien en Linux x86_64
Me pregunto cuánto tiempo de desarrollo tomaría reescribir Quake/Unreal desde cero
Extraño muchísimo UT99 y no me gustan tanto los FPS modernos