As you may know no operating system is a real system without having a port of Doom running on it.
I think the easiest way to achieve this would be to port PrBoom and its only dependency, SDL 1.2. This engine only requires working video and input backend from SDL, having the other audio, networking, etc. backends are not a hard requirement.
PrBoom website: http://prboom.sourceforge.net/
SDL 1.2: https://www.libsdl.org/download-1.2.php
Also I've worked on porting Doom for Redox in the past. You may want to take a look at how we patched SDL to add a new backend for our Orbital display server. Could help bringing SDL to Serenity: https://gitlab.redox-os.org/redox-os/cookbook/tree/master/recipes/sdl
Szia! You are absolutely right that Serenity needs a Doom port, so thank you for opening this issue.
I had originally though about converting an already-existing "framebuffer port" of Doom, but now that you mention it, porting SDL would open up a lot more interesting possibilities :)
All right, we now have a port of SDL2 in the tree, so maybe we can find a version of Doom that uses SDL2 and port that to Serenity :)
Chocolate Doom seems to support SDL2, however I have no experience with this version. Based on their screenshots page this one is also highly portable, therefore I think it could be a candidate for Serenity. No idea about the required dependencies/libraries though.
-- Could NOT find SDL2 (missing: SDL2_INCLUDE_DIR) (Required is at least version "2.0.1")
-- Could NOT find SDL2_mixer (missing: SDL2_MIXER_INCLUDE_DIR SDL2_MIXER_LIBRARY) (Required is at least version "2.0.0")
-- Could NOT find SDL2_net (missing: SDL2_NET_INCLUDE_DIR SDL2_NET_LIBRARY) (Required is at least version "2.0.0")
-- Could NOT find samplerate (missing: SAMPLERATE_INCLUDE_DIR SAMPLERATE_LIBRARY)
-- Could NOT find ZLIB (missing: ZLIB_LIBRARY ZLIB_INCLUDE_DIR)
-- Could NOT find PNG (missing: PNG_LIBRARY PNG_PNG_INCLUDE_DIR)
SDL is ported, I guess the CMake package system isn't finding it for some reason. The mixer and net libraries, maybe not. No idea about the rest.
PNG and ZLIB are usually trivial to port. If you're just want to be lazy PNG and samplerate can be disabled with --without-libpng and --without-libsamplerate, and ZLIB is required by PNG because it uses for deflate internally.
I couldn't find config options for the remaining net and mixer, they look like mandatory deps.
Most helpful comment
Szia! You are absolutely right that Serenity needs a Doom port, so thank you for opening this issue.
I had originally though about converting an already-existing "framebuffer port" of Doom, but now that you mention it, porting SDL would open up a lot more interesting possibilities :)