Installation de Doom en mode Web

I/ Installation de Emscripten.

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

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

util01@station40:~$ mkdir -p JEUX/DOOM/WEB
util01@station40:~$ cd JEUX/DOOM/WEB/
util01@station40:~/JEUX/DOOM/WEB$ 

2/ Téléchargement du script d'installation.

util01@station40:~/JEUX/DOOM/WEB$ git clone https://github.com/emscripten-core/emsdk.git
util01@station40:~/JEUX/DOOM/WEB$ cd emsdk/
util01@station40:~/JEUX/DOOM/WEB/emsdk$ 

3/ Téléchargement de la dernière version.

util01@station40:~/JEUX/DOOM/WEB/emsdk$ ./emsdk install latest

4/ Activation de la dernière version.

util01@station40:~/JEUX/DOOM/WEB/emsdk$ ./emsdk activate latest

5/ Configuration.

util01@station40:~/JEUX/DOOM/WEB/emsdk$ source ./emsdk_env.sh
util01@station40:~/JEUX/DOOM/WEB/emsdk$ cd ..
util01@station40:~/JEUX/DOOM/WEB$ 

II/ Installation de Doom.

Site officiel :
https://github.com/ponceto/doom/

1/ Téléchargement du code source.

util01@station40:~/JEUX/DOOM/WEB$ git clone https://github.com/ponceto/doom.git
util01@station40:~/JEUX/DOOM/WEB$ cd doom/
util01@station40:~/JEUX/DOOM/WEB/doom$ 

2/ Compilation.

util01@station40:~/JEUX/DOOM/WEB/doom$ ./build.sh wasm
...
emcc -c -std=c99 -O2 -Wall -sUSE_SDL=2 -sUSE_SDL_IMAGE=2 -sUSE_SDL_MIXER=2 -I. -D_DEFAULT_SOURCE -DNORMALUNIX -DLINUX -D_FORTIFY_SOURCE=2 info.c
emcc -c -std=c99 -O2 -Wall -sUSE_SDL=2 -sUSE_SDL_IMAGE=2 -sUSE_SDL_MIXER=2 -I. -D_DEFAULT_SOURCE -DNORMALUNIX -DLINUX -D_FORTIFY_SOURCE=2 sounds.c
emcc -c -std=c99 -O2 -Wall -sUSE_SDL=2 -sUSE_SDL_IMAGE=2 -sUSE_SDL_MIXER=2 -I. -D_DEFAULT_SOURCE -DNORMALUNIX -DLINUX -D_FORTIFY_SOURCE=2 tables.c
em++ -L. --use-preload-plugins --preload-file doom1.wad --preload-file overlay.png  -o doom.html am_map.o d_items.o d_main.o d_net.o f_finale.o f_wipe.o g_game.o hu_lib.o hu_stuff.o i_main.o i_net.o i_sound_sdl.o i_system.o i_video_sdl.o m_argv.o m_bbox.o m_cheat.o m_fixed.o m_menu.o m_misc.o m_random.o m_swap.o p_ceilng.o p_doors.o p_enemy.o p_floor.o p_inter.o p_lights.o p_map.o p_maputl.o p_mobj.o p_plats.o p_pspr.o p_saveg.o p_setup.o p_sight.o p_spec.o p_switch.o p_telept.o p_tick.o p_user.o r_bsp.o r_data.o r_draw.o r_main.o r_plane.o r_segs.o r_sky.o r_things.o s_sound.o st_lib.o st_stuff.o v_video.o wi_stuff.o w_wad.o z_zone.o doomdef.o doomstat.o dstrings.o info.o sounds.o tables.o  -lSDL2_mixer -lSDL2_image -lSDL2 
cache:INFO: generating system asset: symbol_lists/e5bd85986eaad8c2f34f1daa9ba7dba4de675f2e.json... (this will be cached in "/home/util01/JEUX/DOOM/WEB/emsdk/upstream/emscripten/cache/symbol_lists/e5bd85986eaad8c2f34f1daa9ba7dba4de675f2e.json" for subsequent builds)                                                                                                 
cache:INFO:  - ok
=== build ok ===
util01@station40:~/JEUX/DOOM/WEB/doom$ 

2/ Vérification.

util01@station40:~/JEUX/DOOM/WEB/doom$ ls -l src/doom.*
-rw-r--r-- 1 util01 www-data 4208761 avril 14 20:19 src/doom.data
-rw-r--r-- 1 util01 www-data   22063 avril 14 20:19 src/doom.html
-rw-r--r-- 1 util01 www-data  424665 avril 14 20:19 src/doom.js
-rwxr-xr-x 1 util01 www-data 1412592 avril 14 20:19 src/doom.wasm
util01@station40:~/JEUX/DOOM/WEB/doom$ 
util01@station40:~/JEUX/DOOM/WEB/doom$ cd src
util01@station40:~/JEUX/DOOM/WEB/doom/src$ 

3/ Lancement d'un serveur sous Python3.

util01@station40:~/JEUX/DOOM/WEB/doom/src$ python3 -m http.server --bind 127.0.0.1
Serving HTTP on 127.0.0.1 port 8000 (http://127.0.0.1:8000/) ...

4/ Sous le navigateur web Firefox, accéder à l'adresse internet suivante :

http://127.0.0.1:8000/doom.html

doom_web_01.png