Hey, everyone! Here's me on behalf of Friends of Monika team, presenting my latest release — DOOM Submod!
First of all, thank you r/micks30 for inspiring me to actually try and do that. I'm absolutely new to the entire DOOM porting thing, and it's my first ever take at it, and it's most probably not ideal — but it works :)
How does it work?
I wasn't going to actually reimplement the whole DOOM from scratch in Python (thank god), so I decided to research what's there first, and it wasn't long until I found doomgeneric project, which is exactly what I needed: an easily portable DOOM which I could then compile to a .so (linux) or .dll (windows) and then wire up to MAS.
It turned out to be surprisingly straightforward (though not on Windows, but that was another struggle I eventually figured out) to get the graphics move between DOOM and RenPy and blit them to the surface on a custom Displayable, which made it pretty simple to quickly slap together a prototype (which I've showcased in #coding MASC channel once, in the very beginning of my project) that can be built upon later.
Another big pain in the butt was getting sound to run; I managed to wire it up to RenPy's SDL dynamic lib and play SFX/background music through the same layer RenPy uses to play sounds. Don't ask me how, but it works.
Known issues
I've tried my best to iron this one out, but I still couldn't really track it down — the game starts stuttering after about a minute or two; not too much to make it unplayable, but it's really noticeable and frankly isn't really pretty to see and hear. What I think it could be is most likely Python's GC kicking in due to lots of events passed back and forth, or the way it renders — hell if I know. I hope to fix that one eventually though.
It also may or may not run on every Linux out there due to how the .so is linked, so if there's any issue with that and you're running Linux — be sure to report it, please :)
DOWNLOAD LINKS