All Projects → UstymUkhman → webDOOM

UstymUkhman / webDOOM

Licence: MIT, GPL-2.0 licenses found Licenses found MIT LICENSE GPL-2.0 COPYING
Classic DOOM recompiled with WebAssembly

Programming Languages

C++
36643 projects - #6 most used programming language
Makefile
30231 projects
shell
77523 projects
objective c
16641 projects - #2 most used programming language
c
50402 projects - #5 most used programming language
ruby
36898 projects - #4 most used programming language

Projects that are alternatives of or similar to webDOOM

arxwasm
Port of Arx Libertatis to WebAssembly using Emscripten
Stars: ✭ 28 (-54.1%)
Mutual labels:  games, emscripten
Chocolate Doom
Chocolate Doom is a Doom source port that is minimalist and historically accurate.
Stars: ✭ 1,052 (+1624.59%)
Mutual labels:  games, doom
john-carmack-plan
An archive of John Carmack’s .plan files in readable markdown format
Stars: ✭ 113 (+85.25%)
Mutual labels:  doom, doom-2
mamesaver
Mamesaver is a mame emulated screensaver - get all the good ol' games playing their demo modes while you procrastinate and enjoy!
Stars: ✭ 26 (-57.38%)
Mutual labels:  games
LudiiExampleAI
Project with examples for the implementation of third-party AI algorithms / agents for the Ludii general game system.
Stars: ✭ 20 (-67.21%)
Mutual labels:  games
vgg runtime
VGG Runtime for loading and running designs as apps.
Stars: ✭ 19 (-68.85%)
Mutual labels:  emscripten
crossbow
Cross-Platform Rust Toolkit for Games 🏹
Stars: ✭ 80 (+31.15%)
Mutual labels:  games
sar2
Search and Rescue II. Helicopter flight simulator for Linux and OSX.
Stars: ✭ 20 (-67.21%)
Mutual labels:  games
ffmpeg-h264-dec
H.264 decoder extracted from FFmpeg.
Stars: ✭ 81 (+32.79%)
Mutual labels:  emscripten
uno-game
🎴 An UNO Game made in Javascript
Stars: ✭ 93 (+52.46%)
Mutual labels:  games
WildWorld
Sandbox freestyle multiplayer game/engine in LÖVE/LUA.
Stars: ✭ 35 (-42.62%)
Mutual labels:  games
flak m
UT Weapons mod for GZDoom
Stars: ✭ 16 (-73.77%)
Mutual labels:  doom
pokerwars.io-starterbot-python
A starter bot written in python for the pokerwars.io platform. To play: pull this code, register on pokerwars.io, get your API token and play!
Stars: ✭ 37 (-39.34%)
Mutual labels:  games
TTGO-DOOM
A port of DOOM to the LilyGO T-Watch
Stars: ✭ 23 (-62.3%)
Mutual labels:  doom
agario
Python clone of agar.io game, made with pygame.
Stars: ✭ 32 (-47.54%)
Mutual labels:  games
SPTM
[ICLR 2018] Tensorflow/Keras code for Semi-parametric Topological Memory for Navigation
Stars: ✭ 94 (+54.1%)
Mutual labels:  doom
emscripten-webxr
WebXR library for use with Emscripten.
Stars: ✭ 21 (-65.57%)
Mutual labels:  emscripten
HandyRL
HandyRL is a handy and simple framework based on Python and PyTorch for distributed reinforcement learning that is applicable to your own environments.
Stars: ✭ 228 (+273.77%)
Mutual labels:  games
GTA-One-Liners
A collection of gifs made out of almost every dialogue in GTA and other games.
Stars: ✭ 37 (-39.34%)
Mutual labels:  games
python-wasm
Build scripts and configuration for building CPython for Emscripten
Stars: ✭ 606 (+893.44%)
Mutual labels:  emscripten

webDOOM

DOOM and DOOM II games compiled for web with WebAssembly.

You can try it here.

webDOOM uses PrBoom open source DOOM code, classic game assets like Doom1.wad and Doom2.wad files, original music in MP3 format and sound effects in WAV format.

Big thanks to all sites in links above for providing required assets to make it feel like original games and especially to the WebAssembly comunity that keeps working on this amazing tool!

Building webDOOM on Debian

You can build it on your own by following these steps:

  • First of all, PrBoom (v2.5.0) requires a 32-bit Linux distro (better if Debian based), so I would recomend you to install this one for your Virtual Machine if you're running a 64-bit based OS.

  • Once it's done, follow these steps to be sure to have all necessary packages to compile PrBoom code (actually you can skip libsdl-net1.2-dev and SDL_net packages since online game is not supported).

  • Be also sure to have git, autoconf and automake tools.

  • Now you can download and install the emscripten compiler by following these instructions.

  • Finally, clone this repo.

  • Run ./configure script in the root folded (it can take a while) and when all the Makefiles have been created, be sure to set correct compiler paths for emcc's CC; CPP; LIBS; RANLIB and SDL options based on the location of emsdk's folder on your machine in all Makefiles of this repository.

  • Make sure to have the required music files in here (or here if you're building DOOM II) as well as the SFX files (for convenience of downloaded SFX files, their names are preceded by ds characters as you can see here).

  • Alternatively, you can build with -nosound flag adding it to your Module object as explained here.

  • With active emcc compiler (run ./emsdk activate latest and source ./emsdk_env.sh in your emsdk directory), navigate to the root folder of this repo and run ./build.sh to compile DOOM or ./build.sh doom2 to compile DOOM II. When running ./build.sh the first time, it can take a while because emscripten's cache hasn't been set yet, but at the end you should see the HTML application in web folder here.

Building webDOOM on Windows

I was not able to compile PrBoom on Windows because of some issues:

  • PrBoom needs to be compiled by using its Makefile which requires a make command to be executed from your console in the project folded.

  • There are several ways to have a make command even if you're using a Windows machine and those are to install one of the following consoles: MinGW; Cygwin or WSL.

  • Besides that, PrBoom's code is strictly related to the compiler's architecture, so you'll have to use a mingw32 bash (for example) in order to avoid all the errors that will come if you'll try to build it directly on a x64 CPU.

  • Another pain in the ass refers to the SDL version you'll have to use (1.2.x) which is pretty old and can cause some problems when trying to install it for a mingw32 compiler.

  • So, even if you'll figure out all the requirements above, you'll find out that unfortunately, emcc does not support MinGW or Cygwin enviroments (at least I faced this problem with v1.38.13) and there's no Windows Subsystem for Linux that emulates an x32 architecture.

  • Despite that, you can install emscripten; clone this repo and run build.bat (for DOOM) or build.bat doom2 (for DOOM II) on Windows that will produce you a valid HTML application from this LLVM code.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].