UZDoom is a modern, feature-rich source port for Doom-engine games, forked from GZDoom. It is a monolithic game engine application that provides software and hardware-accelerated rendering (OpenGL, Vulkan, GLES), a full audio subsystem (ZMusic) supporting MIDI, tracker modules, and chip emulation, a custom GUI toolkit (ZWidget) for the launcher and in-game menus, a scripting engine (ZScript/ACS) with a Debug Adapter Protocol (DAP) server, and a resource filesystem. The codebase is large and complex, with extensive third-party library vendoring (FreeType, HarfBuzz, Abseil, asmjit, etc.) and multiple rendering backends. It is actively maintained with recent commits and CI pipelines. While the architecture is well-structured with clear subsystem boundaries, the sheer volume of vendored code and platform-specific implementations introduces medium technical drift. Several components (ZMusic, ZVulkan, ZWidget, DAP debug server) are self-contained and could be extracted for reuse in other projects.
The Doomsday Engine is a modular game engine and source port for classic FPS games (Doom, Heretic, Hexen, Doom64) with client-server architecture. It provides enhanced rendering (OpenGL), audio systems, GUI frameworks, networking, and scripting capabilities. The engine supports extensibility via plugins and includes tools like Amethyst for documentation processing. The codebase shows strong separation of concerns with distinct libraries for core functionality, game logic, rendering, and UI. While actively maintained, it exhibits technical drift due to platform-specific conditionals, legacy code sections, and complex dependency management.