Installation de UFO : Alien Invasion

UFO: Alien Invasion

Jeu de stratégie tactique au tour par tour, open source (GPL). Voir le wiki pour la documentation générale du projet et des données de jeu.

Ce fichier documente la compilation sur cette machine (Ubuntu 24.04 / GCC récent / Binutils 2.42) — voir ANALYSE.md pour le détail des problèmes rencontrés et corrigés en portant le projet vers ce toolchain.

Paquets système requis

En plus des dépendances habituelles du projet (SDL, SDL_mixer, SDL_ttf, libpng, libjpeg, zlib, gettext, etc.), cette machine nécessite en plus :

sudo apt install libiberty-dev

libiberty.a est requis pour lier ufo, ufoded et testall (support de stacktrace via libbfd, cf. src/shared/bfd.cpp). Sans ce paquet, l'édition de liens échoue avec ne peut pas trouver -liberty.

binutils-dev (pour bfd.h) et libcunit1-dev (pour CUnit/Basic.h, requis par make testall) doivent aussi être installés, mais le sont généralement déjà sur un poste de développement C++ standard.

Compiler

Pour construire le jeu, les outils et l'éditeur de niveaux ensemble :

./configure --enable-release --enable-uforadiant --enable-ufoslicer --enable-ufomodel --enable-ufoded --enable-ufo2map
make -j$(nproc)

Binaires produits à la racine du dépôt : ufo, ufoded, ufo2map, ufomodel, ufoslicer, ainsi que radiant/uforadiant.

Note sur make -j et les cartes de test

Si make testall échoue en parallèle avec une erreur du type unittest/maps/*.bsp: commande introuvable (erreur 127), c'est que la règle de compilation des cartes de test s'est exécutée avant que ufo2map (dont elle dépend au runtime, pas au niveau des règles make) ne soit fini d'être lié — une course pré-existante entre cibles sœurs du Makefile. Contournement : compiler ufo2map d'abord, puis relancer le build complet :

make ufo2map -j$(nproc)
make -j$(nproc)

Lancer les tests

./testall -a   # mode automatisé, écrit ufoai-Results.xml (non versionné)

Résultat attendu sur cette configuration : 130/132 tests exécutés (130 réussis, 0 échec) — MapDefTests est désactivée par défaut au démarrage, d'où l'écart avec le total de 132.

Code source.

https://github.com/HackTechDev/UFOAI4LUbuntu