1 points par GN⁺ 2024-08-24 | 1 commentaires | Partager sur WhatsApp

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 --engineversion remplace 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, SurrealEditor et SurrealDebugger sont générés dans le dossier build

  • 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

 
GN⁺ 2024-08-24
Commentaires Hacker News
  • Quake III a été porté sur le web avec l’ajout du multijoueur et du support mobile

    • Unreal Tournament aussi devait être porté, mais ce n’est pas encore dans un état vraiment jouable
    • Ce serait bien qu’Epic publie ses anciennes versions sous GPL, comme id Software
    • Serious Sam est envisagé comme prochain projet à la place d’UT
    • Serious Engine est open source et il existe déjà un port web (sans multijoueur)
  • Je pensais que ce projet ressemblait à celui qui fait tourner des jeux UE1 dans UE5

    • En réalité, c’est le même projet, renommé Surreal lors de la DXU24
    • Un frontend open source a aussi été ajouté
    • Le développeur a mis en ligne plusieurs vidéos WIP sur YouTube
  • Ce projet me réjouit énormément et me rappelle beaucoup de souvenirs

    • Merci pour ce travail d’archivage du jeu vidéo
  • Unreal Tournament 99 et Deus Ex comptent parmi mes meilleurs souvenirs de jeu

    • Ce projet est très ambitieux, et c’est agréable de voir que les anciens jeux suscitent encore de l’amour
    • J’espère toujours un remake de Deus Ex
  • 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

    mkdir -p ~/.ut2004/; sudo docker run -it --rm -e DISPLAY=$DISPLAY -e XDG_RUNTIME_DIR=$XDG_RUNTIME_DIR -e HOME=/ --network=host -v /tmp/.X11-unix/X0:/tmp/.X11-unix/X0 -v /run/user/$UID:/run/user/$UID -v ~/.ut2004/:/.ut2004/ --user $UID:$UID --privileged --name ut2004 ikuinen.earth:5000/ut2004
    
  • Je me demande combien de temps de développement il faudrait pour réécrire Quake/Unreal depuis zéro

    • Ce n’est pas un port, mais une réécriture complète avec un moteur sur mesure
  • UT99 me manque énormément, et je n’apprécie pas autant les FPS modernes