$ show skyjake/Doomsday-Engine
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.
The LLM identified 4 files worth highlighting for reuse:
Uses the PIMPL idiom (via DE_PIMPL macro) to hide implementation details, reducing header dependencies and enabling encapsulation. This pattern is reusable in any C++ project for achieving compile-time insulation.
Defines the expression tree structure and evaluation engine for the Doomsday Script language. This reusable component can be used to add expression evaluation to any application.
Abstracts file system operations, supporting various archive formats (WAD, PK3, etc.) and providing a unified interface for resource access. This reusable component isolates file I/O details.
Implements a network message buffering system for reliable packet handling in multiplayer communication. This reusable component manages message sequencing and reassembly.