Dev tools · alternatives · 2026
24 alternatives to Doom (1993) in a PDF
I made a Doom source port that runs within a PDF file. I was inspired by the recent HN post about Tetris in a PDF (https://news.ycombinator.com/item?id=42645218) and I wondered if I could get Doom to run using a similar method. It turns out that old versions of Emscripten can compile C to asm.js code that will happily run inside the limited JS runtime of the PDF engine. I used the doomgeneric (https://github.com/ozkl/doomgeneric) fork of the original Doom source, as that made writing the IO fairly easy. All I had to do was implement a framebuffer and…
Doom (1993) in a PDF is a source port of the classic 1993 game that runs entirely within a PDF file. It uses Emscripten to compile the original Doom C code to JavaScript and renders the game using ASCII characters in… Below are 24 products that do a similar job, ranked by how close each is in meaning and then by launch-day votes.
- 1TITetris in a PDF▲1,289
I realized that the PDF engines of modern desktop browsers (PDFium and PDF.js) support JavaScript with enough I/O primitives to make a basic game like Tetris. It was a bit tricky to find a union of features that work in both engines, but in the end it turns out that showing/hiding annotation "fields" works well to make monochrome pixels, and keyboard input can be achieved by typing in a text input box. All in all it's quite janky but a nice reminder of how general purpose PDF scripting can be. The linked PDF is all ASCII so you can just open it in a text editor, or have a look at…
2025 · th0mas.nl · its alternatives →
- 2

I sometimes pick up random projects just because I can, this was one of those times. I made it as a week long project a while back this year but never shared here, so thought to go for it haha. I created a game inspired by Doom and the backrooms called The Backdooms under 2.4kb in minified html. (for reference, this entire post would be around 1.8kB haha) I had to use a not popular way of using GZip with Zlib headers (had to write my own script for compressing it, also in the repo) to eventually convert it a size 40 QR code that works right in your browser using Decompressionstream API. This…
2025 · github.com · its alternatives →
- 3

Hi HN, I’ve been working on Gore – a port of the classic Doom engine written in pure Go, based on a ccgo C-to-Go translation of Doom Generic. It loads original WAD files, uses a software renderer (no SDL or CGO, or Go dependencies outside the standard library). Still has a bit of unsafe code that I'm trying to get rid of, and various other caveats. In the examples is a terminal-based renderer, which is entertaining, even though it's very hard to play with terminal-style input/output. The goal is a clean, cross-platform, Go-native take on the Doom engine – fun to hack on, easy to read,…
2025 · github.com · its alternatives →
- 4

Quake (1996), faithfully ported to dependency-free safe Rust and compiled to WebAssembly — play the shareware episode in your browser.
12d ago · quake-srp.pages.dev · its alternatives →
- 5DI
2024 · chrisdalke.com · its alternatives →
- 6OC
2024 · ludocode.com · its alternatives →
- 7KR
I got DOOM running in KiCad by rendering it with PCB traces and footprints instead of pixels. Walls are rendered as PCB_TRACK traces, and entities (enemies, items, player) are actual component footprints - SOT-23 for small items, SOIC-8 for decorations, QFP-64 for enemies and the player. How I did it: Started by patching DOOM's source code to extract vector data directly from the engine. Instead of trying to render 64,000 pixels (which would be impossibly slow), I grab the geometry DOOM already calculates internally - the drawsegs[] array for walls and vissprites[] for entities. Added a…
Nov 2025 · mikeayles.com · its alternatives →
- 8

Demo: https://www.youtube.com/watch?v=f5uygzEmdLw Hi HN, I built a RISC-V emulator that implements the RV32IM instruction set and a minimal syscall interface to run DOOM. A few weeks ago, I got my first output with a simple hello world assembly program. Since then I have been working tirelessly to get DOOM to run. I needed to figure out how to run C programs first, and came across newlib, which allows the underlying environment to implement the syscall stubs one by one until the programs run. I have also added ELF loading, but currently only a single `PT_LOAD` segment is…
May 2026 · github.com · its alternatives →
- 9

I just had this really fun idea of making a playable version of DOOM on my GitHub profile after building "Doom" in a QR code last year (https://news.ycombinator.com/item?id=43729683) and I finally stopped procrastinating to try and build it. DoomMe is DOOM E1M1 map that can run on GitHub's markdown viewer which doesn't support javascript, web assembly or even iframes it works with a stateless engine with a capture of every possible position in the map (with 64 unit distance) captured in 4 directions and stitched together using graph logic with 8000+ WebP images and markdown…
Jan 2026 · github.com · its alternatives →
- 10

An OpenGL RTS game engine written in C. Contribute to eduard-permyakov/permafrost-engine development by creating an account on GitHub.
2021 · github.com · its alternatives →
- 11

A Simple Unix-like operating system. Contribute to ozkl/soso development by creating an account on GitHub.
2019 · github.com · its alternatives →
- 12IR
After 25 years of writing software, I was feeling nostalgic for the kinds of things that got me into programming in the first place: the old DOS demoscene. I spent a weekend seeing if I could recapture some of that INT 13H VGA magic using today's web tech, but with the old-school constraints of doing it from scratch. The result is this portfolio of ten classic effects running in a single HTML file. It's all vanilla JavaScript writing to a element, with no external libraries. It was a fun challenge to implement things like: * The color palette cycling and smooth fading in the Plasma demo. *…
2025 · jdfio.com · its alternatives →
- 13

Hi there! I've been on-and-off working on TacOS for a few months, which follows some UNIX-derived concepts (exec/fork, unix-style VFS, etc) and is now able to run a port of Doom, with a fairly small amount of modifications, using my from-scratch libc. The performance is actually decent compared to what I expected. Very interested to hear your thoughts. Thank you!
2025 · github.com · its alternatives →
- 14

Playground for the fire effect from DOOM. Really simple algorithm and all experiments are welcome! - filipedeschamps/doom-fire-algorithm
2019 · github.com · its alternatives →
- 15

- 16

A simple text-based adventure game. Contribute to skx/lighthouse-of-doom development by creating an account on GitHub.
2021 · github.com · its alternatives →
- 17

TrueType fonts have a hinting VM that grid-fits glyphs. It has a stack, storage area, conditionals, function calls, and it turns out it's Turing-complete. So I built a raycasting engine in the hinting bytecode. The glyph "A" in the font has 16 vertical bar contours. The hinting program reads player coordinates from font variation axes via GETVARIATION, does DDA ray marching against a tile map in the storage area, and repositions bar heights with SCFS. It ends up looking like a crude Wolfenstein-style view. Small visuzlization:…
Apr 2026 · github.com · its alternatives →
- 18

Apr 2026 · spectrelang.org · its alternatives →
- 19

A simple text-based adventure game. Contribute to skx/lighthouse-of-doom development by creating an account on GitHub.
2024 · github.com · its alternatives →
- 20PJ
Hi HN, Nick here. We're super excited to officially launch PDF.js Express [1]. PDF.js Express wraps a modern React UI around the PDF.js rendering engine to enable PDF annotation, form filling, and signing inside your web app. We've also made some improvements to PDF.js text search, and taken a different approach to how the viewer uses the PDF.js rendering API, resulting in sharp graphics at any zoom magnification [2]. Based on our research, more than 70% of those who try to implement these features on top of PDF.js find it too difficult or time-intensive [3]. For those who are successful,…
2020 · its alternatives →
- 21UL
In the wake of all the Unity nonsense, just wanted to toss the Raverie engine into this mix :) We’re building off a previous engine that we worked on for DigiPen Institute of Technology called the Zero Engine with a similar component based design architecture to Unity. Our engine had a unique feature called Spaces: separate worlds/levels that you can instantiate and run at the same time, which became super useful for creating UI overlays using only game objects, running multiple simulations, etc. The lighting and rendering engine is scriptable, and the default deferred rendering…
2023 · raverie-us.github.io · its alternatives →
- 22

I built EmbedPDF: an MIT-licensed, open-source PDF viewer that aims to match all of Adobe Acrobat’s paid features… for free. Already working: - Annotations (highlight, sticky notes, free text, ink) - True redaction (content actually removed) - Search, text selection, zoom, rotation - Runs fully in the browser, no server needed - Drop-in SDK for React, Vue, Preact, vanilla JS Why? Acrobat is heavy, closed, and pricey. I wanted something lightweight, hackable, and embeddable anywhere. Demo: https://app.embedpdf.com/ Website: https://www.embedpdf.com/ GitHub:…
2025 · github.com · its alternatives →
- 23MP
I have been working on this game somewhat sparsely for the past three years or so. However, it is still in a very early stage, and there is a lot of work to do. One of my friends encouraged me to post about it here, since he felt people might find interesting how I don’t use any libraries for it. The game can be played on a browser by virtue of WebAssembly. There are native ports using either MiniFB or SDL2, but you have to build those yourself. I decided to write the game in C because I feel like it is a simple language that a lot of people can understand well enough, and I didn’t think I…
2023 · zamfofex.neocities.org · its alternatives →
- 24IG
2014 · shaunlebron.com · its alternatives →
Also compare
Ranked by how close each launch is in meaning, then by votes. Prices were read from each product’s own site when checked and can change. Refine with your own description →