doom-sokol
orca
doom-sokol | orca | |
---|---|---|
4 | 4 | |
46 | 148 | |
- | 10.1% | |
5.0 | 9.5 | |
8 days ago | 4 days ago | |
C | C | |
GNU General Public License v3.0 only | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
doom-sokol
-
Let's compile like it's 1992
Doom is actually quite easy to build because the source code is already structured to keep the platform-specific parts isolated (Doom was developed on NeXT workstations and then 'downported' to DOS.
For instance here's my WASM port of the Doom shareware version. This is a fork of doomgeneric, which itself is a fork of fbDoom - but midway through I noticed that all the abstractions added by fbDoom and doomgeneric are actually not very helpful for a WASM port that should run in browsers, and that I probably would have been better off forking the original source instead):
Github repo: https://github.com/floooh/doom-sokol
Hosted version: https://floooh.github.io/doom-sokol/
-
WASM Instructions
Here are a couple of real-world examples, these are all C/C++ code bases which run across Linux, macOS, Windows, iOS, Android and in browsers without porting:
Home computer emulators: https://floooh.github.io/tiny8bit/
CPU simulators for Z80 and 6502:
https://floooh.github.io/visualz80remix/
https://floooh.github.io/visual6502remix/
The shareware version of Doom:
https://floooh.github.io/doom-sokol/
Samples for the cross-platform libraries this stuff is built on top: https://floooh.github.io/sokol-html5/
WASM (and asm.js before it) turn the web into "just another platform" for cross-platform code bases written in any language that can compile to WASM, and that's pretty great.
-
Doomgeneric: Make Porting Doom Easier
I started my WASM DOOM port (https://floooh.github.io/doom-sokol/) from doomgeneric which was helpful at first, but since I had to 'slice' the various modal loops in Doom in order to make it work in a frame-callback app model it wasn't all that helpful in the end unfortunately.
My porting notes for anyone interested: https://github.com/floooh/doom-sokol#porting-notes
orca
- Orca: Cross platform GUI apps using WASM
-
WASM Instructions
Orca is also worth checking out. Still in development, but very usable.
https://github.com/orca-app/orca
-
SQLite-Web: Web-based SQLite database browser written in Python
Since it's webassembly, I wonder if it can be made to work completely on the client with something like Orca (https://orca-app.dev/) so you don't even need to trust the website.
- Orca: Environment for cross-platform, sandboxed graphical WASM applications
What are some alternatives?
doomgeneric - Easily portable doom
wasm4 - Build retro games using WebAssembly for a fantasy console.