managed-doom icon indicating copy to clipboard operation
managed-doom copied to clipboard

A Doom port written in C#

Managed Doom

Doom II MAP01 screenshot

Managed Doom is a Doom source port written in C#. The entire code is manually translated from Linux Doom with some effort to make it natural C# code. Most functionalities necessary for single player game are implemented, and now it's in the playable state.

Screenshots

Doom E1M1

Doom II MAP11

Mr.DooM 30 MAP29

Eternal Doom MAP29

Requiem MAP13

Zombies TC MAP01

Batman Doom MAP27

Demo video

https://www.youtube.com/watch?v=9_tncwL7qvM

Demo video

Todo

  • Software renderering

    • [x] Front-to-back rendering using BSP
    • [x] Wall texture mapping
    • [x] Ceiling / floor texture mapping
    • [x] Transparent textures
    • [x] Diminishing lighting
    • [x] Sky rendering
    • [x] Sprite rendering
    • [x] High resolution rendering
    • [x] Optimization
    • [x] Fuzz effect
    • [x] Palette effects
  • Game

    • [x] Collision detection
    • [x] Player movement
    • [x] Player attack
    • [x] Monster AI
    • [x] Doors and platforms
    • [x] Animated textures
    • [x] Demo compatibility
  • Audio

    • [x] Sound
    • [x] Music
  • Misc

    • [x] Status bar
    • [x] Automap
    • [x] Title screen
    • [x] Intermission screen
    • [x] Menu screen
    • [x] Save / load
    • [x] Screen melt animation
    • [x] Config
    • [x] DeHackEd support

License

Managed Doom is distributed under the GPLv2 license.
Managed Doom uses the following libraries.

SFML uses the following libraries.

  • FreeType (GPLv2 license)
  • libjpeg (public domain)
  • stb_image (public domain)
  • OpenAL Soft (LGPL license)
  • libogg (BSD-3 license)
  • libvorbis (BSD-3 license)
  • libFLAC (BSD-3 license)

References

  • The Game Engine Black Book: DOOM by Fabien Sanglard
    If you want to understand the big picture of the rendering process in Doom, buy this one.
    https://fabiensanglard.net/gebbdoom/index.html

  • The Unofficial Doom Specs by Matthew S Fell
    http://www.gamers.org/dhs/helpdocs/dmsp1666.html

  • MUS File Format Description by Vladimir Arnost
    https://www.doomworld.com/idgames/docs/editing/mus_form

  • Chocolate Doom by Simon Howard
    Chocolate Doom is used as the reference of compatibility tests.
    https://github.com/chocolate-doom/chocolate-doom

  • Crispy Doom by Fabian Greffrath
    The minimal HUD is imported from Crispy Doom.
    https://github.com/fabiangreffrath/crispy-doom

  • Doom Wiki
    https://doomwiki.org/wiki/Entryway

  • Eternity Engine DeHackEd / BEX Reference
    http://eternity.mancubus.net/svn/trunk/docs/dehref.html