Doom port inside Unity Editor component inspector, made for fun in 4 evenings.
- Core engine mostly based on sinshu's Managed Doom
- CPU: Simulated with EditorCorutines and Thread.Sleep(), along with cycle of easy instructions for stable 35 FPS
- Screen Render: Texture2D in InspectorGUI, updates in DoomEngine via Texture.SetPixelData(bytes)
- Sounds: Hidden AudioSources - 1 AudioSource per SFX
- Music: Rewritten CSharpSynth library that can load real SF2 banks and Midi files. Doom stores music in its own "MUS" format, so its converted to Midi on loading
Package contains original DOOM1.WAD Shareware version and Roland SC-55 SF2 bank, but you can use your own files. Doom2 works fine too for example
- Copy https link from github
- Open Unity > Package manager
- Press "+" button then "Add package from git URL"
- Paste copied link and apply
- Add "Doomed Component to any GameObject"
- *Optional - select your own WAD and SF2 files
- Press DOOM button
- Sometime on level load Midi Synthesizer tries to unload already unloaded voices, causing en error with LinkedList
- Mouse support
- SFX played on wrong position
- Fix bugs in ManagedDoom:
- Strafe speed too big
- Weapon sprite position not centered after moving
- Doomguy's sprite behaviour sometime looks off
- Success melee weapon hits causing weird camera shake
- MidiPlayer - OnAudioFilterRead can cause popping sounds
- Music volume probably not right
- MidiPlayer can't read some instruments correctly (e1m2 missing bass synth, e1m8 missing choir, or it's too quite)
- Code cleanup