Installation du Roguelike Umoria avec support Web

Distribution de travail : Ubuntu 22.04 LTS

Prérequis : Gcc : Version 11

I/ Installation de Emscripten.

Lien : https://emscripten.org/docs/getting_started/downloads.html

1/ Création du répertoire d'installation.

util01@station40:~$ mkdir -p EMSCRIPTEN
util01@station40:~$ cd EMSCRIPTEN/
util01@station40:~/EMSCRIPTEN$ 
2/ Télécharger du code source.
util01@station40:~/EMSCRIPTEN$ git clone https://github.com/emscripten-core/emsdk.git
util01@station40:~/EMSCRIPTEN$ cd emsdk/
util01@station40:~/EMSCRIPTEN/emsdk$ 
3/ Mise-à-jour du code source
util01@station40:~/EMSCRIPTEN/emsdk$ git pull

4/ Installation des outils SDK.

util01@station40:~/EMSCRIPTEN/emsdk$ ./emsdk install latest

5/ Activer le SDK.

util01@station40:~/EMSCRIPTEN/emsdk$ ./emsdk activate latest

6/ Activer les variables d'environnement.

util01@station40:~/EMSCRIPTEN/emsdk$ source ./emsdk_env.sh
util01@station40:~/EMSCRIPTEN/emsdk$ cd 
util01@station40:~$ 

II/ Installation de Umoria

Liens : https://umoria.org/ https://github.com/jhirschberg70/browser-based-umoria

1/ Création du répertoire de travail.

util01@station40:~$ mkdir -p JEUX/ROGUELIKE/bbumoria
util01@station40:~$ cd JEUX/ROGUELIKE/bbumoria/
util01@station40:~/JEUX/ROGUELIKE/bbumoria$ 

2/ Téléchargement du code source.

util01@station40:~/JEUX/ROGUELIKE/bbumoria$ git clone https://github.com/jhirschberg70/browser-based-umoria.git
util01@station40:~/JEUX/ROGUELIKE/bbumoria$ cd browser-based-umoria/
util01@station40:~/JEUX/ROGUELIKE/bbumoria/browser-based-umoria$ 

3/ Faire une sauvegarde du fichier de configuration.

util01@station40:~/JEUX/ROGUELIKE/bbumoria/browser-based-umoria$ mv CMakeLists.txt CMakeLists.txt.bak

4/ Activer le fichier de configuration pour Emscripten.

util01@station40:~/JEUX/ROGUELIKE/bbumoria/browser-based-umoria$ cp CMakeLists.txt.emscripten CMakeLists.txt

5/ Configuration de la compilation.

util01@station40:~/JEUX/ROGUELIKE/bbumoria/browser-based-umoria$ cmake . -DCMAKE_TOOLCHAIN_FILE=$EMSDK/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake

6/ Compilation.

util01@station40:~/JEUX/ROGUELIKE/bbumoria/browser-based-umoria$ make
...
[  1%] Linking CXX executable umoria/umoria.min.js
cache:INFO: generating system asset: symbol_lists/dae7d464f5b4d1031879b52671b68b47d69df15b.json... (this will be cached in "/home/util01/EMSCRIPTEN/emsdk/upstream/emscripten/cache/symbol_lists/dae7d464f5b4d1031879b52671b68b47d69df15b.json" for subsequent builds)  
cache:INFO:  - ok
[100%] Built target umoria

Erreur 1 :

the error message may be clearer with -g1 and EMCC_DEBUG=2 set

Solution :

Ouvrir :

CMakeLists.txt

Chercher :

set(link_flags "-O3 -fno-rtti -lidbfs.js

Remplacer par :

set(link_flags "-g1 -O3 -fno-rtti -lidbfs.js

Erreur 2 :

building:ERROR: /tmp/emscripten_temp_l1m28vhv/umoria.min.jso4.js:391:1: ERROR - [JSC_UNDEFINED_VARIABLE] variable ccall is undeclared                                                                                                                                   
  391|  ccall("setSavePath", null, [ "string", "string" ], [ scoresPath, savePath ]);

Solution :

Ouvrir :

CMakeLists.txt

Chercher :

-s EXPORTED_FUNCTIONS='[_main, _setSavePath]'

Ajouter après :

-s EXPORTED_RUNTIME_METHODS=ccall,cwrap

7/ Installation.

util01@station40:~/JEUX/ROGUELIKE/bbumoria/browser-based-umoria$ cmake --install .
-- Install configuration: "Release"

8/ Vérification.

util01@station40:~/JEUX/ROGUELIKE/bbumoria/browser-based-umoria$ ls -l umoria/
total 1916
-rw-r--r-- 1 util01 www-data   2857 oct.  12 21:00 AUTHORS
drwxr-xr-x 2 util01 www-data   4096 oct.  12 21:25 data
-rw-r--r-- 1 util01 www-data  35149 oct.  12 21:00 LICENSE
-rw-r--r-- 1 util01 www-data     76 oct.  12 21:00 scores.dat
-rw-r--r-- 1 util01 www-data 955164 oct.  12 21:26 umoria.html
-rw-r--r-- 1 util01 www-data 954171 oct.  12 21:26 umoria.min.js
util01@station40:~/JEUX/ROGUELIKE/bbumoria/browser-based-umoria$ 

8/ Lancement du jeu.

Depuis le navigateur Internet Firefox, ouvrir le fichier local :

file:///home/util01/JEUX/ROGUELIKE/bbumoria/browser-based-umoria/umoria/umoria.html

umoria01.png

Pour jouer via Internet :

https://projet.hacktech.dev/umoria/umoria.html