Awesome
Managed Doom
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
Demo video
https://www.youtube.com/watch?v=WIdIOzQFVq0
Todo
-
Software renderering
- Front-to-back rendering using BSP
- Wall texture mapping
- Ceiling / floor texture mapping
- Transparent textures
- Diminishing lighting
- Sky rendering
- Sprite rendering
- High resolution rendering
- Optimization
- Fuzz effect
- Palette effects
-
Game
- Collision detection
- Player movement
- Player attack
- Monster AI
- Doors and platforms
- Animated textures
- Demo compatibility
-
Audio
- Sound
- Music
-
Misc
- Status bar
- Automap
- Title screen
- Intermission screen
- Menu screen
- Save / load
- Screen melt animation
- Config
- DeHackEd support
- Frame interpolation
License
Managed Doom is distributed under the GPLv2 license.
Managed Doom uses the following libraries:
- Silk.NET by the the Silk.NET team (MIT License)
- TrippyGL by Thomas Mizrahi (MIT License)
- TimGM6mb by Tim Brechbill (GPLv2 license)
- DrippyAL (MIT License)
- MeltySynth (MIT license)
Silk.NET uses the following native libraries:
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