{"id":16284673,"url":"https://github.com/pachadotdev/shinydoom","last_synced_at":"2026-03-16T17:06:16.011Z","repository":{"id":239252993,"uuid":"799019263","full_name":"pachadotdev/shinydoom","owner":"pachadotdev","description":"Doom running on Shiny (and shinyapps.io)","archived":false,"fork":false,"pushed_at":"2024-05-11T17:44:14.000Z","size":4611,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-20T20:19:18.131Z","etag":null,"topics":["doom","rstats","shiny","webassembly"],"latest_commit_sha":null,"homepage":"https://pacha.dev/blog/2024/05/10/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pachadotdev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-05-11T01:08:55.000Z","updated_at":"2024-10-24T18:51:07.000Z","dependencies_parsed_at":"2024-05-12T14:15:15.302Z","dependency_job_id":null,"html_url":"https://github.com/pachadotdev/shinydoom","commit_stats":null,"previous_names":["pachadotdev/shinydoom"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pachadotdev%2Fshinydoom","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pachadotdev%2Fshinydoom/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pachadotdev%2Fshinydoom/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pachadotdev%2Fshinydoom/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pachadotdev","download_url":"https://codeload.github.com/pachadotdev/shinydoom/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247279332,"owners_count":20912866,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["doom","rstats","shiny","webassembly"],"created_at":"2024-10-10T19:20:24.461Z","updated_at":"2026-03-16T17:06:15.963Z","avatar_url":"https://github.com/pachadotdev.png","language":"JavaScript","funding_links":["https://buymeacoffee.com/pacha"],"categories":[],"sub_categories":[],"readme":"# Doom in Shiny\n\n## About\n\nI wrote a [blog post](https://pacha.dev/blog/2024/05/10) explaining the details and I even included a video.\n\nIt is hosted on [shinyapps.io](https://pachamaltese.shinyapps.io/shinydoom/).\n\nHere is how the game looks once it runs on Shiny:\n\n![image](https://github.com/pachadotdev/shinydoom/assets/10091065/e47ba7d6-a9af-4744-8713-e0b42d4d386e)\n\n## Build\n\n```bash\napt-get install build-essential libsdl2-dev libsdl2-mixer-dev\n\ngit clone --depth 1 git@github.com:emscripten-core/emsdk.git\ncd emsdk\n./emsdk install latest\n./emsdk activate latest\nsource ./emsdk_env.sh\ncd ..\n\ngit clone --depth 1 git@github.com:cloudflare/doom-wasm.git\ncd doom-wasm \u0026\u0026 ./scripts/clean.sh \u0026\u0026 ./scripts/build.sh \u0026\u0026 cd ..\n\nwget https://distro.ibiblio.org/slitaz/sources/packages/d/doom1.wad -O doom-wasm/src/doom1.wad\n```\n\n## Run locally\n\nSource `app.R` from RStudio or VSCode.\n\n## Run on shinyapps.io\n\nMove the following files:\n\n```bash\nmkdir doom-compiled\nmv doom-wasm/src/index.html doom-compiled/index.html\nmv doom-wasm/src/doom1.wad doom-compiled/doom1.wad\nmv doom-wasm/src/default.cfg doom-compiled/default.cfg\nmv doom-wasm/src/websockets-doom.js doom-compiled/websockets-doom.js\nmv doom-wasm/src/websockets-doom.html doom-compiled/websockets-doom.html\nmv doom-wasm/src/websockets-doom.wasm doom-compiled/websockets-doom.wasm\nmv doom-wasm/src/websockets-doom.wasm.map doom-compiled/websockets-doom.wasm.map\n```\n\nThen change the path in `app.R` to `doom-compiled` and deploy.\n\n## Controls\n\n* Space: fire\n* E: open door\n* up/down/left/right: move\n* 1-4: change weapon\n* Esc: release mouse/go to menu\n* F: full screen\n\nYou can also use the mouse to move around.\n\n*If you like what I do as a content creator, you can donate on [Buy Me a Coffee](https://buymeacoffee.com/pacha).*\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpachadotdev%2Fshinydoom","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpachadotdev%2Fshinydoom","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpachadotdev%2Fshinydoom/lists"}