SurrealEngine : réimplémentation open source d’Unreal Engine capable de faire tourner UT99
(github.com/dpjudas)Surreal Engine
L’objectif de ce projet est de réimplémenter le code source d’UnrealEngine afin de pouvoir jouer aux cartes d’Unreal Tournament (UT99).
État actuel
- Le moteur peut charger et afficher les cartes
- La VM Unrealscript est presque terminée, mais les tableaux et l’exécution conditionnelle réseau ne sont pas encore implémentés
- Il tente de charger tous les acteurs de niveau et d’initialiser la carte
- Les menus et le HUD s’affichent, mais de nombreuses fonctions natives ne sont pas encore implémentées
- Certains événements peuvent ne pas fonctionner correctement, et des exceptions peuvent se produire lors des interactions
Actuellement, SurrealEngine peut détecter les jeux UE1 suivants :
- 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 and v3.5.0 - fonctionne sur les moteurs UT436 et UT469)
- Wheel of Time (v333)
Dans la liste ci-dessus, seuls Unreal Tournament v436 et Unreal Gold v226 sont dans un état relativement jouable. Lancer les autres jeux peut provoquer des plantages.
Unreal Tournament v436
- Le jeu démarre, les options de menu fonctionnent et il est possible de jouer des parties contre des bots
- L’IA des bots est quasiment absente, et certaines fonctions de certaines cartes sont manquantes (par ex. l’écran "X mène la partie" de DM-Morpheus ne fonctionne pas)
Unreal Gold v226
- Le jeu démarre et la plupart des options de menu fonctionnent
- Il est possible de jouer aux cartes solo et à des parties contre des bots
- L’IA se comporte de manière similaire à celle d’UT
- Les modèles d’objets de Return to Na Pali s’affichent de manière corrompue
Deus Ex v1112fm
- Seul le survol d’introduction fonctionne
- Les entrées clavier et souris ne sont pas détectées (Deus Ex gère les entrées différemment d’Unreal/UT)
Paramètres de ligne de commande
SurrealEngine [--url=<mapname>] [--engineversion=X] [chemin du dossier du jeu]
- Il est possible de copier l’exécutable SurrealEngine dans le dossier System d’un jeu UE1 puis de l’exécuter
- Si aucun dossier de jeu n’est spécifié, le moteur recherche dans le registre (Windows uniquement) les clés définies par Epic
- Si aucune URL n’est spécifiée, l’URL par défaut du fichier ini est utilisée (par défaut, la carte d’introduction)
- L’argument
--engineversionremplace la version interne détectée par le moteur et ne doit être utilisé qu’à des fins de débogage
Instructions de build pour Windows
- Construire le projet avec CMake
- Nécessite la dernière version de Visual Studio et un compilateur MSVC prenant en charge le C++17
- SDL2 est une dépendance optionnelle qui doit être fournie localement (téléchargez la version Visual C++ de SDL2 et indiquez ce dossier dans la configuration CMake)
- Aucune autre dépendance tierce externe
Instructions de build pour Linux
- Construire le projet avec CMake
- Saisir les commandes suivantes dans l’ordre pour compiler :
git clone https://github.com/dpjudas/SurrealEngine.git
cd SurrealEngine
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j 16
-
Si la compilation se termine avec succès, les exécutables
SurrealEngine,SurrealEditoretSurrealDebuggersont générés dans le dossierbuild -
Les paquets de développement suivants sont nécessaires :
- cmake
- g++
- pthreads
- dl
- alsa (libasound2)
- SDL2
- waylandpp (optionnel, bindings C++ de Wayland, utilisés par le backend Wayland de ZWidget)
-
Sous Linux, SDL2 est requis, et SurrealEngine l’utilise pour les fonctionnalités de fenêtrage ainsi que pour la prise en charge native de Wayland (
SDL_VIDEODRIVER=wayland)
Résumé de GN⁺
- Surreal Engine est un projet qui réimplémente le code source d’UnrealEngine afin de permettre de jouer aux cartes d’Unreal Tournament (UT99)
- À ce stade, seuls Unreal Tournament v436 et Unreal Gold v226 sont relativement jouables, et les autres jeux peuvent provoquer des plantages
- Le projet peut être compilé sous Windows et Linux avec CMake, avec quelques dépendances comme SDL2
- Ce projet permet de rejouer à d’anciens jeux sur des systèmes modernes et peut intéresser les développeurs de jeux et les ingénieurs
- Parmi les projets aux fonctionnalités similaires, on peut citer des moteurs de jeu open source comme OpenRA
1 commentaires
Commentaires Hacker News
Quake III a été porté sur le web avec l’ajout du multijoueur et du support mobile
Je pensais que ce projet ressemblait à celui qui fait tourner des jeux UE1 dans UE5
Ce projet me réjouit énormément et me rappelle beaucoup de souvenirs
Unreal Tournament 99 et Deus Ex comptent parmi mes meilleurs souvenirs de jeu
Epic pourrait open sourcer le moteur d’origine, comme id Software
Un autre développeur travaille sur Surreal 98, qui permet de jouer à des jeux UE1 dans UE5 avec VR, mods et fonctionnalités modernes
Je recommande le "Epic Unreal Megaspecial" de Civvie 11
J’ai dockerisé Unreal Tournament 2004, et il fonctionne bien sous Linux x86_64
Je me demande combien de temps de développement il faudrait pour réécrire Quake/Unreal depuis zéro
UT99 me manque énormément, et je n’apprécie pas autant les FPS modernes