node-red-contrib-doom 0.1.1
Play a browser-hosted Doom/js-dos page from Node-RED and control it with flow messages.
node-red-contrib-doom
Node-RED contrib node that exposes a browser Doom page at /doom and forwards flow commands to the page with Server-Sent Events.
This package includes a browser-ready js-dos runtime. It does not include a commercial Doom WAD or game data. Upload your own WAD or a free alternative such as Freedoom.
Local test with npm link
This package has no external npm runtime dependencies.
From this package directory:
npm install
npm link
Then link it into your Node-RED user directory, usually ~/.node-red:
cd ~/.node-red
npm link node-red-contrib-doom
node-red
Open the Node-RED editor at http://localhost:1880, add a doom-control node, upload a game file, and deploy.
Using the node
The node accepts these commands through msg.payload:
"fire"
or:
{ "command": "fire" }
Allowed commands are up, down, left, right, fire, use, run, escape, enter, strafe_left, and strafe_right.
To test quickly, add an Inject node, set msg.payload to the string fire, wire it into doom-control, deploy, and click the Inject button.
Browser page
After deploy, open:
http://localhost:1880/doom
The page loads the configured js-dos engine from the Node-RED route and receives commands from the flow through /doom/events.
Use the upload control in the node editor to upload a .jsdos bundle or .wad file for Spiel. The node remembers the upload automatically.
Building a tgz for Node-RED upload
From this package directory, run:
rm -rf node_modules package-lock.json && rm -f *.tgz && npm install && npm pack
It creates:
node-red-contrib-doom-0.1.0.tgz
Upload that .tgz file in Node-RED's palette manager.
For the simplest no-npm, no-upload installation on Windows, double-click DIREKT-IN-NODE-RED-INSTALLIEREN.cmd. It copies the package directly into %USERPROFILE%\.node-red\node_modules\node-red-contrib-doom. Restart Node-RED afterwards.
Notes about js-dos assets
The package serves its bundled js-dos runtime from /doom/assets/js-dos.js. The uploaded game may be a js-dos-compatible .jsdos bundle or game data handled by js-dos. A plain WAD often also needs a DOS executable and startup command, so a complete .jsdos bundle is the easiest practical test asset.