Skip to content

Doom that are more portable, easy changable, not requires compiling.

License

Notifications You must be signed in to change notification settings

sapbotgit/modded-doom

 
 

Repository files navigation

Modded-doom

An attempt to make a doom more customizable, easy to use, and portable.

DOOM map E1M1 DOOM in isometric projection

Description

A playable version of DOOM implemented in typescript, rendered in threejs, with a svelte UI. It is not a port of DOOM per se because it deviates from the DOOM implementation where it was fun or interesting to experiment but it should still feel like DOOM. Parts are derived from the DOOM source code - in particular for animation, monster behaviour, and timing - so if you're familiar with that code you may recognize parts of it in this implementation.

Getting Started

Install NodeJS 16 or higher and run:

## Install NodeJS dependencies
npm install
## Run dev server
npm run dev

Open your web browser to http://localhost:5173 and the page should explain the rest.

Roadmap

Nonexhaustive list of bugs and missing/incomplete features:

  • Screen wipe
  • Sounds for crushers and moving floors (door sounds work!)
  • Crackling/popping sounds
  • Holes in floor/ceiling geometry in some maps (eg. Doom2 MAP25~~, Plutonia MAP25 and MAP29~~)
  • Load/Save games
  • Lighting effects (like light diminishing)
  • Automap
  • AI performance on large maps

WANTED:

  • Better touch controls
  • Multiplayer (P2P over webrtc?)
  • Play demos
  • Nightmare monster respawn (and other nightmare monster behaviours)
  • More HUD options
  • Improve the intro and menu UI. I don't have a design in mind, I just don't love what's there. It would be really fun to build something DOOM themed.
  • Support more DOOM engine games (Heretic, Hexen, Strife)
  • More Boom compatibility like switches, platforms, lights, etc. At least enough to play the community chest maps, ancient aliens, or sunlust.
  • ZDoom compatibility like voxels, 3d models ZScript and etc.
  • Generate BSP, SEGS, and SSECTOR nodes for large maps that don't have them

Authors

  • Lloyd Markle
  • Sapbot
  • You?

Contributing

I'm happy to take contributions (features or bug fixes) so feel free to reach out in an issue or pull request. I'm sure there is lots of room to improve. I may not be super quick to respond.

License

This project is licensed under the GPLv2 License - see the LICENSE file for details.

Acknowledgments

Inspiration, code snippets, etc. (in no particular order):

About

Doom that are more portable, easy changable, not requires compiling.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Languages

  • TypeScript 70.6%
  • Svelte 28.9%
  • Other 0.5%